【机器学习基石笔记七】-----The VC Dimension(VC维数)

之前的几节着重介绍了机器学习可行的条件并做了详细的推导解释,机器学习可行必须满足两个条件:

  • 假设空间hypothesis sets的size M的大小有限,即当N足够大的时候,那么对于hypothesis sets中任意一个假设g,E_{out}\approx E_{in}
  • 利用演算法A从hypothesis sets中选一个函数g,是E_{in}(g)\approx 0,则E_{out}\approx 0

这两个条件对应着test和train两个过程。train的目的是使损失期望E_{in}(g)\approx 0,test的目的是使将算法应用到新的样本时的损失期望也尽可能小,即E_{out}\approx 0。因此,引入了break point,并推导出还要break point存在,则M有上界,就一定存在E_{out}\approx E_{in}

Definition of VC Dimension

根据之前的学习内容,我们知道如果一个hypothesis set中有break point k,那么它的成长函数是有界的,它的上界为bounding function;根据数学归纳法,bounding function也是有界的,且上界为N^{k-1},根据已知的B(N,k),N(k-1)比B(N,k)松弛很多。

由此,VC bound就可以转换为:

这样,不等式只与k和N相关了,一般情况下样本N足够大,所以我们只考虑k值,有如下结论:

  • 如果hypothesis set有break point k,且N足够大,则根据VC bound理论,算法有良好的泛化能力;
  • 在hypothesis set中选择一个函数g,使E_{in}\approx 0,则其在全集数据中的错误率会较低;

引入一个新的名词:VC Dimension,其定义是hypothesis set能够shatter的最多inputs的个数,即最大完全正确的分类能力(注意:只要存在一种分布的inputs能够正确分类也满足)。

根据之前break point的定义(hypothesis set不能被shatter任何分布类型的inputs的最少个数)。则VC bound等于break point的个数减一。

对于之前的四种成长函数例子,它们对应的VC Dimension分别为:

所以,我们认为好的hypothesis是d_{vc}有限的。只要d_{vc}有限,那么无论选择什么样的演算法、什么样的输入资料以及目标函数,都会满足E_{in}\approx E_{out}

VC Dimension of Perceptrons

在2D下,如果data线性可分,则PLA算法就会停下来,在进行足够多次的update之后,会找到一条直线,这条线将所有的data分好,使得E_{in}(g)\approx 0

另外一个走向是,如果data服从某个分布和某个目标函数,则会确保E_{in}E_{out}有很大可能接近(因为2D下d_{vc}=3),就可以说当data的数量很大的时候,E_{in}(g)\approx E_{out}(g),总结起来就会得到E_{out}(g)\approx 0

在多维度的perceptrons下,它对应的d_{vc}是多少?

已知在1D中,d_{vc}=2,在2D中,d_{vc}=3,所以我们假设在多维平面中,d_{vc}=d+1(d为维数);

如果要证明这个问题,需要分为两个步骤:

首先证明第一个:d_{vc}\geq d+1

证明这个不等式的话,我们只要找到一类d+1个输入能够被shatter,就会得到d_{vc}\geq d+1。因此,只要构造一个d维的矩阵X能够被shatter就行。X为d维矩阵,其中有d+1个输入inputs,每个输入input前加上第0维度的常数项1,得到矩阵X(注意:矩阵X存在逆矩阵且唯一)如下:

如果在二维平面上,则相应的矩阵资料代表的点有(0,0)(1,0)(0,1),可以很轻易看出,这三个点是可以shatter的。

下面证明在d维度下d+1个点是可以被shatter的。矩阵X可逆的意义是什么?查看X是否能被shatter,对于给定的任意一种y{+1,-1,..........},因为矩阵X可逆,可以找到一个矩阵w,w=X^{-1}y使得\left ( Xw \right )=y,因此可得sign(Xw)=y

这个X能够被shatter,就可以得出d_{vc}\geq d+1

证明d_{vc}\leq d+1,需要证明任何d+2个input都不能被shatter。在二维平面上有4个输入的数据

其中有一种情况一定不能被shatter。

那么对于任意维度d,查看d+2个输入的资料不能shatter,因此,我们使用一个矩阵X,其中列的数量为d+2,行的数量为d+1(列数大于行数),这个矩阵不是可逆的,存在一个向量X_{d+2}=a_{1}x_{1}+a_{2}x_{2}+.......+a_{d+1}x_{d+1}(线性相关,a_{i}不会全部都是0),就不能产生所有的dichotomy,所以d+2个点不能够被shatter。

如果有一组w,在d+1个输入中产生的情形刚好和a_{i}的符号一致,因为x_{d+2}可以使用其他向量表示,所以得出的结果w^{T}x_{d+2}一定是正的,即前面d+1个决定之后,第d+2就必须为正或者负(即确定的),因此无法产生所有的dichotomy,因此renhe d+2个输入不能shatter

Physical Intution of VC Dimension

根据之前的推导就将VC Dimesion和d+1维的perceptrons联系起来了。上节中公式里的W称为自由度,自由度如同旋钮一样可以进行调节,就可以有无限种hypothesis(每个旋钮都有无限种可能性),VC Dimesion的物理意义就是hypothesis set在二元分类中的有效自由度。

VC Dimension就是hypothesis的最大分类能力,最多能shatter的输入数量。

可以使用旋钮的数量来大概估计VC Dimension,但是并非绝对的。

现在有了VC Dimension,可以使用d_{vc}代替M

Interpreting VC Dimension

更深入了解VC Dimension的意义

根据VC Bound的不等式:出现bad event的概率\left | E_{in}(g)-E_{out}(g) \right |>\epsilon,不会超过4(2N)^{d_{vc}}exp(-\frac{1}{8}\epsilon^{2}N),使用\delta表示。那么出现good event情况的概率最小为1-\delta,其中\epsilon表现了hypothesis set H的泛化能力,\epsilon越小则泛化能力越大。对不等式进行推导,可以得出\epsilon的表达式

因此得出泛化误差E_{out}的边界,其中\Omega (N,H,\delta )表示模型复杂度,则

使用图的形式来查看E_{out},E_{in},\Omega随着d_{vc}变化的关系,

根据图可以看出d_{vc}越大,则E_{in}越小,\Omega越大(复杂);d_{vc}越小,则E_{in}越大,\Omega越小(简单);即随着d_{vc}的增大,E_{out}会先减小再增大。因此,为了得到最小的E_{out},要选择中间的合适的d_{vc}

引入一个新的概念样本复杂度(Sample Complexity),对于确定的d_{vc},样本复杂度要选择多少合适?

对于以下例子,计算得到N=29300,刚好满足\delta =0.1的条件。N大约是d_{vc}的10000倍。这个数太大了,实际上往往不需要这么多的样本数量,大概只需要d_{vc}的10倍就够了。N的理论值之所以大是因为VC Bound过于宽松,所以得到的是一个比实际大得多的上界。

VC Bound是比较宽松的,想让它收紧并不容易,这也是机器学习的一个难题。但是VC Bound基本上对所有模型的宽松程度是基本一致,因此,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习可行性还是没有太大影响。

猜你喜欢

转载自blog.csdn.net/m0_38103546/article/details/82393476
vc