机器学习基石07:The VC Dimension

7.The VC Dimension

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

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

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

正因为如此,上次课引入了 break point,并推导出只要 break point 存在,则M有上界,一定存在 EoutEinE_{out} \approx E_{in}

本文主要介绍VC Dimension的概念。同时总结VC Dimension与 Ein(g)0E_{in}(g) \approx 0Eout0E_{out} \approx 0 ,模型复杂度的关系。


7.1 Definition of VC Dimension

如果一个假设空间 HH 有break point k,那么它的成长函数是有界的,它
的上界称为Bound function。由数学归纳法知,Bound function也是有界的,且上界为 Nk1N^{k-1}。从下面的表格可以看出,N(k1)N(k-1)B(N,k)B(N,k) 松弛很多。
机器学习基石07:The VC Dimension

则根据上一节课的推导,VC bound就可以转换为:
机器学习基石07:The VC Dimension
这样,不等式就只与k和N相关,一般情况下样本N足够大,所以只考虑k值。有如下结论:

  • 若假设空间H有break point k,且N足够大,则根据VC bound理论,算法有良好
    的泛化能力;

  • 在假设空间中选择一个矩g,使 Ein(g)0E_{in}(g) \approx 0,则其在全集数据中的错误率会较低。
    机器学习基石07:The VC Dimension

VC Dimension:某假设集H能够shatter的最多inputs的个数,即最大完全正确的分类能力。(注意,只要存在一种分布的inputs能够正确分类也满足)。

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

break point:假设空间(假设集)H 不能被shatter任何分布类型的inputs的最少个数,亦即不能满足完全分类情形的样本数量。完全二分类(shattered)是可分出 2N2^N 种二分类(dichotomy)的情形。则VC Dimension等于break point的个数 kk 减一。
机器学习基石07:The VC Dimension
回顾一下之前介绍的4种例子,它们对应的VC Dimension是多少:
机器学习基石07:The VC Dimension
dvcd_{vc} 代替 kk,VC bound的问题就转换为与 dvcd_{vc} 和 N 相关了。同时,如果一个假设空间H的 dvcd_{vc} 确定了,则就能满足机器能够学习的第一个条件,与算法、样本数据分布和目标函数都没有关系。
机器学习基石07:The VC Dimension


7.2 VC Dimension of Perceptrons

回顾2D PLA算法,已知Perceptron的k=4,即 dvc=3d_{vc} = 3。以下两个条件保证了2维线性可分的数据是可以学习的。

  1. 线性可分的数据通过PLA算法运行足够长的时间(T步骤足够大),则会找出一条可以正确分类的直线,使得样本中没有产生分错类的情况,即Ein(g)0E_{in}(g) \approx 0

  2. 在训练样本和整个数据集都服从同一分布P的前提下,有VC限制,保证了在dvc=3d_{vc} = 3 训练样本N足够大时,Eout(g)Ein(g)E_{out}(g) \approx E_{in}(g)
    以上两个条件共同得出:如果找到一个g,使Ein(g)0E_{in}(g) \approx 0,那么就能证明PLA是可以学习的。
    机器学习基石07:The VC Dimension

如果是多维的Perceptron,它对应的dvcd_{vc}又等于多少呢?已知在1D Perceptron,dvc=2d_{vc} = 2,在2D Perceptron,dvc=3d_{vc} = 3,那么有如下假设:dvc=d+1d_{vc} = d+1 ,其中d为维数。

要证明的话,只需分两步证明:
机器学习基石07:The VC Dimension

首先证明第一个不等式: dvcd+1d_{vc} \ge d+1

dd 维里,只要找到某一类的 d+1d+1 个输入(inputs)可以被 shatter ,那么必然可证上式成立。所以,有意构造一个 dd 维的矩阵 XX 能够被 shatter 即可。不妨构造一个输入样本集,假设样本为一个行向量,其中第一个样本为0向量,第二个样本是其第一个分量为1其他分量为0的向量,第三个样本是其第二个分量为1其他分量为0的向量,以此类推,第d+1个样本是其第d个分量为1其他分量为0的向量,如:X1=[0,0,...,0]X_1 = [0,0,...,0]X2=[1,0,...,0]X_2 = [1,0,...,0]X3=[0,1,...,0]X_3 = [0,1,...,0],…,Xd+1=[0,0,...,1]X_{d+1} = [0,0,...,1]XXdd 维的,有 d+1d + 1 个输入,每个输入加上第0个维度的分量,其值为1(阈值 bb 变为 w0w_0 所乘的样本分量),得到的 XX 矩阵为:
机器学习基石07:The VC Dimension

矩阵中,每一行代表一个inputs,每个inputs是 d+1d+1 维的,共有 d+1d+1 个inputs。这里构造的很明显是可逆的(从第 2 行到第 d+1d+1 行,每一行都减去第一行得到一个对角矩阵,满秩,所以可逆)。

需要证明的是可以完全二分,关注的重点为输出标记向量 yT=[y1,y2,...,yd+1]y^T = [y_1,y_2, ... , y_{d+1}]。只要找出各种权值向量 ww 能将上述输入样本集X映射到全部的二分情况下的 yy 上就可以了。

