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如下所示:

PD[∃h∈H,s.t.|Ein(g)−Eout(g)|>ε]≤4∗mH(2N)∗exp(−18ε2N)

{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可以替换为:

PD[∃h∈H,s.t.|Ein(g)−Eout(g)|>ε]≤4∗(2N)k−1∗exp(−18ε2N)

{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的值。那么:

ifN≥2,dVC≥2,mH(N)≤NdVC

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=⎡⎣⎢⎢⎢⎢⎢−xT1−−xT2−⋮−xTd+1−⎤⎦⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢111⋮1010⋮0001⋮0⋯⋯⋯⋮0000⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥

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=⎡⎣⎢⎢⎢⎢⎢−xT1−−xT2−⋮−xTd+2−⎤⎦⎥⎥⎥⎥⎥

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时存在线性相关的情况,那么一定有:

xd+2=a1x1+a2x2+⋯+ad+1xd+1

{{\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。此时:

wTxd+2=a1wTx1+a2wTx2+⋯+ad+1wTxd+1

{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)相关推荐

  1. 5. 机器学习基石-Why can Machine Learn?

    Why can Machine Learn? Why can Machine Learn? 1. Preview of Last Chapter 2. VC Bound (Vapnik-Chervon ...

  2. 1)机器学习基石笔记Lecture1:The Learning Problem

    网上关于机器学习的课程有很多,其中最著名的是吴恩达老师的课程,最近又发现了NTU林轩田老师的<机器学习基石>课程,这门课也很好.课程总共分为4部分,总共分为16节课,今天来记录第一节课. ...

  3. 林轩田机器学习基石--The Learning Problem

    林轩田老师的课可以整体分成四个部分. 1.When Can Machines Learn? 2.Why Can Machines Learn? 3.How Can Machines Learn? 4. ...

  4. 台大林轩田·机器学习基石记要

    台大林轩田·机器学习基石记要 昨天开始看林轩田的机器学习基石,从今天起开始去粗取精 第一讲比较基础,一些概念自己早已经理解了,所以不再做笔记,有点印象的是讲到了ML.DL.AI的一些联系与区别,ML主 ...

  5. 机器学习基石第一讲:the learning problem

    博客已经迁移至Marcovaldo's blog (http://marcovaldong.github.io/) Andrew Ng的Machine Learning比較简单,已经看完.林田轩的机器 ...

  6. 林轩田机器学习基石课程学习笔记1.The Learning Problem

    Course Introduction 机器学习是一门理论与实践结合的学科,不能讲的太理论,这样就会无聊,不知道如何用在实际的问题上. 不能全讲机器学习的方法,这样的话在遇到实际问题时,不知道用那个方 ...

  7. 台湾大学林轩田机器学习基石课程学习笔记1 -- The Learning Problem

    红色石头的个人网站:redstonewill.com 最近在看NTU林轩田的<机器学习基石>课程,个人感觉讲的非常好.整个基石课程分成四个部分: When Can Machine Lear ...

  8. 《机器学习基石》学习笔记 1 The Learning Problem

    B站真是个神奇的地方,平时找不到的课程来B站找找,总是有惊喜的,开心. NTU林轩田的<机器学习基石>课程 整个基石课程分成四个部分: When Can Machine Learn? Wh ...

  9. 台大林轩田机器学习基石学习笔记(一):The Learning Problem

    这里写自定义目录标题 写在前面 一.What is Machine Learning 二.Applications of Machine Learning 三.Components of Machin ...

最新文章

  1. 帮AI体检看病一条龙服务,阿里发布“AI安全诊断大师”
  2. 算法之快速排序(递归和非递归)
  3. Spring Security 3多用户登录实现之二 多登录界面展示
  4. Shell编程之条件判断
  5. 使用Java语言如何实现快速文件复制?
  6. eclipse sdk 无法更新
  7. html页面跳转方式 + 跳转传参
  8. adobe acrobat pro dc 无法打开PDF_pdf怎样转成word格式
  9. 【规范】万字集大成的SCHPCB设计规范和AD的使用
  10. 滴滴入局同城货运,一场闪电战,还是持久战?
  11. 我爱你各国的说法+50情话台词 拿去撩妹吧
  12. 【Tpshop商城使用】
  13. iOS 边学边记 升级ios14 Xcode真机调试启动非常慢的问题解决
  14. 快手之家(aardio.net) - 感谢信
  15. 工程硕士计算机专业开题报告,计算机技术工程硕士论文
  16. 合同法中的违约责任如何确定的 ?
  17. linux 只读文件 删除,linux – 我无法删除文件’rm:无法删除X只读文件系统’
  18. 树莓派4B Raspbian系统常用Linux 命令及快捷键
  19. TensorRT 推理时提示This container was built for NVIDIA Driver Release 470.42 or later 解决方法
  20. 基于FPGA的HDB3编译码verilog实现,结合MATLAB进行辅助验证

热门文章

  1. c语言 电报翻译的题目,C语言程序设计实训题目.doc
  2. 国内顶级赛事CCF BDCI即将开赛!
  3. PR 2019 快速入门(7)
  4. OpenGL 编程实践 之 改变屏幕分辨率和颜色深度
  5. JAVA 10.4 工资管理软件设计 TUT实验二
  6. 联想模拟器可以卸载吗_联想模拟器可以卸载吗
  7. python excel实操之表格转置
  8. 功能性食品国稻种芯药食同源 2023世界健康产业发展论坛
  9. 古剑奇谭——手中执剑 方能保护所珍惜之人
  10. 【spring】解决因@Async引起的循环依赖报错