机器学习基石---Why Can Machines Learn(Part4)

knitr::opts_chunk$set(echo = TRUE)

  Part3主要内容:如果 N 足够大并且某处存在break point,那么EinEout可以满足。那么对于任意维度的2D perceptrons一定存在break point吗?

1 VC Dimension

  Part3讲到的VC Bound如下所示:

PD[hH,s.t.|Ein(g)Eout(g)|>ε]4mH(2N)exp(18ε2N)

  其中 mH(N)<B(N,k)=i=0k1CiN ,当 N2,k3 ,我们可以找到 B(N,k) 的上界 Nk1 ,数学上应该可以直接证明的,这里我们简单看图做个说明:

这里写图片描述

我们从最开始的 M –>mH(N)–> B(N,k) –> Nk ,那么如果break point k 存在时,上面VC Bound可以替换为:

PD[hH,s.t.|Ein(g)Eout(g)|>ε]4(2N)k1exp(18ε2N)

那么,如果成长函数存在break point且资料量 N
足够大,我们可以得到EinEout。同时,如果演算法可以找到一个 Ein 很小的 g ,learning应该就是可行的。

这里写图片描述

  VC Dimension定义:最大的非break point,或者说是最小的break point减去1的值。那么:

ifN2,dVC2,mH(N)NdVC

之前我们说如果break point存在, N 足够大,可以得到EinEout,现在可以用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+1 ,那么证明只需两步:
1. dVCd+1
2. dVCd+1

2.1 Step1 dVCd+1

  对于step1,只需证明当 d+1 个资料时,存在shatter的情况,就可证明min break point不是 d+1 。注意我们在看是不是break point时,是任意摆放这些 d+1 个点,求最多可以产生多少dichotomy,如果可以产生 2N 个dichotomy,则认为被shatter。
我们按照下面的方式构造点的排列:

X=xT1xT2xTd+1=11110100001000001

每一行代表一个样本点,一共 d+1 行。线性代数知识易知 X 可逆。回到PLA,我们希望找到w,使得 sign(Xw)=y ,假设不看 sign ,我们如果可以找到 Xw=y ,那么一定有 sign(Xw)=y 。shatter的含义指产生 2d+1 个dichotomy,也就是对于所有可能存在 y ,我们可以找到w使得 Xw=y 成立。因为 X 可逆,所以w=X1y。这就证明了这样的 d+1 个输入能被shatter。Step1证明完成。

2.2 Step2 dVCd+1

  证明 dVCd+1 则需要当资料大小为 d+2 时,任意的种 d+2 个input都不能被shatter。同样的,用矩阵表示:

X=xT1xT2xTd+2

这个矩阵行数为 d+2 ,列数为 d+1 ,则行向量之间一定线性相关。 XTA=0 有解则说明 xT1,xT2,,xTd+2 之间线性相关。因为n元齐次方程组 Ax=0 有非零解的充要条件是 R(A)<n 。对于系数矩阵 XT ,其秩一定不大于行数和列数。所以 R(XT)d+1 ,而 A d+2行,1列的矩阵。所以一定有解。
  上面我们证明了对于 d 维perceptrons,d+2个input时存在线性相关的情况,那么一定有:
xd+2=a1x1+a2x2++ad+1xd+1

证明用反证法证明不能shatter。假设我们在某种 d+2 个资料时能够shatter,那么所有的dichotomy都存在。系数 a1,a2,...,ad+1 的正负与 y 的正负一致,这样的y也一定存在,因为被shatter。此时:
wTxd+2=a1wTx1+a2wTx2++ad+1wTxd+1

因为 wTxi ai 符号相同,所以 wTxd+2>0 ,即 yd+2 不能为负。这就与shatter这个前提矛盾了,所以 d+2 时,不能shatter。

  综合Step1和Step2,d维的perceptrons的VC Dimension为 d+1 得证!

3 Degrees Of Freedom

  自由度的概念怪怪的,和统计学里讲的自由度貌似也不太一样。按照Week7里讲的,叙述一遍吧。

这里写图片描述

上图中 W 又名features,模型中可以自由变动的参数数量即自由度。而VC Dimension代表二分类时有效的自由度,即H产生dichotomy的数量,也就是 W 中参数的数量。(也不是绝对等于,林老师原话。。。)例如,对2D Perceptrons,线性分类,d_{vc}=3},则W={w_0,w_1,w_2} 3feature3()VC M$,有如下结论:

这里写图片描述

4 Interpreting VC Dimension

  这一节进一步探讨VC Dimension。之前的VC Bound如下:

这里写图片描述

这里把Bound记为 δ ,根据上面的不等式,出现Bad的概率最大不超过 δ 。那么也可以说出现good的概率最小不小于 1δ ,那么可以进一步推导:

这里写图片描述

ε 表现了 H 的泛化能力,ε越小, Ein,Eout 越接近,泛化能力越好。

这里写图片描述

至此我们推导出泛化误差 Eout 的上界。这个上界又称为模型复杂度。显然模型复杂度和 N,dVC,δ,Ein 有关。下面是 Eout,Ein ,模型复杂度随 dVC 变化的关系:

这里写图片描述

至于这个图为什么是这样,暂时只能把它当做结论来记。从图上可知:
* dVC 越大: Ein 越小, Ω 越大,模型越复杂
* dVC 越小: Ein 越大, Ω 越小,模型越简单
* 随着 dVC 增大, Eout 会先减小再增大
单纯的通过增大 dVC 来找最小的 Ein 不可取,因为会增加模型复杂度和 Eout
  下面介绍另一个定义:样本复杂度(Sample Complexity)。如果选定 dVC ,样本数据选择多少合适呢?看下面的例子:

这里写图片描述

按照题设条件,满足 δ=0.1 的样本数量为29300。 N 大约是dVC的10000倍,实际上大概只需要10倍左右。这是因为VC Bound太过宽松了。因为VC Bound不考虑目标函数,数据分布,对于任意的资料都成立,而且还用了union bound,且取了好几次上界。

5 Summary

  这一节课整体上乱糟糟的,介绍了VC维、自由度、模型复杂度等等,并且证明了 d 维的Perceptrons的VC维是d+1。至于VC维,更多是替换break point,据说break point是林老师自己造出来的。
  综合这四篇文,当VC维有限且资料足够多,可以满足 EinEout 。而 Ein0 则需要 dVC 取到合适的值,因为 dVC 过大,虽然 Ein 很小,但是会导致 Eout 增大。

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 于杭州

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值