已知感知器可以使用 sign(Xw)=ysign(X \cdot w) = y 表示。而只要权值向量使得 $X \cdot w = y $ 成立,就一定满足 sign(Xw)=ysign(X \cdot w) = y 的需求。假设其中输入矩阵如上图中公式所示,即 XX 是可逆矩阵,输出向量 yy 的任意一种 二分类情况都可以被一个假设函数 WW 划分出( dd 维的所有输入都能被shatter。shatter的本质是假设空间H对的所有情况的判断都是对的,即总能找到权重 WW,满足 Xw=y,w=X1yX \cdot w = y, w = X^{-1} \cdot y。),原因是权重向量 ww 满足 w=X1yw = X^{-1} \cdot y,即任何一种二分类情况都会有一个权重向量 ww 与之对应,因此满足 dvcd+1d_{vc} \ge d+1 成立,也就证明了第一个不等式。
机器学习基石07:The VC Dimension
然后证明第二个不等式:dvcd+1d_{vc} \le d+1。思路:证明该式不能如上,因为其要证明在所有的情况下,证明过程稍复杂,先以一个2维空间的例子为切入点。

假设一个2维空间,则需要观察在2+2个输入数据量,不妨假设这四个输入样本分别是:x1=[0,0],x2=[1,0],x3=[0,1],x4=[1,1]x_1 = [0,0], x_2 = [1,0], x_3 = [0,1], x_4 = [1,1]。输入数据集 XX 如下式所示。

X=[1x11x21x31x4]=[100110101111] X = \left[\begin{matrix} 1&x_1\\1&x_2\\1&x_3\\1&x_4 \\ \end{matrix}\right] = \left[\begin{matrix} 1&0&0\\1&1&0\\1&0&1\\1&1&1 \\ \end{matrix}\right]

可以想象在标记 y1=1y_1 = -1y2=+1,y3=+1y_2 = +1, y_3 = +1时,y4y_4 不能为-1,如图所示。
机器学习基石07:The VC Dimension
用数学的形式如何表达?首先根据这四个样本可以确保 x4=x3+x2x1x_4 = x_3 + x_2 - x_1 成立。该式等号两边同时左乘权值向量 wTw^T 可得上图中式所示,这种样本间线性依赖(linear dependence)的关系导致了无法二分。

在d维里,如果对于任何的d+2个inputs,一定不能被shatter,则不等式成立。

构造一个任意的矩阵,其包含 d+2d+2 个inputs,该矩阵有 d+1d+1 列,d+2d+2 行。这d+2d+2 个向量的某一列一定可以被另外 d+1d+1 个向量线性表示,例如对于向量 Xd+2X_{d+2},可表示为:

Xd+2=a1X1+a2X2+a3X3++adXdX_{d+2} = a_1 \cdot X_1 + a_2 \cdot X_2 + a_3 \cdot X_3 + \cdots + a_d \cdot X_d。其中,假设 $a_1 > 0,a_2, \cdots, a_d <0 X1。如果 X_1 是正类,X_2, \cdots, X_d$ 均为负类,则存在 WW ,得到如下表达式:

Xd+2W=a1X1W+a2X2W+a3X3W++adXdW>0X_{d+2} \cdot W = a_1 \cdot X_1 \cdot W + a_2 \cdot X_2 \cdot W + a_3 \cdot X_3 \cdot W + \cdots + a_d \cdot X_d \cdot W > 0

因为其中第一项大于0,代表正类;剩余项小于0,代表负类。所有对于这种情况,一定是正类(因为 aia_iyTy^T 的第 ii 个分量同号,i=1,2,...,d+1i = 1,2,...,d+1)。因此在任何d+2个输入数据集中必然都存在不能满足的二分类( 个inputs无法被shatter),即刻证得:dvcd+1d_{vc} \le d+1
机器学习基石07:The VC Dimension


7.3 Physical Intuition VC Dimension

机器学习基石07:The VC Dimension
上一节内容将感知器中数据的维度与VC维联系到了一起,也明白了VC Dimension中的 Dimension 的含义。而在感知器中,数据样本的维度又与权值向量的维度一致,不同的权值向量对应着不同的假设函数,因此称假设函数的参数 $ w^T = [w_0,w_1,…,w_d]$是假设空间上的自由度(degree of freedom)。自由度是可以任意调节的,如同上图中的旋钮一样,可以调节。如果从假设空间的数量M = |H|角度上描述,则自由度是无限大的;但是从感知器在二元分类上这一限制条件入手,则可以使用VC维作为自由度的衡量。VC Dimension代表了假设空间的分类能力,即反映了H的自由度,产生dichotomy的数量,也就等于features的个数,但也不是绝对的。
机器学习基石07:The VC Dimension

上图中Positive Rays 的例子中,VC Dimension dvc=1d_{vc} = 1时,假设空间有1个参数,即阈值;Positive Intervals 的例子中,VC Dimension dvc=1d_{vc} = 1 时,假设空间有2个参数,即左右边界点。因此在大部分情况下,VC Dimension dvcd_{vc} 大致 == 假设空间参数的个数。

