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

前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个数是有限的,那么本文继续讨论h个数为无限的情况。http://www.cnblogs.com/futurehau/p/6235348.html

其实之前的问题可以分类两个方面:

一方面:Ein 是否约等于 Eout

另一方面:Ein时候足够小。

所以,选择合适的M是很重要的,现在加入M为无限大的情况呢?

1. Effective number of hypethesis

我们接下来的工作,就是想办法使用某个有限的mh来代替那个无限的M

之前我们让h可以自由选择的时候是让概率直接相加找上界,这样当M个数为无穷的时候,上界就比1还大了,这个对Ein和Eout的差距的控制就没有意义了。其实,这是由于扩充得太猛了,接下来一步步分析不要进行那么猛的扩充。

不同的h对于的坏数据可能是有许多重复的。

所以我们接下来考虑不同的分类场景下有多少种不同种类的分界线(超平面)

假设用一条线来分类二维平面上的数据集,那么点的数目和线的种类关系如下:

这样,如果effective(N)可以代替M,并且effective(N)<< 2^N,那么似乎就是可以学习的了

假设不是一条线分开,而是超平面的话:

2. Growth Function

那么,怎么计算增长函数呢?

集合可自由选择的Hoeffding不等式和上述增长函数,我们得到

3. Break Point

断点和mh的数量级之间的关系:

时间: 2024-10-11 12:11:43

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

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

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

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

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

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

1 Hoeffding不等式 假设有一个罐子装满了橙色和绿色的球,为了估计罐子中橙色和绿色的比例,我们随机抓一把球,称为样本: 其中,设罐子中橙色球的比例为μ,样本中橙色球比例为v,样本的大小为N,我们对真实分布μ和样本分布v的差异容忍度为ε,则有下面的不等式成立: 也就是存在一个概率上界,只要我们保证样本容量N很大,就能使得"μ和v的差异大"这件事的概率是很小的. 2 对于一个假设函数h的情况 如果我们的假设函数h已经确定了,那么我们可以这样把我们的问题对应到罐子模型:每个球表示一个

puppet基础学习(二)

puppet基础学习(二) 六.ResourceOrdering(资源定序) 使用变化参数before , require , notify , subscribe catalog是对一个给定的系统的所有资源及关系的编译,在编译catalog时,除非我们指定资源的执行顺序,不然puppet是以其自己的顺序管理,大多数时候puppet指定适当的方式,例如puppet管理用户gigabyte应该存在和文件夹/home/gigabyte/bin应该存在并属于用户gigabyte时,puppet会自动指

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具体做的动作很多

OpenCV for Python 学习 (二 事件与回调函数)

今天主要看了OpenCV中的事件以及回调函数,这么说可能不准确,主要是下面这两个函数(OpenCV中还有很多这些函数,可以在 http://docs.opencv.org/trunk/modules/highgui/doc/user_interface.html 找到,就不一一列举了),然后自己做了一个简单的绘图程序 函数如下: cv2.setMouseCallback(windowName, onMouse[, param]) cv2.createTrackbar(trackbarName,

Jetty学习二:配置概览-怎么配置Jetty

Jetty POJO配置 Jetty的核心组件是Plain Old Java Objects(POJOs):配置Jetty的大部分工作就是在Jetty POJOs上的初始化.装配和设置域的处理,你能通过以下的方式来实现:  1)直接通过Java代码初始化和装配Jetty对象.这个在后面Embedding Jetty讲. 2)用Jetty XML配置(一个控制反转(IoC)框架)初始化和装配Jetty对象.etc/jetty.xml文件是基本的Jetty XML配置文件,但有一些其它的etc/je

机器学习基石笔记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

MongoDB入门学习(二):MongoDB的基本概念和数据类型

上一篇讲了MongoDB的安装和管理,其中涉及到了一些概念,数据结构还有一些API的调用,不知道的没关系,其实很简单,这篇会简单介绍一下. 1.文档 文档是MongoDB的核心概念,多个键值对有序的放在一起就是一个文档,文档是MongoDB存储数据最基本的数据结构.对MongoDB都是以文档的形式来操作的,使用了一种类似JSON的二进制BSON数据格式,对API的调用都是传的文档参数.每种编程语言都有标示文档的数据结构,比如java的map,lua的table,python的dict等等,但是都