MachineLearning(Hsuan-Tien Lin)第六讲

前面说到mH(N)不是按照指数增长的,它在增长的路上会遇到一块叫break point的石头绊一下,使它增长变慢。而且,我们还知道了四种类型的成长函数的break point值。

 

当成长函数在break point最小的值那里开始变慢以后,后面的增长都是变慢的。什么意思?就是说k=3的时候,成长函数开始变慢了,k=4也是break point。因为break point不能够shatter数据的值,当k=3不能shatter后,k=4也肯定不能shatter。只要不能shatter,就会使成长函数变慢。

现在,有一个h,最小的break point在2的地方(k=2),那你能得出什么结论?

(1)N=1时,即一个点时,h是可以shatter数据的。mH(1)=2

(2)N=2时,即两个点时,h就不能shatter数据了,因为最小的break point在2的地方(k=2)。mH(2)<2^2。这时,我们可以知道,最多mH(2)=3

(3)N=3时,三个点的时候,h也是不能shatter数据,那mH(3)最多是多少呢?

我们知道,N=3是包含N=2的情况的。所以,在求mH(3)时,要做到任选2个点,都不能shatter。即,任选2个点都不能做到{+1,-1}的四种组合。如下,我们先任选2个点,有三种组合,这三种任选,但是就是不能出现四种。所以x1和x2的组合最多就是:


接下去,我们增加一个点x3,我们选x2和x3做到不能shatter。x2和x3的组合最多就是:


最后,我们看x1和x3,发现还能增加一种。

当x1增加一个x时,x2可以是x或者o。但是x3是o,为了不能shatter,x2只能选x。

所以:


所以这里就是N=3,break point k=2时,最多的dichotomy。

也许你会有点疑问,在看x2和x3的时候,能不能这样:


这样不是可以写很多,x2和x3也不能shatter。或者,干脆在一开始x1和x2的时候就写好几个。实际上,这样写了也浪费。因为,现在看上面x1和x2,x2和x3的确都满足条件了。在补x1时,第四行的x1只能是x,如果它是o,x1和x2就shatter。第四行x1是x时,第四行和第二行就是一样的了。所以第四行要删掉。第五行可以补上x1是x。第六、七行只能删掉。最后的结果也是一样,有4个dichotomies,只是组合不同。主要差别就是前面加x3时,考虑一下子就满足x2和x3的三种排列而已。


所以,mH(3)=4<2^3,你看4和8还是有差挺多的。到这里,你发现没,当最小的break point出现后,成长函数后面的增长都是受影响的。N=2时受限,当N=3时,要包含前面的受限,再算自己的增长,而使得自己的增长也缓慢了很多。这和运动员被石头绊倒受伤后,速度增长缓慢一样(我们假设不会使他减速,只是加速变慢)。

到了这里,我们大胆假设,当成长函数被石头绊倒了,之后它的增长一直都受影响,且使得它增长缓慢得到变成多项式的地步。

 

如果成长函数真的是多项式,我们代入Hoeffding’s Inequality,就可以说机器学习是可以做的。

接下去,我们定义一个函数bounding function B(N ; k )。

它是什么意思呢?

它的意思是成长函数在k的位置被绊倒了,随着N增加,成长函数最多有多少种dichotomy。

抽象来说,有一堆的向量,其实就是由o、x组成的dichotomy,它们的长度为N。现在,我看任意的k维,我都不希望看到o、x的所有组合。

这个函数和成长函数有什么关系?和我们想要求的M有什么关系?bounding function 实际就是成长函数的上限。最多有多少种dichotomy,就是最多有多少h。这时,成长函数就不分类型,不分是一维正射线还是2D线性分类。我们就找最大的那个,如果2D的dichotomy多,那就用它的。这样做的目的就是,可以一般化mH(N)。不管h的类型,反正最大的那个如果都是多项式,那机器学习就是可行的。

接下去,就是证明bounding function是个多项式。我们用一张表来看看bounding function到底多大。

B(2,2)=3在前面讲到过,最小的break point在2的地方(k=2),mH(2)<2^2,则mH(2)最多3。B(2,2)=3。

B(3,2)前面画了好几张表,最后求出了mH(3)最多是4,所以B(3,2)=4

 

我们还能填什么?B(N,1),意思就是1个点都不能shatter,所以B(N,1)=1

 

还可以填右上半部分。B(N,k)说的是有任意k个点都不能shatter。如果N比k小,那就是说还没绊倒,运动员就停下来了,那速度一定是加到2^N那里了。

 

接下去,就看k和N一模一样的时候。看N=k=2时,我们怎么做的?我们说2个点不能有2^2种组合,那就减一种吧,就是3种。所以,这里也是一样,N=k时,我们就说2^N就shatter了,那就减一种吧。

 

剩下的部分就是比较难算的。

我们看B(4,3),这个是什么意思?就是说有4个点,任意3个不能shatter。有没有想到,我们一开始做B(3,2)的时候?我们当时说B(3,2)是任意2个点都不能shatter,而我们每一步都是看两个点。首先是x1和x2,不能shatter,接着是x2和x3,最后是x1和x3。你看“x1和x2,不能shatter”,这是什么,好像是B(2,2)。所以,我们看这里B(4,3)是不是也和B(3,3)有关?接下去,我们用观察法。我们从B(4,3)出发,观察它和B(3,3)的关系。

 

首先,直接用课件上面的结果。B(4,3)=11。整理下。

我们先遮住x4,先求B(3,3)。3个点不能被shatter,最多7个。


接下去,我们加入x4,最多有2*B(3,3)种,因为对于上面的每一个{x1,x2,x3},x4都拿+1和-1来配对的话,就好像把{x1,x2,x3}都复制了一遍。然而并不是7个都可能被复制的。我们把7个中被复制的叫α,没被复制的叫β。知道α+β=B(3,3)

 

 

我们看结果,发现复制的部分是4个,没有被复制的是3个。B(4,3)=2*α+β。我们知道α+β=B(3,3)。那么α呢?

我们再观察

 

我们发现α不就是我们一开始就做过的B(3,2)吗?

所以有

 

因此

 

这个好像杨辉三角。说到这里,你可能有点怀疑,事实上,在推导B(N,k)≤B(N-1,k)+B(N-1,k-1)时,用的是数学归纳法。

所以,综上,我们把成长函数用上限bounding function表示,求bounding function时,用的又是它的上限。

 

显然,这个函数最高的幂次是k-1(k是最小break point)。而一般那个最小break point不会很大。

我们就可以求出几种类型的成长函数上界了。

 

这样,就可以替换M了

 

但是又不是直接替换,而是做点变形。

我们求出成长函数就说它是假设集合中的M,之前的说法是,把h分成一类一类的,因为它们的表现是一样的,就是Ein和Eout很接近的表现。可是,实际上Eout我们根本不知道啊。所以,有没有办法不要Eout,就看某一类h的表现是不是一样。方法就是:抽一个样本D,看的是h,算出Ein;再抽一个样本D’,看的是h’,算出Ein’。求|Ein-Ein’|> ε的概率。所以,前面的都是数量N的样本看Ein-Eout,现在采用数量为2N的样本看两个不同假设的表现Ein-E'in。

所以最后的结果是:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值