例如,对2D Perceptrons,线性分类,dvc=3d_{vc} = 3 ,则 W=wo,w1,w2W = {w_o,w_1,w_2},亦即只要3个features就可以进行学习,自由度为3。M与 dvcd_{vc} 是成正比的,从而得到如下结论:
机器学习基石07:The VC Dimension

dvcd_{vc}很小的时候 dvcd_{vc}很大的时候
第一个条件 ① 满足,PD[BADD]4(2N)dvcexp(...)P_D[BAD D] \le 4 \cdot (2N)^{d_{vc}}\cdot exp(...)时,不好情况出现的几率变小了 不满足,PD[BADD]4(2N)dvcexp(...)P_D[BAD D] \le 4 \cdot (2N)^{d_{vc}} \cdot exp(...) 时,不好情况出现的几率变大了
第二个条件 ② 不满足,在 dvcd_{vc}变小时,假设的数量变小,算法的选择变小,可能无法找到 Ein(g)0E_{in}(g) \approx 0的假设 满足,在 dvcd_{vc}变大时,假设的数量变大,算法的选择变大,找到 Ein(g)0E_{in}(g) \approx 0的假设

在一些书中,参数较多的模型都称为复杂模型,很少给出解释,这一节的内容给出了很好的解释,因为在很多情况下模型参数的个数大致等于VC维的个数。参数越多或者说模型越复杂,越有可能找出使 EinE_{in} 最小的假设函数g,但是这需要大量训练样本的支持,因为只有在训练样本数量N足够大时,才能使更复杂(即参数更多或者说VC维更大)的模型出现不好情况的几率变小,如上表的右列。


7.4 Interpreting VC Dimension

进一步探讨 VC Dimension的意义。VC Bound:
机器学习基石07:The VC Dimension

根据之前的泛化不等式,如果EinEout>ϵ|E_{in} - E _{out}|> \epsilon,即出现 BAD 情况的概率最大不超过 δ\delta。反过来,归于GOOD情况发生的概率最小为 1δ1-\delta,则对上述不等式进行重新推导:
机器学习基石07:The VC Dimension
ϵ\epsilon 表现了假设空间H的泛化能力,ϵ\epsilon 越小,泛化能力越大。
机器学习基石07:The VC Dimension
至此,已经推导出泛化误差 EoutE_{out} 的边界,因为我们更关心其上界( EoutE_{out} 可能的最大值),即:
机器学习基石07:The VC Dimension
上述不等式的右边第二项称为模型复杂度(model complexity),其模型复杂度与样本数量N、假设空间H( dvcd_{vc})、ϵ\epsilon 有关。EoutE_{out}EinE_{in} 共同决定。EoutE_{out}、模型复杂度、 EinE_{in}dvcd_{vc}变化的关系如上图所示。由上图可知:

  • dvcd_{vc} 越大,EinE_{in} 越小,Ω\Omega 越大(复杂)。
  • dvcd_{vc} 越小,EinE_{in} 越大,Ω\Omega 越小(简单)。
  • 随着 dvcd_{vc} 增大, EoutE_{out} 会先减小再增大。

所以,为了得到最小的 EoutE_{out},不能一味地增大 dvcd_{vc} 以减小EinE_{in},因为 EinE_{in} 太小的时候,模型复杂度会增加,造成 EoutE_{out} 变大。也就是说,选择合适的 dvcd_{vc},选择的features个数要合适。

VC维除了表示模型复杂度之外还可以表示样本复杂度(Sample Complexity)

如果选定 dvcd_{vc},样本数据D选择多少合适呢?通过下面一个例子可以帮助我们理解:
机器学习基石07:The VC Dimension

通过计算得到N=29300,刚好满足 δ=0.1\delta = 0.1 的条件。N大约是 dvcd_{vc} 的10000倍。这个数值太大了,实际中往往不需要这么多的样本数量,大概只需要 dvcd_{vc} 的10倍就够了。N的理论值之所以这么大是因为VC Bound 是非常宽松的约束,得到的是一个比实际大得多的上界。宽松约束的四个主要原因:

  1. 霍夫丁不需要知道未知的 EoutE_{out},VC限制可以用于各种分布,各种目标函数;
  2. 成长函数 mH(N)m_H(N) 取代真正的二分类个数本身就是一个宽松的上界,VC限制可以用于各种数据样本;
  3. 使用二项式 NdvcN^{d_{vc}} 作为成长函数的上界使得约束更加宽松,VC限制可以用于任意具有相同VC维的 dvcd_{vc} 假设空间;
  4. 联合限制(union bound)并不是一定会选择出现不好事情的假设函数,VC限制可以用于任意算法。
    机器学习基石07:The VC Dimension
    值得一提的是,VC Bound是比较宽松的,而如何收紧它却不是那么容易,这也是机器学习的一大难题。但是,令人欣慰的一点是,VC Bound基本上对所有模型的宽松程度是基本一致的,所以,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习的可行性还是没有太大影响。

summary

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

参考:
https://www.cnblogs.com/ymingjingr/p/4300092.html
https://github.com/RedstoneWill/HsuanTienLin_MachineLearning