《机器学习基石》学习笔记 7 The VC Dimension

前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释。机器能够学习必须满足两个条件:

  • 假设空间 H 的 Size M 是有限的,即当 N 足够大的时候,那么对于假设空间中任意一个假设 g, E o u t ≈ E i n E_{out} \approx E_{in} EoutEin
  • 利用算法 A 从假设空间 H 中,挑选一个 g,使 E i n ( g ) ≈ 0 E_{in}(g) \approx 0 Ein(g)0,则 E o u t ≈ 0 E_{out} \approx 0 Eout0

这两个条件,正好对应着 test 和 trian 两个过程。train 的目的是使损失期望 E i n ( g ) ≈ 0 E_{in}(g) \approx 0 Ein(g)0;test 的目的是使将算法用到新的样本时的损失期望也尽可能小,即 E o u t ≈ 0 E_{out} \approx 0 Eout0

正因为如此,上次课引入了 break point,并推导出只要 break point 存在,则 M 有上界,一定存在 E o u t ≈ E i n E_{out} ≈ E_{in} EoutEin

本次笔记主要介绍 VC Dimension 的概念。同时也是总结 VC Dimension 与 E i n ( g ) ≈ 0 E_{in}(g) \approx 0 Ein(g)0 E o u t ≈ 0 E_{out} \approx 0 Eout0,Model Complexity Penalty(下面会讲到)的关系。

一、Definition of VC Dimension

首先,我们知道如果一个假设空间 H 有 break point k,那么它的成长函数是有界的,它的上界称为 Bound function。根据数学归纳法,Bound function 也是有界的,且上界为 N k − 1 N^{k−1} Nk1。从下面的表格可以看出, N ( k − 1 ) N^{(k−1)} N(k1) 比 B(N,k) 松弛很多。
《机器学习基石》学习笔记 7 The VC Dimension_第1张图片
则根据上一节课的推导,VC bound 就可以转换为:
《机器学习基石》学习笔记 7 The VC Dimension_第2张图片
这样,不等式只与 k 和 N 相关了,一般情况下样本 N 足够大,所以我们只考虑 k 值。有如下结论:

  • 若假设空间 H 有 break point k,且 N 足够大,则根据 VC bound 理论,算法有良好的泛化能力
  • 在假设空间中选择一个矩 g,使 E i n ≈ 0 E_{in} \approx 0 Ein0,则其在全集数据中的错误率会较低

《机器学习基石》学习笔记 7 The VC Dimension_第3张图片
下面介绍一个新的名词:VC Dimension。VC Dimension 就是某假设集 H 能够shatter 的 最多 inputs 的个数,即最大完全正确的分类能力。(注意,只要存在一种分布的 inputs 能够正确分类也满足)。

shatter 的英文意思是“粉碎”,也就是说对于 inputs 的所有情况都能列举出来。例如对 N 个输入,如果能够将 2 N 2^N 2N 种情况都列出来,则称该 N 个输入能够被假设集 H shatter。

根据之前 break point 的定义:假设集不能 shatter 任何分布类型的 == inputs 的最少个数==。则 VC Dimension 等于 break point 的个数减一。

《机器学习基石》学习笔记 7 The VC Dimension_第4张图片
现在,我们回顾一下之前介绍的四种例子,它们对应的 VC Dimension 是多少:

《机器学习基石》学习笔记 7 The VC Dimension_第5张图片
d v c d_{vc} dvc 代替 k,那么 VC bound 的问题也就转换为与 d v c d_{vc} dvc 和 N 相关了。同时,如果一个假设集 H 的 d v c d_{vc} dvc 确定了,则就能满足机器能够学习的第一个条件 E o u t ≈ E i n E_{out} \approx E_{in} EoutEin ,与算法、样本数据分布和目标函数都没有关系。

《机器学习基石》学习笔记 7 The VC Dimension_第6张图片

二、VC Dimension of Perceptrons

回顾一下我们之前介绍的 2D 下的 PLA 算法,已知 Perceptrons 的 k=4,即 d v c = 3 d_{vc}=3 dvc=3。根据 VC Bound 理论,当 N 足够大的时候, E o u t ( g ) ≈ E i n ( g ) E_{out}(g) \approx E_{in}(g) Eout(g)Ein(g)。如果找到一个 g,使 E i n ( g ) ≈ 0 E_{in}(g) \approx 0 Ein(g)0,那么就能证明 PLA 是可以学习的。

《机器学习基石》学习笔记 7 The VC Dimension_第7张图片
这是在 2D 情况下,那如果是多维的 Perceptron,它对应的 d v c d_{vc} dvc 又等于多少呢?

