机器学习基石 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总结一下一个粗略的建模过程: 首先,弄清楚问题是什么,能不能用机器学习的思路 ...
随机推荐
- SSM整合XML版(Maven Project)
一.使用IntelliJ IDEA 创建Maven管理的JAVA Web项目 ①新建项目,选择Maven Module 在本地磁盘用户的..m2目录下生成settings文件: Maven工程搭建完毕 ...
- CMD修改IP地址
在操作系统下,我们可以使用"本地连接"的属性来修改IP地址,但是如果我们要在多个IP地址之间切换,使用这种方法未免过于麻烦.我们可以使用NETSH命令来添加,相当简便.使用DOS修 ...
- OVS vxlan 底层结构分析 - 每天5分钟玩转 OpenStack(148)
上一节创建了 vxlan100_net 并部署 instance,今天我们来分析底层网络结构. 控制节点 执行 ovs-vsctl show: br-int br-int 连接了如下 port: ta ...
- 来一波CSS兼容问题小总结吧
1.DOCTYPE 影响 CSS 处理; 2.火狐 谷歌等浏览器 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 ...
- 你需要了解的 Core Spotlight
你需要了解的 Core Spotlight -- 了解Spotlight Core Spotlight是iOS 9中苹果推出了新的Search API,可以直接搜App内的内容(in-App Sear ...
- Linux驱动技术(五) _设备阻塞/非阻塞读写
等待队列是内核中实现进程调度的一个十分重要的数据结构,其任务是维护一个链表,链表中每一个节点都是一个PCB(进程控制块),内核会将PCB挂在等待队列中的所有进程都调度为睡眠状态,直到某个唤醒的条件发生 ...
- leetcode-1006 Construct Binary Tree from Inorder and Postorder Traversal
Given inorder and postorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- 微信小程序 网络请求之re.request 和那些坑
微信小程序有四种网络请求类型,下面只详细介绍普通HTTPS请求(wx.request) 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downlo ...
- java dbutils查询数据库时无法给部分字段赋值原因
1,javaBean如下: public class User { /** * 用户唯一标识(ID) */ private String uid; /** ...
- Animate自定义动画
在jQuery中出了基本的动画之外,还有用户 可以自定义的函数,Animate() 用于创建自定义动画的函数. apI上指出: 这个函数的关键在于指定动画形式及结果样式属性对象.这个对象中每个属性都表 ...