机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension

课程主页

课程视频和PPT

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

  • 假设空间H的Size M是有限大的,即当N(D的大小)足够大时,那么对于假设空间中任意一个假设h,有E_{out} \approx E_{in}.
  • 利用演算法A从假设空间H中,挑选一个最好的h,记为g,使得E_{in}(g)\approx 0,则E_{out} \approx 0

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

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

本次笔记主要介绍VC Dimension的概念。同时也是总结VC Dimension与E_{in}(g) \approx 0E_{out} \approx 0,Model Complexity Penalty(下面会讲到)的关系。

目录

1. Definition of VC Dimension

2. VC Dimension of Perceptrons

3. Physical Intuition VC Dimension

4. Interpreting VC Dimension

5. 总结


1. Definition of VC Dimension

首先,我们知道如果一个假设空间H有break point k,那么它的成长函数是有界的,它的上界称为Bound function。根据数学归纳法,Bound function也是有界的,且上界为N^{k-1}。从下面的表格可以看出,N^{k-1}比B(N,k)松弛很多。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第1张图片

其中,\bigl(\begin{smallmatrix} N\\ i \end{smallmatrix}\bigr)=\frac{N!}{i!(N-i)!},\Sigma_{i=0}^{k-1} \bigl(\begin{smallmatrix} N\\ i \end{smallmatrix}\bigr)= \bigl(\begin{smallmatrix} N\\ 0 \end{smallmatrix}\bigr) + \bigl(\begin{smallmatrix} N\\ 1 \end{smallmatrix}\bigr) + ... + \bigl(\begin{smallmatrix} N\\ k-1 \end{smallmatrix}\bigr) = 1 + N + ... + \frac{N(N-1)...(N-(k-2))}{(k-1)!}.

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第2张图片

