MachineLearning(Hsuan-Tien Lin)第七讲

在前一讲,我们用一个上限的上限来框住成长函数,说它最后一定不会很大。还记得上限的上限吗?指Generalization的时候,选成长函数用上限bounding function。求bounding function时,用的又是它的上限。其实,M的边界是非常宽松的。选假设个数时,就是选能做出dichotomy最多的,比如N=3时,有6种和8种,我们就选8种。

这是上讲求的成长函数:

 

可以看到,最高次幂是,我们对比下B(N,K)和

 

发现,B(N,K)比小很多,大概从N=2,K=3开始,就比小很多。

所以,成长函数取上限的上限,

 

把上面的上限的上限代入Hoeffding’s  Inequality,可以求得:

 

为什么是(2N)在上讲最后一个部分提到过。

可以看到,机器学习如果要可行,需要

1)要好的h。就是mH(N)是会被石头绊倒的,即会有break point。

2)数据D要够大

3)算法找的出g,使Ein很小。

重点:VC维度(VC Dimension)

VC维度(dvc)就是假设能够shatter数据的最大的N。什么意思?第六讲说到,数据总是挑战假设。数据给了4个点,假设最多只能做出14种dichotomy,然后假设输了。即不能shatter。VC维度就是数据给N个点,假设能做到shatter的最大N。

比如,N=3的时候:


左边,假设可以做出8种dichotomy;右边,假设可以做出6种。就说N=3时,假设可以shatter数据。而N=4,上面说到不能shatter。所以VC维度,dvc=3

dvc=’minimum k’ - 1,它就是数据D被绊倒之前的最大N

当N≤ dvc时,h有可能shatter这N个点。为什么是“有可能”呢?因为,如上右图,如果是那样的分布,就做不出8种dichotomy。

当k > dvc时,k是break point。也就是说h不可能shatter这k个点。

我们在前面对比下B(N,K)和发现B(N,K)会被框住,而dvc=’minimum k’ - 1

所以

看几个例子:

 

所以,如果要成长函数有限,只要看dvc是否有限就可以了。

如果dvc有限,这时选出的g,Ein和Eout一定很接近。这个结论与f长什么样无关,与概率分布p无关,也与算法A无关。它与数据D数量N有关,与h有关,且最后看是否g≈f。

上面说“如果dvc有限”,那么,它真的有限吗?

看那几个例子,好像dvc可以是有限,2D perceptron的dvc 就只有3。当然凸多边形的是无限的。我们暂且看N维空间的。

 

现在,问d维perceptron的dvc ?猜测是dvc =d+1

我们要证明,可以从两步入手:

dvc ≥ d + 1

dvc ≤d + 1

先证明dvc ≥ d + 1

只要证明N=d+1时,有一种点的分布可以被shatter就可以了。

让我们构造在d维空间的特定N=d+1个点,能被假设shatter

用下面这个矩阵来构造:

 

灰色的一列1是x0也就是阈值(threshold)

橙色的就是我们在d维空间分布的点。橙色的部分有d+1笔,第一笔全是0,就是原点。第二笔在第一个方向上有一个分量,其他都是0。第二笔就是在第二个方向上有一个分量,其他都是0。……这是一个可逆的矩阵。

看一个二维的例子:

 

我们很容易知道,这三个点是能被shatter的。

能shatter是什么意思?就是说有h能够把点都分到对的阵营。也就是:

 

其中一种情况就是,如果不用取正负号也能做到。

 

x是可逆的,y又是数据中给出的,所以,可以求出这样的w。也就有这样的h,可以shatter这个特殊的矩阵的d+1个点。我们只要找到一个能shatter的例子,就说明N=d+1是能够被shatter,所以dvc ≥ d + 1

接下去证明dvc ≤d + 1

要证明d维空间,N=d+2时,任何点的分布的情况都不能被shatter。

还记得2D中N=4时,最多只有14中dichotomy,即假设不能shatter。

 

我们可以很清楚看到不能做出dichotomy的那种了。

也就是给了三个点

 

“?”如果是x的话不行,那样的dichotomy没有办法产生。

从数学的角度分析:

四个点的矩阵是(就是前面的三个点加一笔资料):

 

所以,上面,已知的点是,x是x1(0,0),两个o是x2(1,0)和x3(0,1),“?”是x4(1,1)。

