林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)

欢迎转载,可以关注博客:http://blog.****.net/cqy_chen

概要

上节讲到了一般化理论,当假设空间中存在断点,资料够多的时候,那么我们可以保证EinEout接近。

VC维的定义

上节课我们证明了VC 边界。
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
同时,根据霍夫丁不等式;

林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)

1)假设空间存在断点
2)资料足够大
3)假设空间中存在一个假设函数,使得Ein足够小。

那么我们就可以得到机器学习是可行的。
VC维的定义是来自上节中我们讲到的断点。
VC维是在假设空间中,给定资料足够大的情况下,最大能够shatter点的个数,是不是很像断点的定义,断点是指第一个不能被shatter点的个数。所以。

dvc=minimumk1

当资料量小于dvc,那么我们的资料可能会被shatter掉,当资料量大于dvc一定不能被假设空间shatter。所以我们的成长函数可以表示为:
mHNdvc

如下表示了4种情况下的VC 维情况。
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
当vc维是有限的情况下,会保证机器学习可行。
同时vc维和演算法A无关,和分布P无关,和目标函数f无关。
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
在坏的情况下,也保证是可以学习的。

如果存在一个N笔资料不能被shatter,那么dvc是小于N呢?答案是不是的,只有任意N笔资料不能被shatter才行,dvcshatter

PLA的VC维

我们以二维空间下的PLA为例,假如资料是线性可分的,那么我们知道假设空间中存在g使得Ein=0
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
又因为我们知道二维空间下的VC维是有限的,所以我们在资料量足够大的情况下证明Eout也接近0。

这是在二维的情况下,那么在三维,四维或者更高维度呢?VC维到底是多少呢?
我们知道PLA在1维的时候,dvc=2
在二维的时候,dvc=3
那么再N维的时候是不是dvc=N+1
如果要证明dvc=N+1,需要证明dvcN+1 ,且dvcN+1

下面进行证明,首先证明dvcd+1
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)

要证明dvcd+1,那么就是对于任意的d+2个点都不能shatter。

林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
同理,我们给定(d+2)*(d+1)的一个矩阵,那么这个矩阵一定是线性相关的。所以总有一笔资料是可以用其他资料来表示的。那么就会导致其他的资料确定了之后,那么这笔资料就确定了,而shatter是要表示任意的两种情况,现在却是确定的。就是表示任意的d+2笔资料是不能被shatter的。

所以证明了d维的PLA的vc维是d+1。

VC维的物理直觉

上面中我们其实证明了假设空间的维度和VC维的关系。
比如上面的,PLA的维度和VC维度是有关系的,这也是为啥是叫VC 维。
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
VC维的物理意义其实就是在二分类的情况下,假设空间的*度。或者说是维度。就像上面的旋钮的个数。而对应的是一般情况下算法的参数个数,比如为什么神经网络容易过拟合,就是因为参数太多了,vc维太大导致的嘛。
我们再回到第五节讲到的M,看看M和dvc的关系。
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
根据霍夫丁不等式,当M很小的时候,对应dvc 也比较小,那么会导致假设空间中备选函数少,那么久不太可能使得Ein比较小。但是EinEout和很接近。
同理当M很大的时候,可以得到相应的结论。

VC维的解释

在霍夫丁不等式中,我们知道坏事情发生的概率是在一个范围内,反过来讲就是好事情限定在1减去这个概率中。
如下图所示:
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)

上面的一张图就解释了为啥当我们选用很复杂的模型的时候,就是vc维比较大,模型复杂度高,这样E(out)也会变大,这就gg了。
所以这里也建议在机器学习中不要一上来就采用复杂的模型,一般是从简单的模型开始,比如LR,svm等。

我们再来看看数据量大小的评估
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
这里假设坏事情发生的概率 δ=0.1 就是希望在未知样本的正确率达到90%。同时呢ϵ=0.1。就是EinEout相差比较近。采用2D的PLA。
就得到
1)如果我们需要达到这样的小姑,需要10000*dvc的样本量就是30000个点。
2)实际过程的时候,其实只需要10*dvc

为啥差异这么大呢?如果你仔细看了整个推导过程就能够发现,这里用了太多的上界叠加。
林轩田之机器学习课程笔记(why can machines learn之the VC dimension)(32之7)
又四个点:
1)霍夫丁不等式是对容易的分布,任意的目标函数都成立的,一般来说我们的资料都是有特定分布得。
2)我们使用了成长函数来估计假设空间的大小
3)我们用了Ndvc来估计成长函数,这就放的很宽松了
4)我们使用了叠加的方式,对于发生不好几率的情况下。

所以这些状况进行了叠加导致通过公式计算需要大量的样本,实际情况则不然。但是要想在公式上进一步压缩,现在看来还不太行。

欢迎转载,可以关注博客:http://blog.****.net/cqy_chen