4 理解机器为什么可以学习

1 Hoeffding不等式

假设有一个罐子装满了橙色和绿色的球,为了估计罐子中橙色和绿色的比例,我们随机抓一把球,称为样本:

其中,设罐子中橙色球的比例为μ,样本中橙色球比例为v,样本的大小为N,我们对真实分布μ和样本分布v的差异容忍度为ε,则有下面的不等式成立:

也就是存在一个概率上界,只要我们保证样本容量N很大,就能使得“μ和v的差异大”这件事的概率是很小的。

2 对于一个假设函数h的情况

如果我们的假设函数h已经确定了,那么我们可以这样把我们的问题对应到罐子模型:每个球表示一个输入x,橙色表示h与真实的函数f预测的值不相同,绿色表示相同,即:

那么罐子中的所有球就是所有可能的输入x,而抓的一把球表示我们的训练集(注意!这里其实是做了一个假设:我们的训练集和测试集都由同一个未知的概率分布P来产生,也就是来源于同一个罐子),那么橙色球占的比例μ就表示我们的假设函数h在真正的输入空间中的预测错误率Eout(我们最后想要降低的),v就表示我们在训练集中的预测错误率Ein(我们的算法能最小化的),由Hoeffding不等式,就能得到:

也就是说,只要我们能保证训练集的量N足够大,就能保证训练集的错误率与真实的预测错误率是有很大概率接近的。

3 对于有限多个h的情况

上面一节我们证明了,对于一个给定的假设函数h,只要训练集足够大,我们能保证它在训练集上的预测效果与真正的预测效果很大概率是接近的。但是,我们只能保证它们的预测效果接近,也可能预测效果都是坏呢?

我们的机器学习算法是在假设空间里面选一个h,使得这个h在训练集上错误率很小,那么这个h是不是在整个输入空间上错误率也很小呢?这一节我们要证明的就是,对于假设空间只有有限个h时,只要训练集N足够大,这也是很大概率成立的。

首先我们来看这张表:

首先,对于一个给定的h,我们可以定义一个概念:“坏的训练集”(对应于表中红色的bad)。所谓坏的训练集,就是h在这个训练集上面的Ein和真实的Eout的差异超过了我们定义的容忍度ε。Hoeffding不等式保证了,对于一个给定的h(表中的一列),选到坏的训练集的概率是很低的。

然后,对于假设空间里面有M个候选的h,我们重新定义“坏的训练集”的概念(对应于表中橙色的bad),只要它对于任何一个h是坏的,那么它就是一个坏的。那么我们选到橙色坏的训练集的概率可以如下推导:

也就是说,由于M是有限的,只要训练集N足够大,我们选到坏训练集的概率仍然是很小的。也就是说,我们的训练集很大可能是一个好的训练集,所有的h在上面都是好的,算法只要选取一个在训练集上表现好的h,那么它的预测能力也是好的。

因此机器学习过程如下图:

(这里多出来的橙色部分表示,训练集和测试集是由同一个概率分布产生的)

因此当有限个h的情况下,机器学习算法确实是能学到东西的。

时间: 2024-10-07 04:37:18

4 理解机器为什么可以学习的相关文章

理解机器为什么可以学习(四)

前面一节我们通过引入增长函数的上限的上限,一个多项式,来把Ein 和 Eout 的差Bound住,这一节引入VC Bound进一步说明这个问题. 前边我们得到,如果一个hypethesis集是有break point的,那么最终mh会被一个多项式bound住,如果break point 为k的话,那么这个多项式为N^(k - 1). Bound的不等式这里系统的列一下就是: 也就是说,机器可以学习的即可条件: 要有好的假设集,也就是需要存在break point 训练数据集要足够的大 要有一点儿

理解机器为什么可以学习(二)

前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个数是有限的,那么本文继续讨论h个数为无限的情况.http://www.cnblogs.com/futurehau/p/6235348.html 其实之前的问题可以分类两个方面: 一方面:Ein 是否约等于 Eout 另一方面:Ein时候足够小. 所以,选择合适的M是很重要的,现在加入M为无限大的情况