已知在 1D Perceptron, d v c = 2 d_{vc}=2 dvc=2,在 2D Perceptrons, d v c = 3 d_{vc}=3 dvc=3 ,那么我们有如下假设: d v c = d + 1 d_{vc}=d+1 dvc=d+1 ,其中 d 为维数。

要证明的话,只需分两步证明:

  • d v c ≥ d + 1 d_{vc} \geq d+1 dvcd+1
  • d v c ≤ d + 1 d_{vc} \leq d+1 dvcd+1

《机器学习基石》学习笔记 7 The VC Dimension_第8张图片
首先证明第一个不等式: d v c ≥ d + 1 d_{vc} \geq d+1 dvcd+1

在 d 维里,我们只要找到某一类的 d+1 个inputs可以被 shatter 的话,那么必然得到 d v c ≥ d + 1 d_{vc} \geq d+1 dvcd+1。所以,我们有意构造一个 d 维的矩阵 X X X 能够被shatter 就行。 X X X 是 d 维的,有 d+1 个 inputs,每个 inputs 加上第零个维度的常数项 1,得到 X X X 的矩阵:
《机器学习基石》学习笔记 7 The VC Dimension_第9张图片
矩阵中,每一行代表一个 inputs,每个 inputs 是 d+1 维的,共有d+1个 inputs。这里构造的 X X X 很明显是可逆的。shatter 的本质是假设空间 H 对 X X X 的所有情况的判断都是对的,即总能找到权重W,满足 X ∗ W = y X∗W=y XW=y W = X − 1 ∗ y W=X^{−1}∗y W=X1y。由于这里我们构造的矩阵 X X X 的逆矩阵存在,那么 d 维的所有 inputs 都能被 shatter,也就证明了第一个不等式。

《机器学习基石》学习笔记 7 The VC Dimension_第10张图片
然后证明第二个不等式: d v c ≤ d + 1 d_{vc} \leq d+1 dvcd+1

在 d 维里,如果对于任何的 d+2 个inputs,一定不能被shatter,则不等式成立。我们构造一个任意的矩阵 X X X,其包含 d+2 个 inputs,该矩阵有 d+1 列,d+2 行。这 d+2 个向量的某一列一定可以被另外 d+1 个向量线性表示,例如对于向量 X d + 2 X_{d+2} Xd+2,可表示为:
X d + 2 = a 1 ∗ X 1 + a 2 ∗ X 2 + ⋯ + a d + 1 ∗ X d + 1 X_{d+2}=a_1∗X_1+a_2∗X_2+⋯+a_{d+1}∗X_{d+1} Xd+2=a1X1+a2X2++ad+1Xd+1

其中,假设 a 1 > 0 , a 2 , ⋯ , a d + 1 < 0 a_1 > 0,a_2,⋯,a_{d+1}<0 a1>0a2,,ad+1<0

那么如果 X 1 X_1 X1 是正类, X 2 , ⋯ , X d + 1 X_2,⋯,X_{d+1} X2,,Xd+1 均为负类,则存在 W W W,得到如下表达式:
X d + 2 ∗ W = a 1 ∗ X 1 ∗ W + a 2 ∗ X 2 ∗ W + ⋯ ⋯ + a d + 1 ∗ X d + 1 ∗ W > 0 X_{d+2}∗W = a_1∗X_1∗W + a_2∗X_2∗W +⋯⋯+ a_{d+1}∗X_{d+1}∗W >0 Xd+2W=a1X1W+a2X2W++ad+1Xd+1W>0

因为其中 a 1 ∗ X 1 ∗ W a_1∗X_1∗W a1X1W 大于 0,代表正类; a 2 ∗ X 2 ∗ W + ⋯ ⋯ + a d + 1 ∗ X d + 1 ∗ W a_2∗X_2∗W +⋯⋯+ a_{d+1}∗X_{d+1}∗W a2X2W++ad+1Xd+1W 小于 0,代表负类。所有对于这种情况, X d + 2 X_{d+2} Xd+2 一定是正类,无法得到负类的情况。也就是说,d+2 个 inputs 无法被 shatter。证明完毕!
《机器学习基石》学习笔记 7 The VC Dimension_第11张图片
综上证明可得 d v c = d + 1 d_{vc}=d+1 dvc=d+1

三、Physical Intuition VC Dimension

《机器学习基石》学习笔记 7 The VC Dimension_第12张图片
上节公式中 W W W 又名 features,即自由度。自由度是可以任意调节的,如同上图中的旋钮一样,可以调节。VC Dimension 代表了假设空间的分类能力,即反映了 H 的自由度,产生 dichotomy 的数量,也就等于 features 的个数,但也不是绝对的。

