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

上一节课,我们主要探讨了当M的数值大小对机器学习的影响。如果M很大,那么就不能保证机器学习有很好的泛化能力,所以问题转换为验证M有限,即最好是按照多项式成长。然后通过引入了成长函数mH(N)mH(N)m_H(N)和dichotomy以及break point的概念,提出2D perceptrons的成长函数mH(N)mH(N)m_H(N)是多项式级别的猜想。这就是本节课将要深入探讨和证明的内容。

一、Restriction of Break Point

我们先回顾一下上节课的内容,四种成长函数与break point的关系:

下面引入一个例子,如果k=2,那么当N取不同值的时候,计算其成长函数mH(N)mH(N)m_H(N)是多少。很明显,当N=1时,mH(N)mH(N)m_H(N)=2,;当N=2时,由break point为2可知,任意两点都不能被shattered(shatter的意思是对N个点,能够分解为2N2N2^N种dichotomies);mH(N)mH(N)m_H(N)最大值只能是3;当N=3时,简单绘图分析可得其mH(N)=4mH(N)=4m_H(N)=4,即最多只有4种dichotomies。

所以,我们发现当N>k时,break point限制了mH(N)mH(N)m_H(N)值的大小,也就是说影响成长函数mH(N)mH(N)m_H(N)的因素主要有两个:

  • 抽样数据集N

  • break point k(这个变量确定了假设的类型)

那么,如果给定N和k,能够证明其mH(N)mH(N)m_H(N)的最大值的上界是多项式的,则根据霍夫丁不等式,就能用mH(N)mH(N)m_H(N)代替M,得到机器学习是可行的。所以,证明mH(N)mH(N)m_H(N)的上界是poly(N),是我们的目标。

二、Bounding Function: Basic Cases

现在,我们引入一个新的函数:bounding function,B(N,k)。Bound Function指的是当break point为k的时候,成长函数mH(N)mH(N)m_H(N)可能的最大值。也就是说B(N,k)是mH(N)mH(N)m_H(N)的上界,对应mH(N)mH(N)m_H(N)最多有多少种dichotomy。那么,我们新的目标就是证明:

B(N,k)≤poly(N)B(N,k)≤poly(N)

B(N,k)\leq poly(N)

这里值得一提的是,B(N,k)的引入不考虑是1D postive intrervals问题还是2D perceptrons问题,而只关心成长函数的上界是多少,从而简化了问题的复杂度。

求解B(N,k)的过程十分巧妙:

  • 当k=1时,B(N,1)恒为1。

  • 当N < k时,根据break point的定义,很容易得到B(N,k)=2NB(N,k)=2NB(N,k)=2^N。

  • 当N = k时,此时N是第一次出现不能被shatter的值,所以最多只能有2N−12N−12^N-1个dichotomies,则B(N,k)=2N−1B(N,k)=2N−1B(N,k)=2^N-1。

到此,bounding function的表格已经填了一半了,对于最常见的N>k的情况比较复杂,推导过程下一小节再详细介绍。

三、Bounding Function: Inductive Cases

N > k的情况较为复杂,下面给出推导过程:

以B(4,3)为例,首先想着能否构建B(4,3)与B(3,x)之间的关系。

首先,把B(4,3)所有情况写下来,共有11组。也就是说再加一种dichotomy,任意三点都能被shattered,11是极限。

对这11种dichotomy分组,目前分成两组,分别是orange和purple,orange的特点是,x1,x2和x3是一致的,x4不同并成对,例如1和5,2和8等,purple则是单一的,x1,x2,x3都不同,如6,7,9三组。

将Orange去掉x4后去重得到4个不同的vector并成为αα\alpha,相应的purple为ββ\beta。那么B(4,3)=2α+βB(4,3)=2α+βB(4,3) = 2\alpha + \beta,这个是直接转化。紧接着,由定义,B(4,3)是不能允许任意三点shatter的,所以由αα\alpha和ββ\beta构成的所有三点组合也不能shatter(alpha经过去重),即α+β≤B(3,3)α+β≤B(3,3)\alpha + \beta\leq B(3,3)。

另一方面,由于αα\alpha中x4是成对存在的,且αα\alpha是不能被任意三点shatter的,则能推导出αα\alpha是不能被任意两点shatter的。这是因为,如果αα\alpha是不能被任意两点shatter,而x4又是成对存在的,那么x1、x2、x3、x4组成的αα\alpha必然能被三个点shatter。这就违背了条件的设定。这个地方的推导非常巧妙,也解释了为什么会这样分组。此处得到的结论是α≤B(3,2)α≤B(3,2)\alpha \leq B(3,2)

由此得出B(4,3)与B(3,x)的关系为:

最后,推导出一般公式为:

根据推导公式,下表给出B(N,K)值

根据递推公式,推导出B(N,K)满足下列不等式:

上述不等式的右边是最高阶为k-1的N多项式,也就是说成长函数mH(N)mH(N)m_H(N)的上界B(N,K)的上界满足多项式分布poly(N),这就是我们想要得到的结果。

得到了mH(N)mH(N)m_H(N)的上界B(N,K)的上界满足多项式分布poly(N)后,我们回过头来看看之前介绍的几种类型它们的mH(N)mH(N)m_H(N)与break point的关系:

我们得到的结论是,对于2D perceptrons,break point为k=4,mH(N)mH(N)m_H(N)的上界是Nk−1Nk−1N^{k-1}。推广一下,也就是说,如果能找到一个模型的break point,且是有限大的,那么就能推断出其成长函数mH(N)mH(N)m_H(N)有界。

四、A Pictorial Proof

我们已经知道了成长函数的上界是poly(N)的,下一步,如果能将mH(N)mH(N)m_H(N)代替M,代入到Hoffding不等式中,就能得到Eout≈EinEout≈EinE_{out}\approx E_{in}的结论:

实际上并不是简单的替换就可以了,正确的表达式为:

该推导的证明比较复杂,我们可以简单概括为三个步骤来证明:

这部分内容,我也只能听个大概内容,对具体的证明过程有兴趣的童鞋可以自行研究一下,研究的结果记得告诉一下我哦。

最终,我们通过引入成长函数mHmHm_H,得到了一个新的不等式,称为Vapnik-Chervonenkis(VC) bound:

对于2D perceptrons,它的break point是4,那么成长函数mH(N)=O(N3)mH(N)=O(N3)m_H(N)=O(N^3)。所以,我们可以说2D perceptrons是可以进行机器学习的,只要找到hypothesis能让Ein≈0Ein≈0E_{in}\approx0,就能保证Ein≈EoutEin≈EoutE_{in}\approx E_{out}。

五、总结

本节课我们主要介绍了只要存在break point,那么其成长函数mH(N)mH(N)m_H(N)就满足poly(N)。推导过程是先引入mH(N)mH(N)m_H(N)的上界B(N,k),B(N,k)的上界是N的k-1阶多项式,从而得到mH(N)mH(N)m_H(N)的上界就是N的k-1阶多项式。然后,我们通过简单的三步证明,将mH(N)mH(N)m_H(N)代入了Hoffding不等式中,推导出了Vapnik-Chervonenkis(VC) bound,最终证明了只要break point存在,那么机器学习就是可行的。

注明:

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

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

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

台湾大学林轩田机器学习基石课程学习笔记6 -- Theory of Generalization相关推荐

  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. 台湾大学林轩田机器学习基石课程学习笔记7 -- The VC Dimension

    红色石头的个人网站:redstonewill.com 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满足两个条件: 假设空间H的Size M是有限的,即当N足够大的时候, ...

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

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

最新文章

  1. 【教程】【FLEX】#004 反射机制
  2. python期末考试编程题_智慧树知到_Python程序设计基础_期末考试答案
  3. linux 产生50-100之内的随机数
  4. 【栈】【232. 用栈实现队列】【简单】
  5. 周三多管理学第七版pdf_为什么说管理学原理是企业领导的必修课?
  6. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](2)
  7. 关于UIAlertActionStyle的一些知识点
  8. bean包、entity包、mode包、domain包的区别
  9. java中redis存储map集合_使用RedisTemplate存储Map集合的一点注意
  10. 【数据结构和算法笔记】最小生成树(贪心算法讲解 )
  11. xsd 生成 java 类_如何从Java类生成XSD
  12. Linux如何运行exe驱动,在Linux下可用Wine安装和运行360驱动大师、CCleaner
  13. QNX系统和凝思系统分别系统时间设置RTC时间方法
  14. 怎么缩小照片的kb?
  15. php 分布式事务 DTM (TCC模式和Saga模式的区别)
  16. 解决应用程序正常初始化(0xc0000135)失败
  17. vue的介绍-基本语法
  18. 6个Python数据分析神器~
  19. 小强升职记思维导图_《小强升职记》学习笔记(思维导图)
  20. 计算机报名没有有效的安全证书,win10 因为没有使用有效的安全证书进行签名怎么解决...

热门文章

  1. 《Qt on Android核心编程》夹
  2. 权限控制框架Shiro简单介绍及配置实例
  3. Hudson:持续集成工具的安装、使用
  4. Atitit.5gl 第五代语言编程语言 PROLOG教程  人工智能语言的标准 与实现
  5. 不是之所以不是,所以不是
  6. CCNA 实验三 3.2 2 默认路由
  7. 删除Windows 系统快捷方式箭头 Delete Windows Shortcuct Arrows
  8. 47 求1+2+3+4+...+n
  9. RHM-M10汽车吊力矩限制器/载荷指示器
  10. js中常用的操作字符串的方法大全