理解机器为什么可以学习(三)

前边讨论了我们期望成长函数m能够取代了M,现在继续讨论m是否成长很慢,是否能够取代M. 成长函数就是二分类的排列组合的数量.break point是第一个不能shatter(覆盖所有情形)的点. 1.break point对成长函数的限制 我们希望 这里引入上限函数 bound function:给了break point,看看可以组成多少排列组合,下面证明boundfunction是多项式成长的. 右上角相当于没有加条件限制,对角线就是全部的减1嘛,因为全部不可能,小一点,找个上限. 接下来填

Linux系统理解以及Linux系统学习心得

原创作品转载请注明出处  <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 作者:严哲璟 说一下我对Linux系统的理解 1.加载Linux内核准备:在加载基本输入输出模块(BIOS)之后,从磁盘的引导扇区读入操作系统的代码文件块到内存中,之后开始整个系统的初始化. 2.main.c的start_kernel函数是整个操作系统的入口,这也与Linux是基于C语言的特性相符,start_kernel具体做的动作很多

机器学习基石笔记9——机器可以怎样学习(1)

转载请注明出处:http://www.cnblogs.com/ymingjingr/p/4271742.html 目录 机器学习基石笔记1——在何时可以使用机器学习(1) 机器学习基石笔记2——在何时可以使用机器学习(2) 机器学习基石笔记3——在何时可以使用机器学习(3)(修改版) 机器学习基石笔记4——在何时可以使用机器学习(4) 机器学习基石笔记5——为什么机器可以学习(1) 机器学习基石笔记6——为什么机器可以学习(2) 机器学习基石笔记7——为什么机器可以学习(3) 机器学习基石笔记8

机器学习基石笔记10——机器可以怎样学习(2)

转载请注明出处:http://www.cnblogs.com/ymingjingr/p/4271742.html 目录 机器学习基石笔记1——在何时可以使用机器学习(1) 机器学习基石笔记2——在何时可以使用机器学习(2) 机器学习基石笔记3——在何时可以使用机器学习(3)(修改版) 机器学习基石笔记4——在何时可以使用机器学习(4) 机器学习基石笔记5——为什么机器可以学习(1) 机器学习基石笔记6——为什么机器可以学习(2) 机器学习基石笔记7——为什么机器可以学习(3) 机器学习基石笔记8

让机器教人学习更有效:Becoming the Expert - Interactive Multi-Class Machine Teaching

这是CVPR2015的一篇非常有趣的文章,论文研究了如何让机器自动地教导学生进行学习目标的分类.论文研发了一种机器学习方法,通过人机交互的过程中,不断的优化机器指导的方法和技巧,从而提高人学习目标分类的效率.如下图所示: 机器教导人学习的过程 1.机器首先展示一张图片A给人看,不告诉图片中物体的真实类别: 2.人对该图片进行判断,给出一个类别答案Ry: 3.机器根据人的判断结果对算法模型M进行更新优化: 4.接着机器将图片A的真实类别Ty告诉人: 5.重复以上步骤,直到学习结束. 实验的结果是论

简述Socket,IP,TCP三次握手,HTTP协议(有助于理解、记忆和学习)

我在这里简述Socket,IP,TCP三次握手,HTTP协议(有助于理解.记忆和学习面试时方便回答) 1.socket原理 Socket支持网上点对点的通信 服务的一种技术,服务端端实现监听连接.client实现发送连接请求,建立连接后进行发送和接收数据. 服务器端建立一个serversocket.设置好本机的ip和监听的port与socket进行绑定,并開始监听连接请求,当接收到连接请求后,发送确认,同client建立连接.開始与client进行通信. client建立一个socket.设置好

Teaching Machines to Understand Us 让机器理解我们 之三 自然语言学习及深度学习的信仰

Language learning 自然语言学习 Facebook's New York office is a three-minute stroll up Broadway from LeCun's office at NYU, on two floors of a building constructed as a department store in the early 20th century. Workers are packed more densely into the ope