《机器学习基石》学习笔记 7 The VC Dimension_第13张图片

例如,对 2D Perceptrons,线性分类, d v c = 3 d_{vc}=3 dvc=3,则 W = w 0 , w 1 , w 2 W={w_0,w_1,w_2} W=w0,w1,w2,也就是说只要 3 个 features 就可以进行学习,自由度为 3。

介绍到这,我们发现 M 与 d v c d_{vc} dvc 是成正比的,从而得到如下结论:

《机器学习基石》学习笔记 7 The VC Dimension_第14张图片

四、Interpreting VC Dimension

下面,我们将更深入地探讨 VC Dimension 的意义。首先,把 VC Bound 重新写到这里:

《机器学习基石》学习笔记 7 The VC Dimension_第15张图片
根据之前的泛化不等式,如果 ∣ E i n − E o u t ∣ > ϵ |E_{in} − E_{out}| > \epsilon EinEout>ϵ,即出现 bad 坏的情况的概率最大不超过 δ \delta δ。那么反过来,对于 good 好的情况发生的概率最小为 1 − δ 1−\delta 1δ,则对上述不等式进行重新推导:

《机器学习基石》学习笔记 7 The VC Dimension_第16张图片
ϵ \epsilon ϵ 表现了假设空间 H 的泛化能力, ϵ \epsilon ϵ 越小,泛化能力越大。

《机器学习基石》学习笔记 7 The VC Dimension_第17张图片
至此,已经推导出泛化误差 E o u t E_{out} Eout 的边界,因为我们更关心其上界( E o u t E_{out} Eout 可能的最大值),即:

《机器学习基石》学习笔记 7 The VC Dimension_第18张图片
上述不等式的右边第二项称为模型复杂度,其模型复杂度与样本数量 N、假设空间 H( d v c d_{vc} dvc)、 ϵ \epsilon ϵ 有关。 E o u t E_{out} Eout E i n E_{in} Ein 共同决定。下面绘出 E o u t E_{out} Eout、model complexity、 E i n E_{in} Ein d v c d_{vc} dvc 变化的关系:

《机器学习基石》学习笔记 7 The VC Dimension_第19张图片
通过该图可以得出如下结论:

  • d v c d_{vc} dvc 越大, E i n E_{in} Ein越小, Ω \Omega Ω 越大(复杂)。
  • d v c d_{vc} dvc 越小, E i n E_{in} Ein 越大, Ω \Omega Ω 越小(简单)。
  • 随着 d v c d_{vc} dvc 增大, E o u t E_{out} Eout 会先减小再增大。

所以,为了得到最小的 E o u t E_{out} Eout,不能一味地增大 d v c d_{vc} dvc 以减小 E i n E_{in} Ein ,因为 E i n E_{in} Ein 太小的时候,模型复杂度会增加,造成 E o u t E_{out} Eout 变大。也就是说,选择合适的 d v c d_{vc} dvc ,选择的 features 个数要合适。

下面介绍一个概念:样本复杂度(Sample Complexity)。如果选定 d v c d_{vc} dvc,样本数据 D 选择多少合适呢?通过下面一个例子可以帮助我们理解:

《机器学习基石》学习笔记 7 The VC Dimension_第20张图片
通过计算得到 N=29300,刚好满足 δ = 0.1 \delta=0.1 δ=0.1 的条件。N 大约是 d v c d_{vc} dvc 的 10000 倍。这个数值太大了,实际中往往不需要这么多的样本数量,大概只需要 d v c d_{vc} dvc 的 10 倍就够了。N 的理论值之所以这么大是因为 VC Bound 过于宽松了,我们得到的是一个比实际大得多的上界。

《机器学习基石》学习笔记 7 The VC Dimension_第21张图片
值得一提的是,VC Bound 是比较宽松的,而如何收紧它却不是那么容易,这也是机器学习的一大难题。但是,令人欣慰的一点是,VC Bound 基本上对所有模型的宽松程度是基本一致的,所以,不同模型之间还是可以横向比较。从而,VC Bound 宽松对机器学习的可行性还是没有太大影响。

五、总结

本节课主要介绍了 VC Dimension 的概念就是最大的 non-break point。然后,我们得到了 Perceptrons 在 d 维度下的 VC Dimension 是 d+1。接着,我们在物理意义上,将 d v c d_{vc} dvc 与自由度联系起来。最终得出结论 d v c d_{vc} dvc 不能过大也不能过小。选取合适的值,才能让 E o u t E_{out} Eout 足够小,使假设空间 H 具有良好的泛化能力。

你可能感兴趣的:(《机器学习基石》,机器学习)