机器学习基石---Why Can Machines Learn(Part4)
knitr::opts_chunk$set(echo = TRUE)
Part3主要内容:如果NN足够大并且某处存在break point,那么Ein≈EoutE_{in}\approx E_{out}可以满足。那么对于任意维度的2D perceptrons一定存在break point吗?
1 VC Dimension
Part3讲到的VC Bound如下所示:
{P_D}\left[ {\exists \;h \in H,\;s.t.\;\left| {{E_{in}}\left( g \right) - {E_{out}}\left( g \right)} \right| > \varepsilon } \right] \le 4 * {m_H}\left( 2N \right) * \exp \left( { - \frac{1}{8}{\varepsilon ^2}N} \right)
其中mH(N)<B(N,k)=∑i=0k−1CiNm_H(N),当N≥2,k≥3N \ge 2,k \ge 3,我们可以找到B(N,k)B(N,k)的上界Nk−1N^{k-1},数学上应该可以直接证明的,这里我们简单看图做个说明:
我们从最开始的MM–>mH(N)m_H(N)–>B(N,k)B(N,k)–>NkN^k,那么如果break point kk存在时,上面VC Bound可以替换为:
{P_D}\left[ {\exists \;h \in H,\;s.t.\;\left| {{E_{in}}\left( g \right) - {E_{out}}\left( g \right)} \right| > \varepsilon } \right] \le 4 * {(2N)^{k-1}} * \exp \left( { - \frac{1}{8}{\varepsilon ^2}N} \right)
那么,如果成长函数存在break point且资料量NN
足够大,我们可以得到Ein≈EoutE_{in}\approx E_{out}。同时,如果演算法可以找到一个EinE_{in}很小的gg,learning应该就是可行的。
VC Dimension定义:最大的非break point,或者说是最小的break point减去1的值。那么:
if\;N \ge 2,{d_{VC}} \ge 2,{m_H}(N) \le {N^{{d_{VC}}}}
之前我们说如果break point存在,NN足够大,可以得到Ein≈EoutE_{in}\approx E_{out},现在可以用VC Dimension有限来替代break point存在。,对于2D perceptrons,VC Dimension为3,那么对于d维的perceptrons呢?
2 VC Dimension Of Perceptrons
想要知道dD perceptrons的VC Dimension,先从1D、2D看起:
猜测d维的perceptrons的VC Dimension为d+1d+1,那么证明只需两步:
1. dVC≥d+1d_{VC} \ge d+1
2. dVC≤d+1d_{VC} \le d+1
2.1 Step1 dVC≥d+1d_{VC} \ge d+1
对于step1,只需证明当d+1d+1个资料时,存在shatter的情况,就可证明min break point不是d+1d+1。注意我们在看是不是break point时,是任意摆放这些d+1d+1个点,求最多可以产生多少dichotomy,如果可以产生2N2^N个dichotomy,则认为被shatter。
我们按照下面的方式构造点的排列:
X = \left[ {\begin{array}{*{20}{c}} { - {\rm{x}}_1^T - }\\ { - {\rm{x}}_2^T - }\\\vdots \\ { - {\rm{x}}_{d + 1}^T - } \end{array}} \right] = \left[ {\begin{array}{*{20}{c}} 1&0&0& \cdots &0\\ 1&1&0& \cdots &0\\ 1&0&1& \cdots &0\\\vdots & \vdots & \vdots & \vdots & \vdots \\ 1&0&0&0&1 \end{array}} \right]
每一行代表一个样本点,一共 d+1d+1行。线性代数知识易知 XX可逆。回到PLA,我们希望找到ww,使得 sign(Xw)=ysign(Xw)=y,假设不看 signsign,我们如果可以找到 Xw=yXw=y,那么一定有 sign(Xw)=ysign(Xw)=y。shatter的含义指产生 2d+12^{d+1}个dichotomy,也就是对于所有可能存在 yy,我们可以找到ww使得 Xw=yXw=y成立。因为 XX可逆,所以w=X−1yw=X^{-1}y。这就证明了这样的 d+1d+1个输入能被shatter。Step1证明完成。
2.2 Step2 dVC≤d+1d_{VC} \le d+1
证明dVC≤d+1d_{VC} \le d+1则需要当资料大小为d+2d+2时,任意的种d+2d+2个input都不能被shatter。同样的,用矩阵表示:
X = \left[ {\begin{array}{*{20}{c}} { - {\rm{x}}_1^T - }\\ { - {\rm{x}}_2^T - }\\\vdots \\ { - {\rm{x}}_{d + 2}^T - } \end{array}} \right]
这个矩阵行数为 d+2d+2,列数为 d+1d+1,则行向量之间一定线性相关。 XT∗A=0X^T*A=0有解则说明 xT1,xT2,⋯,xTd+2{\rm{x}}_1^T,{\rm{x}}_2^T, \cdots ,{\rm{x}}_{d + 2}^T之间线性相关。因为n元齐次方程组 Ax=0Ax=0有非零解的充要条件是 R(A)<nR(A)。对于系数矩阵 XTX^T,其秩一定不大于行数和列数。所以 R(XT)≤d+1R(X^T) \le d+1 ,而 AA是d+2d+2行,1列的矩阵。所以一定有解。
上面我们证明了对于 dd维perceptrons,d+2d+2个input时存在线性相关的情况,那么一定有:
{{\rm{x}}_{d + 2}} = {a_1}{{\rm{x}}_1} + {a_2}{{\rm{x}}_2} + \cdots + {a_{d + 1}}{{\rm{x}}_{d + 1}}
证明用反证法证明不能shatter。假设我们在某种 d+2d+2个资料时能够shatter,那么所有的dichotomy都存在。系数 a1,a2,...,ad+1a_1,a_2,...,a_{d+1}的正负与 yy的正负一致,这样的yy也一定存在,因为被shatter。此时:
{w^T}{{\rm{x}}_{d + 2}} = {a_1}{w^T}{{\rm{x}}_1} + {a_2}{w^T}{{\rm{x}}_2} + \cdots + {a_{d + 1}}{w^T}{{\rm{x}}_{d + 1}}
因为 wTxiw^Tx_i与 aia_i符号相同,所以 wTxd+2>0{w^T}{{\rm{x}}_{d + 2}}>0,即 yd+2y_{d+2}不能为负。这就与shatter这个前提矛盾了,所以 d+2d+2时,不能shatter。
综合Step1和Step2,d维的perceptrons的VC Dimension为d+1d+1得证!
3 Degrees Of Freedom
自由度的概念怪怪的,和统计学里讲的自由度貌似也不太一样。按照Week7里讲的,叙述一遍吧。
上图中WW又名features,模型中可以自由变动的参数数量即自由度。而VC Dimension代表二分类时有效的自由度,即HH产生dichotomy的数量,也就是WW中参数的数量。(也不是绝对等于,林老师原话。。。)例如,对2D Perceptrons,线性分类,d_{vc}=3},则d_{vc}=3},则W={w_0,w_1,w_2},也就是只要3个feature就可以学习,自由度为3。(上面这段乌七八糟,感觉老师讲的时候也不是定义明确) 类别VC维和,也就是只要3个feature就可以学习,自由度为3。 (上面这段乌七八糟,感觉老师讲的时候也不是定义明确) 类别VC维和M$,有如下结论:
4 Interpreting VC Dimension
这一节进一步探讨VC Dimension。之前的VC Bound如下:
这里把Bound记为δ\delta,根据上面的不等式,出现Bad的概率最大不超过δ\delta。那么也可以说出现good的概率最小不小于1−δ1- \delta,那么可以进一步推导:
ε\varepsilon 表现了HH的泛化能力,ε\varepsilon 越小,Ein,EoutE_{in},E_{out}越接近,泛化能力越好。
至此我们推导出泛化误差EoutE_{out}的上界。这个上界又称为模型复杂度。显然模型复杂度和N,dVC,δ,EinN,d_{VC},\delta,E_{in}有关。下面是Eout,EinE_{out},E_{in},模型复杂度随dVCd_{VC}变化的关系:
至于这个图为什么是这样,暂时只能把它当做结论来记。从图上可知:
* dVCd_{VC}越大:EinE_{in}越小,Ω\Omega 越大,模型越复杂
* dVCd_{VC}越小:EinE_{in}越大,Ω\Omega 越小,模型越简单
* 随着dVCd_{VC}增大,EoutE_{out}会先减小再增大
单纯的通过增大dVCd_{VC}来找最小的EinE_{in}不可取,因为会增加模型复杂度和EoutE_{out}。
下面介绍另一个定义:样本复杂度(Sample Complexity)。如果选定dVCd_{VC},样本数据选择多少合适呢?看下面的例子:
按照题设条件,满足δ=0.1\delta = 0.1的样本数量为29300。NN大约是dVCd_{VC}的10000倍,实际上大概只需要10倍左右。这是因为VC Bound太过宽松了。因为VC Bound不考虑目标函数,数据分布,对于任意的资料都成立,而且还用了union bound,且取了好几次上界。
5 Summary
这一节课整体上乱糟糟的,介绍了VC维、自由度、模型复杂度等等,并且证明了dd维的Perceptrons的VC维是d+1d+1。至于VC维,更多是替换break point,据说break point是林老师自己造出来的。
综合这四篇文,当VC维有限且资料足够多,可以满足Ein≈EoutE_{in} \approx E_{out}。而Ein≈0E_{in} \approx 0则需要dVCd_{VC}取到合适的值,因为dVCd_{VC}过大,虽然EinE_{in}很小,但是会导致EoutE_{out}增大。
6 Ref
[1] http://beader.me/mlnotebook/section2/vc-dimension-three.html
[2] http://blog.csdn.net/red_stone1/article/details/71191232
2018-01-29 于杭州
机器学习基石---Why Can Machines Learn(Part4)相关推荐
- 5. 机器学习基石-Why can Machine Learn?
Why can Machine Learn? Why can Machine Learn? 1. Preview of Last Chapter 2. VC Bound (Vapnik-Chervon ...
- 1)机器学习基石笔记Lecture1:The Learning Problem
网上关于机器学习的课程有很多,其中最著名的是吴恩达老师的课程,最近又发现了NTU林轩田老师的<机器学习基石>课程,这门课也很好.课程总共分为4部分,总共分为16节课,今天来记录第一节课. ...
- 林轩田机器学习基石--The Learning Problem
林轩田老师的课可以整体分成四个部分. 1.When Can Machines Learn? 2.Why Can Machines Learn? 3.How Can Machines Learn? 4. ...
- 台大林轩田·机器学习基石记要
台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主 ...
- 机器学习基石第一讲:the learning problem
博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...
- 林轩田机器学习基石课程学习笔记1.The Learning Problem
Course Introduction 机器学习是一门理论与实践结合的学科,不能讲的太理论,这样就会无聊,不知道如何用在实际的问题上. 不能全讲机器学习的方法,这样的话在遇到实际问题时,不知道用那个方 ...
- 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem
红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...
- 《机器学习基石》学习笔记 1 The Learning Problem
B站真是个神奇的地方,平时找不到的课程来B站找找,总是有惊喜的,开心. NTU林轩田的<机器学习基石>课程 整个基石课程分成四个部分: When Can Machine Learn? Wh ...
- 台大林轩田机器学习基石学习笔记(一):The Learning Problem
这里写自定义目录标题 写在前面 一.What is Machine Learning 二.Applications of Machine Learning 三.Components of Machin ...
最新文章
- 帮AI体检看病一条龙服务,阿里发布“AI安全诊断大师”
- 算法之快速排序(递归和非递归)
- Spring Security 3多用户登录实现之二 多登录界面展示
- Shell编程之条件判断
- 使用Java语言如何实现快速文件复制?
- eclipse sdk 无法更新
- html页面跳转方式 + 跳转传参
- adobe acrobat pro dc 无法打开PDF_pdf怎样转成word格式
- 【规范】万字集大成的SCHPCB设计规范和AD的使用
- 滴滴入局同城货运,一场闪电战,还是持久战?
- 我爱你各国的说法+50情话台词 拿去撩妹吧
- 【Tpshop商城使用】
- iOS 边学边记 升级ios14 Xcode真机调试启动非常慢的问题解决
- 快手之家(aardio.net) - 感谢信
- 工程硕士计算机专业开题报告,计算机技术工程硕士论文
- 合同法中的违约责任如何确定的 ?
- linux 只读文件 删除,linux – 我无法删除文件’rm:无法删除X只读文件系统’
- 树莓派4B Raspbian系统常用Linux 命令及快捷键
- TensorRT 推理时提示This container was built for NVIDIA Driver Release 470.42 or later 解决方法
- 基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证