机器学习基石 5 Training versus Testing
机器学习基石 5 Training versus Testing
Recap and Preview
回顾一下机器学习的流程图:

机器学习可以理解为寻找到 \(g\),使得 \(g \approx f\),也就是 \(E_{out}(g) \approx 0\) 的过程。为了完成这件事情,有两个关键的步骤,一个是保证 \(E_{out}(g) \approx E_{in}(g)\),另一个是保证 \(E_{in}(g) \approx 0\) (这两件事情通常由 “训练” 以及 “测试” 这两个过程来完成),当这两件事情都得到保证之后,我们就可以得到 \(E_{out}(g) \approx 0\),于是完成了学习。
\(M\)(hypothesis 的数目)的取值对这两个问题有影响:
- \(M\) 太小,能保证 \(E_{out}(g) \approx E_{in}(g)\),但是不能保证 \(E_{in}(g) \approx 0\);
- \(M\) 太大,能保证 \(E_{in}(g) \approx 0\),但是不能保证 \(E_{out}(g) \approx E_{in}(g)\)。

下面将尝试解决 \(M\) 较大时,\(E_{out}(g) \approx E_{in}(g)\) 的问题。
Effective Number of Lines

对于这个式子,\(M = \infty\) 时,右侧的值很大,\(E_{out}(g) \approx E_{in}(g)\) 不能保证,于是我们尝试用一个合适的数 \(m_H\) 代替式子中的 \(M\),使无穷变成有限。

第一个式子中的 \(M\) 来源于 “Union Bound”

其中 \(P[B_M]\) 表示的是第 \(M\) 个假设函数 \(h_M\) 在数据集上发生坏事情(即存在 BAD DATA,\(E_{out}(h_M) \neq E_{in}(h_M)\))的概率。
然而当 \(M\) 很大时,假设集中存在许多相似的假设函数 \(h\),它们发生坏事情的概率和情形都很接近,这样使用 “Union Bound” 来计算整个假设集发生坏事情的概率,便存在许多重复的地方,于是算出来的概率会比实际的高很多(over-estimating)。
我们以二元分类来阐述怎么解决这个问题:我们根据分类结果,对 \(h\) 进行分类。
| 样本点大小 \(N\) | 假设集 \(H\) 等价类(考虑最多的情况) |
|---|---|
| 1 | 2 类:\(\{o\}\)、\(\{x\}\) |
| 2 | 4 类:\(\{oo\}\)、\(\{ox\}\)、\(\{xo\}\)、\(\{xx\}\) |
| ... | ... |
| N | \(2^{N} 类\) |
对于一个大小为 \(N\) 的数据集,任意一个假设函数 \(h\) 都属于上述 \(2^N\) 个等价类之间的一个,因此我们可以用 \(2^N\) 来代替原不等式中的 \(M\)。
Effective Number of Hypotheses
我们把上面提到的等价类的概念起一个名字叫做 Dichotomy。

具体的 Dichotomy 的 size 与这 \(N\) 个数据的具体取值有关(但是不会大于 \(2^N\)),为方便讨论我们取最大那个 size 来分析,取名为 growth function,记作 \(m_H(N)\)。

接下来我们需要计算 \(m_H(N)\),首先考虑几种不同的模型的 \(m_H(N)\)
- Positive Rays:\(m_H(N) = N + 1\)

- Positive Intervals:\(m_H(N) = {{N+1} \choose 2} + 1\)

- Convex Sets:\(m_H(N) = 2^N\)

总结如下:

Break Point
我们希望 \(m_H(N)\) 是多项式形式而不是指数形式的,这样才能保证 \(E_{out}(g) \approx E_{in}(g)\):

我们引入一个概念叫 break point,定义如下所示

于是上面所提到的四种模型的 break point 如下所示:

