第7节课 The VC Dimension
- 上节课的最后一部分推导引出了VC维理论的公式,本节课主要学习了VC维理论的各种概念。学习了VC维的定义,感知机的VC维以及VC维的物理意义和VC维的解释。VC维理论是分析机器学习模型的最重要的理论工具。本节课的知识掌握的不好,很多地方没有理解,需要多下功夫去学习!
- 补充:如果Hypotheses set的VC维是有限的,且有足够多N的资料,同时能够找到一个hypothesis使它的Ein≈0,那么就能说明机器学习是可行的。
(一)之前学过的知识回顾(为了更好的理解之后要学的东西)
1. 之前主要讲了机器能够学习的条件并做了详细的推导和解释。机器能够学习必须满足两个条件:
①假设空间H的Size M是有限的,即当N足够大的时候,那么对于假设空间中任意一个假设g,Eout≈Ein。
②利用算法A从假设空间H中,挑选一个g,使Ein(g)≈0,则Eout≈0。
2.引入了break point(突破点),并推导出只要break point存在,则M有上界,一定存在Eout≈Ein。
(二)VC维的定义
1.成长函数的上限函数(Bound function)知识的补充
假设空间H有突破点k,那么它的成长函数是有界的,它的上界称为上限函数。根据数学归纳法,上限函数也是有界的,称为上限的上限,大小为N的k-1次方。以下为上限函数的表格和上限的上限的表格:
故可以用以下这个式子去描述成长函数:
2.VC bound式子可以转换成以下形式:
这个式子中只与k和N有关系,一般需要N够大以及k>=3,此时得到以下结论:(要有好的空间H,足够大的Data和好的演算法A)
3.引入VC维的定义(好好理解)
①VC维的定义就是某假设集H能够shatter的最多inputs的个数,即最大完全正确的分类能力。
②shatter的英文意思是“粉碎,破坏”,也就是说对于inputs的所有情况都能列举出来。例如对N个输入,如果能够将2的N次方种情况都列出来,则称该N个输入能够被假设集H shatter。
③根据之前break point的定义:假设集不能被shatter任何分布类型的inputs的最少个数。则VC维等于break point的个数减1。
最终又可以把成长函数转换成下面的式子:
4.回顾之前成长函数用到的四个例子,分别分析它们的d(VC):
5.进一步分析机器学习的流程,如果一个假设集H的dVC确定了,即使在最坏的状况下,还是能够确保Eout≈Ein,与算法,样本数据分布和目标函数无关。
(三)感知机的VC维
1.回顾PLA算法
根据线性可分的情况下PLA可以停下来,从而得到Ein=0;另外一部分是根据感知机的k=4,得到dVC=3,从而确保Eout≈Ein。因此由这两部分可以推断出Eout≈0。
PLA算法不仅可以用在二维的情况下,还可以用在多维的情况下,下面主要学习该算法在多维情况下有什么变化。
2.感知机的VC维
(1)猜想:从一维、二维猜测到多维的dVC是否为d+1。
(2)两个方向出发证明这个猜想:
(3)接下来证明上面两个不等式从而得到dVC=d+1(视频的讲解过程没听懂,这一块的整理参考的网上的资料)
①证明 dvc >= d+1
对于d 维空间的任意输入数据x1, 都增加一个分量x10, 取值恒为1。即 x1 = (1, x11, x12, ... , x1d)。 (x1 是一个向量),取组特殊的输入数据:
对于上面的d+1 个输入数据,我们可以求得向量w :
也就是说,这样的d+1 个输入数据可以被d 维感知机打散(shattered), 所以有 dvc >= d+1.
②证明 dvc <= d+1
对于d 维空间的输入数据:
也就是说,不可能存在d+2 个线性独立的输入数据。其中,线性组合中的系数可能为正、负或零,但是不全为零。
等式两边都乘以 w 向量:
假设这d+2 个数据都可以被打散。那么我们可以对 wx 随意取值(-1 或 +1),上式都应该能够满足。然而,对于这样的情况:当系数a 为正数时,wx 取+1,反之w*x 取-1,式子右边一定大于0;此时式子左边就无法取-1,与假设矛盾。所以d 维感知机无法打散 d+2 个点,也就是说VC 维最大只能是 d+1。
- 综上证明得 dvc = d+1。
(四)VC维的物理意义
1.VC维可以反映假设空间H 的强大程度(powerfulness),VC 维越大,H也越强,因为它可以打散更多的点。
通过对常见几种假设的VC 维的分析,我们可以得到规律:VC 维与假设参数w 的自由变量数目(features)大约相等。
例如,对于2维感知机,w = (w0, w1, w2),有三个自由变量,dVC = 3。
2.M与dVC是成正比的,从而得到如下的结论:
(五)VC维的解释(没有学好)
1.为了更深入的了解VC维的意义,首先先回顾一下VC bound的式子:
上述推导基本表达了模型越复杂(VC维大),Eout 可能距离Ein 越远。
2.用下面的式子和曲线更好的表达上述的观点,已经推导出泛化误差Eout的边界,因为更关心其上界(Eout可能的最大值),即:
上述不等式的右边第二项称为模型复杂度,其模型复杂度与样本数量N、假设空间H(dvc)、ϵ有关。Eout由Ein共同决定。
通过上面的曲线图可以得出如下结论:
①dvc越大,Ein越小,Ω越大(复杂)。
②dvc越小,Ein越大,Ω越小(简单)。
③随着dvc增大,Eout会先减小再增大。
3.样本复杂度(Sample Complexity)
通过计算得到N大约是dvc的10000倍。这个数值太大了,实际中往往不需要这么多的样本数量,大概只需要dvc的10倍就够了。N的理论值之所以这么大是因为VC Bound 过于宽松了,得到的是一个比实际大得多的上界。
总结:VC Bound是比较宽松的,而如何收紧它却不是那么容易,这也是机器学习的一大难题。但是,VC Bound基本上对所有模型的宽松程度是基本一致的,所以,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习的可行性还是没有太大影响。(理解)