【Training versus Testing】林轩田机器学习基石
接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系。
机器学习是否可行的两个关键点:
1. Ein(g)是否足够小(在训练集上的表现是否出色)
2. Eout(g)是否与Ein(g)足够接近(在训练集上的表现能否迁移到测试集上)

(1)如果假设集合数量小(M小),可知union bound后,Ein与Eout是接近的;但由于可选择的假设集合少,Ein(g)效果可能不佳;
(2)如果假设集合数量大(M大),有可能Ein(g)会获得更多的选择,测试集上效果更好;但由于M数量过大,训练集和测试集的表现差距可能比较大;
因此,这里存在一个trade-off,如何选择合适的M非常重要。因此有了如下的目标:

如何把union bound产生的M用mH来代替,把无限变成有限,找到合适的trade-off的M取值。
要想把M用mH来代替,回顾一下M是如何来的。

union bound是把假设集合中的所有假设出现BAD event的概率直接加起来,P(A+B)≤P(A)+P(B) 这种形式得来的。
这里就有一个缺陷,如果这些BAD event有重叠的部分,那么union bound就大大地不准确了,就是这个bound太大了。如下图所示:

上面的抽象描述还不够直观,下面举了一个具体的例子。
H = {all lines in R²} 假设集合是二维平面上所有的直线。显然直线有无数条,因此这里的M是正无穷大。
接下来换了一个视角,不看线而是来看平面上的一个点。

如果问题是binary classification,那么以某个点的视角来看,一条线要么把其划分为+1要么划分为-1。
这样一来,无限多个假设集合在x1这个点看来,就变成两类了。
以此类推,可以得到binary classification的Effective Number of Lines:

对于binary classification来说,就找到了替代M的方式,即无限缩减为有限了。
下面给这种假设集合的分类起一个正规的名字Dichotomies: Mini-hypotheses

这里就可以用某个假设集合在N个样本点下的dichotomies的数量来代替M。
但是这里有一个限制,就是dichotomies的在H,N的取值,是取决于具体取了哪N个样本点的。
现在只想与N有关,不想与哪N个样本点有关;因此再次定义了一个Growth Function:

Growth Function的核心意思是说:在所有可能的N个点当众,Growth Function取的那N个点是可以让dichotomies最大的N个点(如果是binary classification)。
这样,相当于与具体哪N个点无关了,只要保证这个N个点能产生的Growth Function值最大,记为mH(N):
m 表示取代M
H 表示是假设集合的一个函数
N 表示与样本点的数量有关(但是与哪N个点解耦了)
接下来,分析了几个Growth Functions的例子,