我们猜测 \(m_H(N)\) 与 break point 有下面的关系:
- no break point:\(m_H(N) = 2^N\)
- break point \(k\):\(m_H(N) = O(N^{k-1})\)
如果猜测成立,那么在有 break point 的情况下,\(m_H(N)\) 便是一个多项式形式,这样就能保证 \(E_{out}(g) \approx E_{in}(g)\) 了。
机器学习基石 5 Training versus Testing的更多相关文章
- Coursera台大机器学习课程笔记4 -- Training versus Testing
这节的主题感觉和training,testing关系不是很大,其根本线索在于铺垫并求解一个问题: 为什么算法PLA可以正确的work?因为前面的知识告诉我们,只有当假设的个数有限的时候,我们才 ...
- 【Training versus Testing】林轩田机器学习基石
接着上一讲留下的关子,机器学习是否可行与假设集合H的数量M的关系. 机器学习是否可行的两个关键点: 1. Ein(g)是否足够小(在训练集上的表现是否出色) 2. Eout(g)是否与Ein(g)足够 ...
- 林轩田机器学习基石课程学习笔记5 — Training versus Testing
上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypothesis个数有限,那么机器学习一般就是可行的.本节 ...
- 机器学习基石:05 Training versus Testing
train:A根据给定训练集D在H中选出g,使得Ein(g)约等于0: test:g在整个输入空间X上的表现要约等于在训练集D上的表现,使得Eout(g)约等于Ein(g). 如果|H|小,更易保证t ...
- 机器学习基石笔记:05 Training versus Testing
train:A根据给定训练集D在H中选出g,使得Ein(g)约等于0: test:g在整个输入空间X上的表现要约等于在训练集D上的表现,使得Eout(g)约等于Ein(g). 如果|H|小,更易保证t ...
- 05 Training versus Testing
train:A根据给定训练集D在H中选出g,使得Ein(g)约等于0: test:g在整个输入空间X上的表现要约等于在训练集D上的表现,使得Eout(g)约等于Ein(g). 如果|H|小,更易保证t ...
- 理解机器为什么可以学习(二)---Training versus Testing
前边由Hoeffding出发讨论了为什么机器可以学习,主要就是在N很大的时候Ein PAC Eout,选择较小的Ein,这样的Eout也较小,但是当时还有一个问题没有解决,就是当时的假设的h的集合是个 ...
- 机器学习基石的泛化理论及VC维部分整理(第五讲)
第五讲 Training versus Testing 一.问题的提出 \(P_{\mathcal{D}}\left [ BAD \mathcal{D} \right ] \leq 2M \cd ...
- 台大《机器学习基石》课程感受和总结---Part 2 (转)
转自:http://blog.sina.com.cn/s/blog_641289eb0101e2ld.html Part 2总结一下一个粗略的建模过程: 首先,弄清楚问题是什么,能不能用机器学习的思路 ...
随机推荐
- RIP 相对寻址
知识共享许可协议本作品采用知识共享署名 4.0 国际许可协议进行许可.转载保留声明头部与原文链接https://luzeshu.com/blog/rip-relative-addressing 本博客 ...
- [Scoi2010]游戏
游戏 Time Limit:5000MS Memory Limit:165888KB 64bit IO Format:%lld & %llu Submit Status Pra ...
- javascript中对数据文本格式化的思考
在实际应用场景中,我们常常需将一些数据输出成更加符合人类习惯阅读的格式. 保留小数点后面两位 在一些要求精度没有那么准确的场景下,我们可以直接通过Number.prototype.toFixed()来 ...
- ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
- mysql学习之权限管理
数据库权限的意义: 为了保证数据库中的业务数据不被非授权的用户非法窃取,需要对数据库的访问者进行各种限制,而数据库安全性控制措施主要有这三种,第一种用户身份鉴别,手段可以是口令,磁卡,指纹等技术,只有 ...
- 你需要了解的 Core Spotlight
你需要了解的 Core Spotlight -- 了解Spotlight Core Spotlight是iOS 9中苹果推出了新的Search API,可以直接搜App内的内容(in-App Sear ...
- 设置npm安装模块目录<nodejs>
nodejs安装模块命令: npm install <input_name> # 本地安装 npm install <input_name> -g # 全局安装 1.npm i ...
- 阿里巴巴Java开发手册———个人追加的见解和补充(一)
先上干货,<阿里巴巴Java开发手册>的下载地址 https://yq.aliyun.com/articles/69327?spm=5176.100239.blogcont69327.15 ...
- 社交媒体(朋友圈、微博、QQ空间)开发一网打尽,PC端移动端都有!——源码来袭!
一.应用场景 曾几何时,社交媒体已经驻扎到了几乎每个人的生活中.看看你身边的朋友,有几个不玩朋友圈的?就算他不玩朋友圈,那也得玩微博吧.再没有底线,也得玩QQ空间. 不过,作为程序员的我们,没事还是少 ...
- JavaScript中国象棋程序(1) - 界面设计
"JavaScript中国象棋程序" 这一系列教程将带你从头使用JavaScript编写一个中国象棋程序.这是教程的第1节. 这一系列共有9个部分: 0.JavaScript中国象 ...