从上面矩阵中可以看出,有x4=x2+x3-x1(x1是x(-1),所以前面是-,另外两个是o是+的)。(个人认为,单纯从矩阵看好像是可以+x1,但是从图上看,我们在分“敌我”阵营,x1是会误导我们的,所以好像惩罚一样的,要把它减掉。)

左右同时乘也是正确的,

 

如果x2、x3是o,x1是x,所以是正的,是负的。所以三项加起来的话,一定是正的。就是,如果把x4表示成其他三个向量的线性组合的形式,线性依赖的关系会限制产生dichotomy的数量。

这个例子还是特殊的,我们看一般情况:

 

不要忘记目的:要证明N=d+2时,任何点的分布的情况都不能被shatter。

所以,d+2笔资料列在一个矩阵中,row有d+2行,column有d+1列。行表示的是资料的数量d+2笔;列表示空间维度d维加原点(全0),所以是d+1。

这说明什么?学过线性代数的,都应该知道,如果向量的个数超过空间维度,就一定会存在线性相关。如上面所示,xd+2就可以表示成其他向量的线性组合。ai有的是正的,有的是负的,有的是0,但是不能全为0。

假设h可以shatter这些数据。即有一组W,这组W在前面d+1笔资料产生的情形,和ai的符号一样,如下图,a1是正的,x1在W产生的情形是正的;a2是负的,x2在W产生的情形是负的……那么是正的,a1是正的;是负的,a2是正的……

 

所以xd+2一定是正的。

这里,好像有点糊涂。其实,意思就是说,因为有线性相关性,xd+2会由前d+1决定,如果前d+1决定xd+2是正的,那么它不可能取负的,这样xd+2为负的dichotomy不能做出来。

简单的例子,在前面的四个点已经说明了,x4已经被前三个决定必须是正的,所以不可能有2^4种dichotomy,也就不可能shatter。

综上:d维空间不可能shatter任何d+2个点。所以dvc ≤d + 1

因为

dvc ≥d + 1

dvc ≤d + 1

所以dvc =d + 1

我们之所以有不同的假设h,是因为参数不同,,这里说自由度就是说可以自由变换的变量个数(就是可以自由变化的参数个数),即wi的个数。就像下图中的控制面板,有10个旋钮,类比h就是有10个wi,d=9。通过调节10个旋钮,产生不同的h。而dvc 就是这个控制面板的自由度10,dvc =10。

 

为什么要加上可以“自由变化”呢?因为有的如:有约束条件规定,则w9就不能自由选择,因为,这和xd+2一样,是由前面d+1个决定的,它不能自由选择自己的值。

看几个例子:

正射线自由度

 

切成两半的位置,一个参数。

正区间自由度:左边的位置,右边的位置。两个参数。

 

我们其实可以看到,dvc 越大,就是说可以shatter的点越多,h的power也越大。这很容易理解,数据来挑战h的时候,dvc 越大,它出1个点可以shatter,出2个点可以shatter……出dvc 个点可以shatter。但是,dvc 不是越大越好。

来看个数学解析:

我们把原来的Hoeffding’s  Inequality改写一下,就是VC bound

 

VC bound最后整理为(中间过程都是数学替换,可以看课件)

 

左边部分不太重视,只取右边为:

 

我们把叫做“penalty for model complexity”

看下面的图:

 

 

横轴是dvc 纵轴是error。随着dvc 增加,Ein变小,因为可以shatter的点变多,那就可以找到合理的h。Ω变大,因为模型越复杂。

随着dvc 变小,Ein变大,Ω变小。

所以,最好的dvc 在中间。

上面还解释一些现象,我们开始学机器学习,会希望Ein很小。从上图看,那样就会要更大的dvc 这样使h变得等强大,但不见得就好,因为代价就是模型复杂。(这个在《A Few useful things to Know About machine Learning》 读后感中有讲到)

成本函数里面有个N,是资料的数量,我们总说够大的N,够大到底是多大?无穷还是一些些?

根据VC bound

 

做这样一道题

 

Ein和Eout差最多0.1,坏事发生的概率最多10%,模型的dvc是3,比如2D的perceptron。问:需要多少的数据量?

 

理论上N=10000dvc,但是实际

 

也就是上面的2Dperceptron 只要30个点就够了。(想象在一个二维平面,给30个点,找一条线)

所以,可以看到,理论值与实际值差很远,这个bound是非常loose的。为什么呢?

 

从这个图可以看出,VC bound看的都假设在最糟糕的情况。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值