则根据上一节课的推导,VC bound就可以转换为:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第3张图片

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

  • 若假设空间H有break point k,且N足够大,则根据VC bound理论,算法有良好的泛化能力
  • 在假设空间中选择一个g,使得E_{in}(g) \approx 0,则其在全体数据中的错误率会较低(因为满足上述条件,E_{in}\approx E_{out}

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第4张图片

下面介绍一个新的名词:VC Dimension。VC Dimension就是某假设集H能够shatter的最多inputs的个数(一个input对应一个数据点),即最大完全正确的分类能力。(注意,只要存在一种分布的inputs能够正确分类也满足)。

shatter的英文意思是“粉碎”,也就是说对于inputs的所有情况都能列举出来(对所有数据点类别的排列组合都能列举出来 即可以对每种情况完全分类正确)。例如对N个输入,如果能够将2^N种情况都列出来,则称该N个输入能够被假设集H shatter。

根据之前break point的定义:假设集不能shatter任何分布类型的inputs的最少个数,即满足m_H(k)\neq 2^k最小的k值。则VC Dimension等于break point的个数减一。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第5张图片

现在,我们回顾一下之前介绍的四种例子,它们对应的VC Dimension是多少:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第6张图片

d_{vc}代替k,那么VC bound的问题也就转换为与d_{vc}和N相关了。同时,如果一个假设集H的d_{vc}确定了,则就能满足机器能够学习的第一个条件E_{out} \approx E_{in},与算法、样本数据分布和目标函数都没有关系。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第7张图片

 

2. VC Dimension of Perceptrons

回顾一下我们之前介绍的2D下的PLA算法,已知Perceptrons的k=4,即d_{vc}=3.根据VC Bound理论,当N足够大的时候,E_{out}(g) \approx E_{in}(g).如果找到一个g,使E_{in}(g) \approx 0,那么就能证明PLA是可以学习的。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第8张图片

 

这是在2D情况下,那如果是多维的Perceptron,它对应的d_{vc}又等于多少呢?

已知在1D Perceptron,d_{vc}=2(简单画一下图就清楚了,数据点在一条直线上,当N=3时是不能被shattered的,即无法用一条直线完全分类3个点的各种类别组合,即k=3也就是d_{vc}=2),在2D Perceptrons,d_{vc}=3,那么我们有如下假设:d_{vc} = d + 1,其中d是维数(样本特征数).

要证明的话,只需分两步证明:

  • d_{vc} \geq d + 1
  • d_{vc} \leq d + 1

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第9张图片

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

 

在d维里,我们只要找到d+1个inputs(数据/样本点)可以被shatter的话,那么必然得到d_{vc} \geq d + 1。所以,我们有意构造一个d维的矩阵X能够被shatter就行。X(d+1)*d维的,即有d+1个inputs(数据点),每个inputs的维数(特征数)是d。每个inputs加上第零个维度的常数项1,得到新的X矩阵:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第10张图片

矩阵中,每一行代表一个inputs(数据点),每个inputs是d+1维的(特征维数),共有d+1个inputs。这里构造的X很明显是可逆的。shatter的本质是假设空间H对X的所有情况(类别组合)都能完全分类正确,即对于每一种情况(一种类别组合 也就是一种y)总能在假设集H中找到一个假设h,它对应一条直线可以对这种情况完全分类正确,即找到对应这条直线的权重W,满足XW = y,W = X^{-1}y.由于这里我们构造的矩阵X的逆矩阵存在,那么d维的所有inputs都能被shatter,也就证明了第一个不等式。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第11张图片

然后证明第二个不等式:d_{vc} \leq d + 1

在d维里,如果对于任何的d+2个inputs,一定不能被shatter,则不等式成立。我们构造一个任意的矩阵X,其包含d+2个inputs,该矩阵有d+1列(前面加一列1,方便运算),d+2行。行数大于列数,这d+2个向量的某一个一定可以被另外d+1个向量线性表示,例如对于向量X_{d+2},可以表示为:

其中,假设a_1>0,a_2,...,a_{d+1}<0.

那么如果X_1是正类,X_2,...,X_{d+1}均为负类,则存在W,得到如下表达式:

因为X_1是正类,那么X_1W>0,a_1>0所以a_1X_1W>0;X_2,...,X_{d+1}均为负类,X_iW<0,a_i<0,i=2,...,d+1,所以a_iX_iW>0,i=2,...,d+1。从而得到X_{d+2}一定是正类,无法得到负类的情况。也就是说,d+2个inputs无法被shatter。证明完毕!

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第12张图片

综上证明可得d_{vc} = d+1.

 

3. Physical Intuition VC Dimension

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第13张图片

 

VC Dimension实际上是自由度,对于d维perceptron每个假设都对应一个超平面或直线(d=2),也就对应一组参数w,w是d+1维的,d_{vc} = d+1,也就是说有d+1个可以自由调节的参数,如同上图中的旋钮一样。

VC Dimension代表了假设空间的分类能力,越大分类能力越强,即反映了H的自由度,产生dichotomy的数量或者能最大shatter的inputs数/数据量(对于这些数据点类别情况的排列组合都能完全分类正确,例如perceptron算法是用直线或超平面来分隔),也就等于可以自由调节的参数的个数,但也不是绝对的。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第14张图片

例如,对2d Perceptrons,线性分类, d_{vc} = d+1=3,则W=\{w_0,w_1,w_2\},也就是说可以自由调节的参数个数为3,自由度为3.

介绍到这,我们发现M与d_{vc}是成正比的,从而得到如下结论:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第15张图片

4. Interpreting VC Dimension

 下面,我们将更深入地探讨VC Dimension的意义。首先,把VC Bound重新写到这里:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第16张图片

根据之前的泛化不等式,如果坏情况|E_{in}-E_{out}|>\epsilon的概率最大不超过\delta。那么反过来,对于good好的情况发生的概率最小为1-\delta,则对上述不等式进行重新推导:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第17张图片

(注意上述推导中,取ln之后,把右边的负号移到左边,就变成了真数的幂,-1,分子分母颠倒过来)

\epsilon表现了假设空间H的泛化能力,\epsilon越小,泛化能力越大。

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第18张图片

至此,已经推导出泛化误差E_{out}的边界,因为我们更关心其上界(E_{out}可能的最大值),即: 

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第19张图片

上述不等式的右边第二项称为模型复杂度,其模型复杂度与样本数量N、假设空间H(d_{vc}) 、\epsilon有关。E_{out}E_{in}和模型复杂度共同决定。下面绘制出E_{out}E_{in}和模型复杂度随d_{vc}的变化关系:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第20张图片

通过该图可以得出如下结论:

  • d_{vc}越大,可以自由调节的参数越多,模型拟合能力更强,E_{in}越小,\Omega越大(模型越复杂)
  •  d_{vc}越小,可以自由调节的参数越少,模型拟合能力变弱,E_{in}越大,\Omega越小(模型越简单)
  • 随着d_{vc}增大,E_{out}会先减小后增大。

 

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

下面介绍一个概念:样本复杂度(Sample Complexity)。如果选定d_{vc},样本数据D选择多少合适呢?通过下面一个例子可以帮助我们理解:

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第21张图片

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

机器学习 | 台大林轩田机器学习基石课程笔记7 --- The VC Dimension_第22张图片

值得一提的是,VC Bound是比较宽松的,而如何收紧它却不是那么容易,这也是机器学习的一大难题。但是,令人欣慰的一点是,VC Bound基本上对所有模型的宽松程度是基本一致的,所以,不同模型之间还是可以横向比较。从而,VC Bound宽松对机器学习的可行性还是没有太大影响。 

5. 总结

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

 

 

 

 

你可能感兴趣的:(林轩田机器学习,机器学习,林轩田,机器学习基石,VC,Dimension)