1、Definition of VC Dimension
我们上次学习到,如果我们的假设空间存在Break Point,那么它一定存在成长函数mH(N)被某个上限函数B(N,k)所约束,这个上限函数也会被某个多项式约束,而这个多项式最高项为N^(k-1)。
因此我们可总结为:
①我们需要有一个好的hypothesis,也就是存在Break Point。
②我们需要有一个好的数据集D,也就是一个比较大的D。
满足此两点,我们就可以推出Eout≈Ein
如果此时我们再有一个好的演算法A能使得Ein≈0,这样我们理论上就可以得到机器有效学习。
VC Dimension表示最大的non-break point点。如果k存在,即存在点N个点可以被shatter,有VC Dimension=break point k-1;如果k不存在,即任何N个点都不可以shatter,则VC Dimension无限大。 下面是之前学到的四个hypothesis set的dVC:
因此我们现在有一个新的概念了,之前我们定义一个好的hypothesis set为存在Break Point k的hypothesis set,现在相对应的,一个好的hypothesis set为VC Dimension为有限数的hypothesis set。
因此VC Dimension为有限数就确保了我们的g能够满足Eout(g)≈Ein(g)。这与我们选择什么演算法A无关(即使Ein!≈0,我们还是要确保Eout≈Ein),与我们的资料由怎么样的distribution产生没有关系,也与我们的目标函数f没有关系(这样我们就可以维持f是在不知道的情况下做出这样的动作)。
2、VC Dimension of Perceptrons
回顾一下之前学习的2D PLA,对于一个线性可分的数据集合D,PLA可以找到目标函数f正确的将数据分类,此时有Ein(g)=0;再由之前的推理,通过dVC=3,我们可以得出在样本数据足够大的情况下,有Eout(g)≈Ein(g),综合两点可得Eout(g)≈0,这样我们的机器就能学到东西。
那么现在我们来讨论多维下Perceptrons的dVC情况。由之前的课程我们知道对于Perceptron,一维情况下dVC=2;二维情况下dVC=3;那么我们不妨做一个假设:D维情况下dVC=d+1。
要证明这个结论成立,像二维时的证明那样,我们可以分为两步:
①dVC>=d+1
②dVC<=d+1
首先证明①,我们只要在d维里找出一组d+1笔的input,可以被我的hypothesis set所shatter(即证明存在d+1数量的数据集可以完全二分),就能证明dVC>=d+1。
我们构造一个输入样本集,样本为一个行向量,第一行为0向量,第二行为第一个分量为1其他分量为0的向量(1,0,…,0),…,第d+1行为第d个分量为1其他分量为0的向量(0,0,…,1),对每个样本再加上默认的第0个分量,其值为1。
需要证明的是这个矩阵可以完全二分,我们知道shatter的本质是假设空间H对输入X的所有情况的判断都正确,在数学上即能找到权值向量w,使得w能将X映射到y上,即sign(Xw)=y,而只要存在w使得Xw=y,就能满足sign(Xw)=y。
很明显X可逆,因此我们可以得到
因此我们知道这个d+1维的数据集可以完全二分,从而dVC>=d+1。
接下来我们证明②,在d维里,如果对于任何d+2个input都一定不能shatter,就能证明dVC<=d+1。
我们先考虑2维情况下不能shatter的特殊情形:
显然如果左上角和右下角为+1,左下角为-1,那么右上角的点不能为-1,否则dichotomy不能产生。
数学上表示为
这种样本间的线性依赖性(linear dependence)导致了无法二分。
推广到多维,假设d维中有d+2个样本,现在矩阵X的row为d+2,column为d+1。
此时会有线性相依的产生
如果xi为正,那么对应wi为+1;如果xi为负,那么对应wi为-1。此时xd+2的正负就被其他维所决定了。
因此任何d+2个输入样本中必然都存在不能满足的二分类,从而dVC<=d+1。
综上有dVC=d+1。
3、Physical intuition of VC Dimension
在感知机中,数据样本的维度与权值向量的维度一致,不同的权值向量对应不同的假设函数。我们将权值向量w称为假设空间上的自由度(degree of freedom)。
自由度可以任意调节,假设空间从数量上来讲是无限大的;但我们从感知机二元分类来考虑,可知VC Dimension反映了有效的自由度个数。
结合之前的结论,我们可以用dVC来代替M的作用:
4、Interpreting VC Dimension
之前我们了解到VC bound公式如下:
右边用δ代替,我们可以知道发生坏事情(|Ein-Eout|>ε)的几率小于等于δ,那么发生好事情的几率一定大于等于1-δ。我们对不等式重新推导:
Ein(g)-Eout(g)被称为泛化误差(generalization error),泛化误差小于等于ε。因此可推导出Eout(g)的上界:
Ω(N,H,δ)又称为模型复杂度(model complexity)。下面给出Ein、Eout、Ω(N,H,δ)与dVC的关系图:
随着dVC增大,可选择的假设空间就越大,就越可能得到更小的Ein;又由模型复杂度的表达式可知此时Ω(N,H,δ)会增大。
又Eout为两者之和因此呈现出先减小后增大的趋势。
我们知道学习的目的是使Eout越小越好,因此找到合适的dVC是重要的。
VC bound还可以表示样本复杂度(sample complexity)。一个例子:
通过计算N大概在29300时,可以训练出满足条件的模型,N大概是dVC的10000倍。但是实际生活中,我们不需要这么多的资料就可以得到还不错的learning的表现,大概N≈10dVC就可以了。N的理论值如此之大是由于VC bound是一个非常宽松的约束,宽松的原因如下:
VC bound是比较宽松的,但收紧它并不那么容易,实际上很难找到在这四个方面都可以任意选择且比VC bound更紧的约束了,这也是Machine Learing的一大难题。而且未来我们会介绍很多不同的hypothesis set,很多不同的learning model,而VC bound对其的宽松程度是差不多的,因此不同的模型之间可以横向比较,从而VC bound宽松程度对机器学习可行性没有太大的影响。