紧接上一讲的Break Point of H。有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point。

那么除此之外,我们还能获得那些讯息?

这里举了一些例子,核心就是说下面的事情

简言之,如果H有Break Point k,那么当N大于k的时候,mH(N)会大大地缩减(对于binary classification来说是pow(2, N) )。

按照这个思路,自然就想知道,既然mH(N)会大大缩减,能缩减到啥程度?(如上图猜测,能否所见到N的polynomial的形式呢?)

接下来,引出了Bounding Function的概念:

这个概念的提出,就是为了看N个样本点,Break Point为k,到底能把mH(N)缩减到啥程度的?

另外,这里的B(N,k)只与N和k有关,与具体的假设集合H无关.

比如,在binary classification这个问题下,无论是positive intervals还是1D perceptrons,这个Bounding Function都是一样的。

现在的问题是怎么给Bounding Function的形式了。

根据下面几页PPT的内容:

猜测得出了Bounding Function的一个上界(本来Bouding Function就是一个上界了,这次得出的上界的上界)

这里我们看到了,Bounding Function的上界终于出现了我们喜欢的Polynomial的形式。

因此,得到了结论,只要Break Point存在,则mH(N)一定能够被一个多项式Bound住。

这里再明确一次:B(N,k)叫Bounding Function,是为了Bound住mH(N)(叫Growth Funciton)而生的;到了上面这块,我们找到的是Bounding Fucntion的一个上界,这个上界是一个关于N和k的多项式形式的式子;结论就是用Bounding Function的上界Bound住了Growth Function。

==================================================================

上面讲了一大堆,最后就是说mH(N)是可以在某种条件下(Break Point k)被Bound住的。这跟机器学习有啥关系呢?现在回到Hoeffding不等式的union bound形式

这里一个直观的想法就是,既然已经找到了mH(N)的上界( 被B(N,k)的上界Bound住了 ),那直接带进Hoeffding不等式不就行了么。

这里忽略了Eout(h)是无限个。。。。

因此,第一步需要把Eout(h)给换成有限个,如下:

这里没有做严格的证明,只给了直观的解释:假设还有一笔资料D‘(数量也为N),sample的结果为Ein';那么Ein与Eout发生BAD则,很可能Ein与Ein'也发生了BAD。

这里暂时记住,这一步用了有限代替无限,并做了一个放缩吧先。

第二步,把假设集合H分类。

利用第一步的结果,再直观想象下:为了产生Ein',硬是多了N个样本点;那么此时Growth Function mH(N)中的‘N’自然就变成了‘2N’了

第三步,再用一下前人的智慧,想办法套Hoeffding Without Replacement

变换后就成了:原来有个2N个sample,现在抽了N个sample出来;这N个sample跟原来2N个sample的真实情况相比,发生BAD的概率是多少呢?

这就变成了很像Hoeffding不等式的条件,但这里的区别是无放回抽样,变成了Without Replacement;但最后的结果是不影响的

上面三步之后,得到了最后的Vapnik-Chervonenkis(VC) bound:

再回顾一下2D perceptron:

Break Point : k=4

mH(N) : O (N³)

因此2D perception由VC dimension理论可知,是可以从数据中学到东西的。

【Theory of Generalization】林轩田机器学习基石的更多相关文章

  1. (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem

    (转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...

  2. 【The VC Dimension】林轩田机器学习基石

    首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...

  3. 【 Logistic Regression 】林轩田机器学习基石

    这里提出Logistic Regression的角度是Soft Binary Classification.输出限定在0~1之间,用于表示可能发生positive的概率. 具体的做法是在Linear ...

  4. 【Linear Regression】林轩田机器学习基石

    这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超 ...

  5. 【Training versus Testing】林轩田机器学习基石

    接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够 ...

  6. 【Feasibility of Learning】林轩田机器学习基石

    这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: ...

  7. 【Perceptron Learning Algorithm】林轩田机器学习基石

    直接跳过第一讲.从第二讲Perceptron开始,记录这一讲中几个印象深的点: 1. 之前自己的直觉一直对这种图理解的不好,老按照x.y去理解. a) 这种图的每个坐标代表的是features:fea ...

  8. 林轩田机器学习基石课程学习笔记5 — Training versus Testing

    上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypothesis个数有限,那么机器学习一般就是可行的.本节 ...

  9. 林轩田机器学习基石笔记4—Feasibility of Learning

    上节课介绍了机器学习可以分为不同的类型.其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题.本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决. 一.Lear ...

随机推荐

  1. 第三章 八位数字开关板&模拟输入板&火焰传感器

    这节我将带大家了解亮宁机器人基础外接硬件. 八位数字板开关 接线方法:W1~W8接23~37号数字端口,Enter接39号数字端口,vcc和gnd分别接正负. #include <LNDZ.h& ...

  2. golang 2行代码在基于arm linux的树莓派、orangepi上运行http web服务

    go语言(golang)简化了跨平台交叉编译步骤,支持在windows系统下交叉编译基于arm+linux平台的应用,运行时无需其它依赖库.以下以一个简单的http server为例,先上源码: ** ...

  3. Selenium入门系列4 选择并操作一组元素

    选中一组元素的方式也是8种,与选中单个元素一一对应.区别只在于element与elements.elements取到的是一个数组,element取符合条件的第一个元素. 首先在脚本的目录下新建test ...

  4. 【转载】#344 - Hidden Base Class Member Is Invoked Based on Declared Type of Object

    When you use the new modifier to hide a base class method, it will still be called by objects whose ...

  5. php session小节

    1.为什么要用session? 在人们访问网站的时候,有很多个网页,由于http自身的特点,用户每执行一个脚本都需要和web服务器重新建立连接.由于他们之间是无状态的,这次的连接无法得到上次连接的状态 ...

  6. IOS 通过 代码 自定义cell(Cell的高度不一致)(优化性能)

    创建cell的步骤 1.新建一个继承自UITabelViewCell的类 2.重写 initWithStyle:ReuseIdentifier: 方法 添加所有需要显示的子控件(不需要设置子控件的数据 ...

  7. vsftpd 启动 vsftpd:500 OOPS: bad bool value in config file for: guest_enable

    不然启动时会涌现毛病,举个例子 guest_enable=YES  后面出现空格,就会出现 为 vsftpd 启动 vsftpd:500 OOPS: bad bool value in config ...

  8. 问题 D: C++ 习题 输出日期时间--友元函数

    题目描述 设计一个日期类和时间类,编写display函数用于显示日期和时间.要求:display函数作为类外的普通函数,分别在Time和Date类中将display声明为友元函数.在主函数中调用dis ...

  9. numpy中生成随机矩阵并打印出矩阵的shape

    from numpy import * c=zeros((4,5)) print c.shape print numpy.random.random((2,3))

  10. scrapy Pipeline 练习

    class WeatherPipeline(object): def process_item(self, item, spider): print(item) return item #插入到red ...