有的是polynomial的;有的是exponential的,如果是多项式的就不错了,如果是幂指数的那还是随着N的增大太大了。
以binary classification来说,2的N次幂确实是upper bound;
但是我们可以清晰地看到,在2D perceoptrons中,如果N大于等于4,显然mH(4)无法达到16(见上上个图)。
给这里的‘N=4’起一个名字——Break Point of H。
如果对于假设集合H,我们能找到某个Break Point(其值记为k),是否可以猜测,mH(N)可以被N的k-1次幂bound住呢?(即,mH(N)是N的多项式形式,多项式最大的幂是k-1)
【Training versus Testing】林轩田机器学习基石的更多相关文章
- (转载)林轩田机器学习基石课程学习笔记1 — The Learning Problem
(转载)林轩田机器学习基石课程学习笔记1 - The Learning Problem When Can Machine Learn? Why Can Machine Learn? How Can M ...
- 林轩田机器学习基石课程学习笔记5 — Training versus Testing
上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypothesis个数有限,那么机器学习一般就是可行的.本节 ...
- 【The VC Dimension】林轩田机器学习基石
首先回顾上节课末尾引出来的VC Bound概念,对于机器学习来说,VC dimension理论到底有啥用. 三点: 1. 如果有Break Point证明是一个好的假设集合 2. 如果N足够大,那么E ...
- 【 Logistic Regression 】林轩田机器学习基石
这里提出Logistic Regression的角度是Soft Binary Classification.输出限定在0~1之间,用于表示可能发生positive的概率. 具体的做法是在Linear ...
- 【Linear Regression】林轩田机器学习基石
这一节开始讲基础的Linear Regression算法. (1)Linear Regression的假设空间变成了实数域 (2)Linear Regression的目标是找到使得残差更小的分割线(超 ...
- 【Theory of Generalization】林轩田机器学习基石
紧接上一讲的Break Point of H.有一个非常intuition的结论,如果break point在k取到了,那么k+1, k+2,... 都是break point. 那么除此之外,我们还 ...
- 【Feasibility of Learning】林轩田机器学习基石
这一节的核心内容在于如何由hoeffding不等式 关联到机器学习的可行性. 这个PAC很形象又准确,描述了“当前的可能性大概是正确的”,即某个概率的上届. hoeffding在机器学习上的关联就是: ...
- 【Perceptron Learning Algorithm】林轩田机器学习基石
直接跳过第一讲.从第二讲Perceptron开始,记录这一讲中几个印象深的点: 1. 之前自己的直觉一直对这种图理解的不好,老按照x.y去理解. a) 这种图的每个坐标代表的是features:fea ...
- 林轩田机器学习基石笔记4—Feasibility of Learning
上节课介绍了机器学习可以分为不同的类型.其中,监督式学习中的二元分类和回归分析是最常见的也是最重要的机器学习问题.本节课,我们将介绍机器学习的可行性,讨论问题是否可以使用机器学习来解决. 一.Lear ...
随机推荐
- kinectV2平面检测
最近做一个关于kinect的东西,主要是在RGB图上提取指定的平面.对于kinect也是刚刚接触不是很熟悉,捣鼓了两天做了很粗糙的东西,但是也学到了一些东西,所以记录一下. 思路大概就是: 在RGB中 ...
- 动态控制C4C UI元素的显示和隐藏
C4C UI上UI元素的显示和隐藏可以通过Key User在Adaptation模式里通过编辑一些简单的rule去控制,诸如这种格式: if ( logic expression = true ) t ...
- ie6下按钮下边框消失不显示的问题
最近网站做改版,又发现一个ie6奇葩的问题,就一个很普通带边框的按钮,但在ie6中下边框不显示,ie7没有测试不知道是不是也不显示,其他浏览器正常 代码和预览效果如下: <style> b ...
- BestCoder Round #89 1001 Fxx and string
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5944 分析: 竟然 i,j,k成等比数列,即i*k = j*j,还要满足 j|i or j|k. 不防 ...
- 【转】WebSocket 是什么原理?为什么可以实现持久连接?
WebSocket是HTML5出的东西 也就是说HTTP协议没有变化 但HTTP是不支持持久连接的(长连接,循环连接的不算)或者说WebSocket干脆就不是基于HTTP来执行的.但是...说不通啊. ...
- 曲率(Curvature)
原文链接 几何体的曲率对于不同的对象有不同的定义.首先来看最简单的平面曲线. 首先把曲线分成无穷小的小段,每一段看作某个圆的一小段圆弧.这个圆叫做“密切圆”(Osculating Circle).由于 ...
- 中小学信息学奥林匹克竞赛-理论知识考点--ASCII
ASCII表说白了就是一张表. 表中记录着:字符 和 数字 的对应关系.比如:字符0对应的ASCII码是48,A对应的是65,a对应的是97. 只要记住这三个,其它的数字,大写,小写字母的ASCII码 ...
- C#定义常量的两种方法
在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant).前者用“const”来定义,后者用“readonl ...
- css的position定位终极总结
relative相对定位是相对于自己的位置定位,absolute绝对定位是向上级一级一级搜索有position属性的div,如果没有找到就相对于body定位
- 基于LNMP环境的ssh2扩展
openssl: 加密算法集合,C语言实现 libssh2:ssh2协议库库,C语言实现 PECL/ssh2: libssh2的php扩展,允许php程序调用libssh2中的函数 依赖关系:PECL ...