红色石头的个人网站:redstonewill.com

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

  • 假设空间H的Size M是有限的,即当N足够大的时候,那么对于假设空间中任意一个假设g,Eout≈EinEout≈EinE_{out}\approx E_{in}
  • 利用算法A从假设空间H中,挑选一个g,使Ein(g)≈0Ein(g)≈0E_{in}(g)\approx0,则Eout≈0Eout≈0E_{out}\approx0

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

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

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

一、Definition of VC Dimension

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

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

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

  • 若假设空间H有break point k,且N足够大,则根据VC bound理论,算法有良好的泛化能力

  • 在假设空间中选择一个矩g,使Ein≈0Ein≈0E_{in}\approx0,则其在全集数据中的错误率会较低

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

shatter的英文意思是“粉碎”,也就是说对于inputs的所有情况都能列举出来。例如对N个输入,如果能够将2N2N2^N种情况都列出来,则称该N个输入能够被假设集H shatter。

根据之前break point的定义:假设集不能被shatter任何分布类型的inputs的最少个数。则VC Dimension等于break point的个数减一。

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

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

二、VC Dimension of Perceptrons

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

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

已知在1D Perceptron,dvc=2dvc=2d_{vc}=2,在2D Perceptrons,dvc=3dvc=3d_{vc}=3,那么我们有如下假设:dvc=d+1dvc=d+1d_{vc}=d+1,其中d为维数。

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

  • dvc≥d+1dvc≥d+1d_{vc}\geq d+1
  • dvc≤d+1dvc≤d+1d_{vc}\leq d+1

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

在d维里,我们只要找到某一类的d+1个inputs可以被shatter的话,那么必然得到dvc≥d+1dvc≥d+1d_{vc}\geq d+1。所以,我们有意构造一个d维的矩阵XXX能够被shatter就行。X" role="presentation" style="position: relative;">XXX是d维的,有d+1个inputs,每个inputs加上第零个维度的常数项1,得到XXX的矩阵:

矩阵中,每一行代表一个inputs,每个inputs是d+1维的,共有d+1个inputs。这里构造的X" role="presentation" style="position: relative;">XXX很明显是可逆的。shatter的本质是假设空间H对XXX的所有情况的判断都是对的,即总能找到权重W,满足X∗W=y" role="presentation" style="position: relative;">X∗W=yX∗W=yX\ast W=y,W=X−1∗yW=X−1∗yW=X^{-1}\ast y。由于这里我们构造的矩阵XXX的逆矩阵存在,那么d维的所有inputs都能被shatter,也就证明了第一个不等式。

然后证明第二个不等式:dvc≤d+1" role="presentation" style="position: relative;">dvc≤d+1dvc≤d+1d_{vc}\leq d+1。

在d维里,如果对于任何的d+2个inputs,一定不能被shatter,则不等式成立。我们构造一个任意的矩阵XXX,其包含d+2个inputs,该矩阵有d+1列,d+2行。这d+2个向量的某一列一定可以被另外d+1个向量线性表示,例如对于向量Xd+2" role="presentation" style="position: relative;">Xd+2Xd+2X_{d+2},可表示为:

Xd+2=a1∗X1+a2∗X2+⋯+ad+1∗Xd+1Xd+2=a1∗X1+a2∗X2+⋯+ad+1∗Xd+1

X_{d+2}=a_1\ast X_1+a_2\ast X_2+\cdots+a_{d+1}\ast X_{d+1}

其中,假设a1>0a1>0a_1>0,a2,⋯,ad+1<0a2,⋯,ad+1<0a_2,\cdots,a_{d+1}.

那么如果X1X1X_1是正类,X2,⋯,Xd+1X2,⋯,Xd+1X_2,\cdots,X_{d+1}均为负类,则存在WWW,得到如下表达式:
Xd+2∗W=" role="presentation" style="position: relative;">Xd+2∗W=Xd+2∗W=X_{d+2}\ast W=a1∗X1∗Wa1∗X1∗Wa_1\ast X_1\ast W+a2∗X2∗Wa2∗X2∗Wa_2\ast X_2\ast W+⋯⋯\cdots+ad+1∗Xd+1∗Wad+1∗Xd+1∗Wa_{d+1}\ast X_{d+1}\ast W>0>0>0

因为其中蓝色项大于0,代表正类;红色项小于0,代表负类。所有对于这种情况,Xd+2Xd+2X_d+2一定是正类,无法得到负类的情况。也就是说,d+2个inputs无法被shatter。证明完毕!

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

