前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题。

前边我们得到,如果一个hypethesis集是有break point的,那么最终mh会被一个多项式bound住,如果break point 为k的话,那么这个多项式为N^(k - 1)。

Bound的不等式这里系统的列一下就是:

也就是说,机器可以学习的即可条件:

要有好的假设集,也就是需要存在break point

训练数据集要足够的大

要有一点儿好运气,选到了一个小的Ein。

好了,接下来正式介绍VC Dimension

1. VC Dimension

VC Dimension是能够shatter的最大的N,也就是最小的break point - 1

那么,之前讨论过break point的几种hypethesis对应的VC Dimension就对应为:

2. VC Dimension 应用到perception learning

好了,有了VC Dimension,那么我们就可以从VC Dimension的角度来来看看我们之前的PLA,可以分为两条主线:

那么,接下来扩展到具有超过两个特征的PLA。

那么,猜想perception的VC Dimension是不是就是 d + 1 呢?实际上就是的,怎么证明呢?当然就是从dvc >= d + 1 和 dvc <= d + 1 两个方面来证明。

一方面,欲证 dvc >= d + 1,只需要找到某个训练集大小为d + 1,可以内shatter即可:

假设这些输入数据为:

其中第一列为加进去的常数项,可以X是一个可逆矩阵

得证。

另一方面,欲证dvc <= d +1,就需要证明对所有的大小为d + 2的数据都不能shatter

特别地,对于 2 perception,输入数据如下边所示,可以得到x4 = x1 + x2 - x3,那么两边同时乘以wt可知:

最后如果y4是负就不可以得到,也就是不能够shatter。

一般化,

X列为n + 1,行为d + 2,所以第d + 2一定可以被前边的d + 1行线性表示。

两边同乘w,然后右边取值与线性系数一样,这样导致右边都为正,

所以y(d + 2)为负不能够取得,也就是对所有的大小的d + 2的都不能shatter。

3. Degree of Freedom

dvc 约等于 free parameters

所以VC Bound透露的信息:

上图就更好的说明了 VC Dimension 在某种程度上代表了模型复杂度。

上图举例列举了我们需要达到某个指标时候的数据,首先理论上这些数据似乎是非常大的,

但由于我们在推导VC Bound的时候,多次进行了上界扩张,所以实际上并不需要这么大,只需要十倍的dvc就可以了。

至此,通过理解机器为什么可以学习系列文章讲清楚了这个问题。

但是之前的讨论都是基于没有误差的,接下来讨论有误差的时候是怎么一种情况。http://www.cnblogs.com/futurehau/p/6262754.html

理解机器为什么可以学习(四)---VC Dimension的更多相关文章

  1. 理解机器为什么可以学习(五)---Noise and Error

    之前我们讨论了VC Dimension,最终得到结论,如果我们的hypetheset的VC Dimension是有限的,并且有足够的资料,演算法能够找到一个hypethesis,它的Ein很低的话,那 ...

  2. 理解机器为什么可以学习(三)---Theory of Generalization

    前边讨论了我们介绍了成长函数和break point,现在继续讨论m是否成长很慢,是否能够取代M. 成长函数就是二分类的排列组合的数量.break point是第一个不能shatter(覆盖所有情形) ...

  3. 理解机器为什么可以学习(二)---Training versus Testing

    前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个 ...

  4. 理解机器为什么可以学习(一)---Feasibility of learning

    主要讲解内容来自机器学习基石课程.主要就是基于Hoeffding不等式来从理论上描述使用训练误差Ein代替期望误差Eout的合理性. PAC : probably approximately corr ...

  5. Coursera台大机器学习课程笔记6 -- The VC Dimension

    本章的思路在于揭示VC Dimension的意义,简单来说就是假设的自由度,或者假设包含的feature vector的个数(一般情况下),同时进一步说明了Dvc和,Eout,Ein以及Model C ...

  6. Java四种引用--《深入理解Java虚拟机》学习笔记及个人理解(四)

    Java四种引用--<深入理解Java虚拟机>学习笔记及个人理解(四) 书上P65. StrongReference(强引用) 类似Object obj = new Object() 这类 ...

  7. 机器学习基石7-The VC Dimension

    注: 文章中所有的图片均来自台湾大学林轩田<机器学习基石>课程. 笔记原作者:红色石头 微信公众号:AI有道 前几节课着重介绍了机器能够学习的条件并做了详细的推导和解释.机器能够学习必须满 ...

  8. 《深入理解计算机系统V2》学习指导

    <深入理解计算机系统V2>学习指导 目录 图书简况 学习指导 第一章 计算机系统漫游 第二章 信息的表示和处理 第三章 程序的机器级表示 第四章 处理器体系结构 第五章 优化程序性能 第六 ...

  9. VC++学习之VC中常见问题

    VC++学习之VC中常见问题 (1)为什么某个类突然在工作区间里面突然看不见了? 只是类隐藏了,打开FILEVIEW,找到隐藏类的头文件,随便敲一下键盘的空格键,类就会在CLASSVIEW中显示了 ( ...

随机推荐

  1. v-if与v-show的区别

    一.区别 v-if 动态的向DOM树内添加或者删除DOM元素:“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建:在初始渲染条件为假时,什么也不做. v-sho ...

  2. MVC+Nhibernate+jquery+easyui递归实现多级菜单

    1.新建访问的控制器动作返回视图,在视图中使用easyui的treegrid插件来得到后台得到的json数据显示多级菜单 public ActionResult Menu() { return Vie ...

  3. pc-要实现相隔一定时间数据排序变化一次

    有时候产品会有这种要求,就是展示的数据三天是正序的,一天是逆序的,解决是: 以某一个时间点为基准点,然后获取当前的时间,然后计算差值,分情况 //专利 JPView : function(Sorder ...

  4. pat甲级1123

    1123 Is It a Complete AVL Tree(30 分) An AVL tree is a self-balancing binary search tree. In an AVL t ...

  5. js处理的8种跨域方法

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被 ...

  6. python linecache模块读取文件用法详解

    linecache模块允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行. linecache.getlines(filename) 从名为filename的文件中得到 ...

  7. CUDA:Supercomputing for the Masses (用于大量数据的超级计算)-第四节

    了解和使用共享内存(1) Rob Farber 是西北太平洋国家实验室(Pacific Northwest National Laboratory)的高级科研人员.他在多个国家级的实验室进行大型并行运 ...

  8. js当中mouseover和mouseout多次触发(非冒泡)

    JS当中,mouseover和mouseout多次触发事件,不光是冒泡会产生,就是不冒泡,在一定条件下 ,也会产生多次触发事件: 例如下面的结构的情况下,我在class="ceng_up f ...

  9. java从键盘输入学生成绩,找出最高分,并输出学生成绩等级。

    /*从键盘输入学生成绩,找出最高分,并输出学生成绩等级:成绩 >=最高分-10 等级为A成绩 >=最高分-20 等级为B成绩 >=最高分-30 等级为C其余为 等级为D 提示:先输入 ...

  10. js display, visible 区别

    注意: display:none和visible:hidden都能把网页上某个元素隐藏起来,在视觉效果上没有区别,但是在一些DOM操作中两者有区别: display:none ---不为被隐藏的对象保 ...