三、Physical Intuition VC Dimension

上节公式中WWW又名features,即自由度。自由度是可以任意调节的,如同上图中的旋钮一样,可以调节。VC Dimension代表了假设空间的分类能力,即反映了H的自由度,产生dichotomy的数量,也就等于features的个数,但也不是绝对的。

例如,对2D Perceptrons,线性分类,dvc=3" role="presentation" style="position: relative;">dvc=3dvc=3d_{vc}=3,则W={w0,w1,w2}W={w0,w1,w2}W=\{w_0,w_1,w_2\},也就是说只要3个features就可以进行学习,自由度为3。

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

四、Interpreting VC Dimension

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

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

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

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

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

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

  • dvcdvcd_{vc}越大,EinEinE_{in}越小,ΩΩ\Omega越大(复杂)

  • dvcdvcd_{vc}越小,EinEinE_{in}越大,ΩΩ\Omega越小(简单)

  • 随着dvcdvcd_{vc}增大,EoutEoutE_{out}会先减小再增大

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

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

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

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

五、总结

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

注明:

文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程

关注公众号并输入关键字“jspdf”获得该笔记的pdf文件哦~

更多AI资源请关注公众号:红色石头的机器学习之路(ID:redstonewill)

台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension相关推荐

  1. 台湾大学林轩田机器学习基石课程学习笔记13 -- Hazard of Overfitting

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了非线性分类模型,通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行分类,分析了非线性变换可能会使计算复杂度 ...

  2. 台湾大学林轩田机器学习基石课程学习 笔记资料汇总

    笔记: 红色石头的专栏(写得非常好) 课后练习: 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总 https://download.csdn. ...

  3. 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem

    红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...

  4. 台湾大学林轩田机器学习基石课程学习笔记15 -- Validation

    红色石头的个人网站:redstonewill.com 上节课我们主要讲了为了避免overfitting,可以使用regularization方法来解决.在之前的EinEinE_{in}上加上一个reg ...

  5. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Logistic Regression问题,建立cross-entropy error,并提出使用梯度下降算法gradient ...

  6. 台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

    红色石头的个人网站:redstonewill.com 上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测.本节课将介绍Logist ...

  7. 台湾大学林轩田机器学习基石课程学习笔记8 -- Noise and Error

    红色石头的个人网站:redstonewill.com 上一节课,我们主要介绍了VC Dimension的概念.如果Hypotheses set的VC Dimension是有限的,且有足够多N的资料,同 ...

  8. 台湾大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

    红色石头的个人网站:redstonewill.com 上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypo ...

  9. 台湾大学林轩田机器学习基石课程学习笔记3 -- Types of Learning

    红色石头的个人网站:redstonewill.com 上节课我们主要介绍了解决线性分类问题的一个简单的方法:PLA.PLA能够在平面中选择一条直线将样本数据完全正确分类.而对于线性不可分的情况,可以使 ...

最新文章

  1. Memcached安装使用和源码调试
  2. js6的未来(二)函数增强
  3. onkeyup,onkeydown和onkeypress的区别介绍
  4. Android使用ActivityGroup设置android:windowSoftInputMode失效的问题
  5. 【Python】Pyecharts数据可视化模块练习
  6. python实现二分查找算法_python实现二分查找算法
  7. 第13次预习课-20180919 多进程编程
  8. 前端学习(3313):redux的基本操作
  9. avalon框架,简单的MVVM
  10. Git之原有基础开发新功能
  11. 移动应用安全形势分析报告
  12. shortcut switch in terminal start pos end pos
  13. PcShare,PcClient 后门手工解决方案
  14. 坐标转换-大地转高斯平面平面坐标转换
  15. 内存free和available区别
  16. 【开发经验】quartz表结构说明(字段说明)
  17. HTML_炫酷的按钮样式
  18. 接入物流快递单号自动识别查询接口API
  19. windows蓝牙编程—— 0 获取本地蓝牙的句柄和信息
  20. GYctf-BFnote IO_FILE还可以这样利用

热门文章

  1. 【零基础】Python的入门学习
  2. php使用curl下载指定大小的文件
  3. 算法题:找出整数数组中两个只出现一次的数字
  4. VMware文件扩展名
  5. poj 1925(坐标上的dp)
  6. hdu 2045(递推)
  7. NYOJ练习题 Splits the string (简单动态规划)
  8. Problem B: 故障电灯(light)
  9. 对象创建方法,对象的内存分配,对象的访问定位
  10. iOS --高仿QQ空间页面