MachineLearning(Hsuan-Tien Lin)第五讲

机器学习的目的是找到一个好的h。那么,需要什么条件?有h,还有就是,好的那个要在h集合里。至于,怎么找,那是算法的事。机器学习可行的前提就是:要有h且好的那个要在h集合中。上讲说到,如果N够大,M有限的话,Learning是可以做到的。但是,如果M无限呢?

回顾下上面的Hoeffding’s Inequality,我们做总体预测的时候,是怎么做的?

我们是把每一个h在所有D上BAD和,再把所有h的BAD加起来。

 

P[B1]就是h1所有D上的表现错误的总和。就是下面这个式子。(你会问,不是所有D,为什么下面写着BAD D?因为h1在有的D上表现很好,没有BAD,就是没有“全都是正面的概率”(“全都是正面的概率”就是Ein很小,但是和Eout差很远),这样的D就是没问题的)

 

所以,所有的h在所有D上的错误和就是:

 

所以,M如果有限,机器学习总是可以找到Ein和Eout很接近的且Ein不会很大的h。机器学习是可行的。

但是M不一定是有限的。真的吗?

试想一下,h到底是什么呢?到底有多少呢?

当我们要把下面5个点分类的时候,有多少个h呢?

 

我们随便画几个好了

 

我们只画了4条线,实际上,我们可以画无数条,所以h是无限的,M就是无穷大。那机器学习不能做了。可是,你再仔细看看,好像你觉得h1和h2是一样的。什么一样?分类一样。那么它们分错类的概率也是一样的,它们在Ein上的表现是一样的。如果Ein≈Eout,那它们PD[BAD  D]就是一样的。所以,我们可以把h1和h2当成一类。

综上所示,只要我们把很接近的h都合成一类,你就会发现,h不可能无限多了。我们在计算总的PD[BAD  D]时,就只要算每一类h在所有D上的表现。就是说每一类选个代表来算就可以了。

那你又会问,我们要机器学习做自由的选择,你合成一类了,一类里面只算一条,这不是导致机器学习选h的时候,只能一类一类的看,一类里面选一条,这样不是有可能出现选对了类,但是没选到那一条吗?你看看上面说的h1和h2是一样的,就会明白,在同一类中,所有h的表现都是差不多的,不管选哪一条都可以。

接下去的问题就是,h怎么分类呢?

我们用归纳的方法来发现h分类的规则。

假设我们只有一笔资料(x1,y1)

 

你会发现只有两类的线,一类h1说x1是+1(o),一类h2说x1是-1(x)。注意下图中箭头方向都表示+1方向

 

你会说不对啊,我还可以做出h3、h4

 

你再仔细想想,h3和h4对x1预测的结果是什么?要么说x1是+1(o),要么说x1是-1(x)。这样,我们就把说x1是+1(o)的归到h1一类,说x1是-1(x)的归到h2一类。为什么这样归类?我们在上面说过,要把表现一样的归在一起。现在只有一笔资料,说x1是+1(o)的肯定表现都是一样的。

现在给两笔资料(x1,y1)(x2,y2),可以看出,有四种类型的h。


  

用课件上的图就是:

再加一笔资料(x1,y1)(x2,y2)(x3,y3)。有8种类型的h

 

用课件的图就是 

 

但是,x1、x2、x3分布不一定是那样的,有可能是下面这种情况,x1、x2、x3在同一直线上:

 

这时,x1和x3是+1(o),x2是-1(x)的情况就不可能发生。因为没有一条直线能把x2单独分出来。同样的x1和x3是-1(x),x2是+1(o)也是不可能的。所以,这时,三笔资料,最多有6种类型的h。

 

到这里,你就可以猜测说M并不是无穷大的了,它是有限的,它的大小和资料量N有关,你觉得M好像最多可以是2^N。因为当N=3时,有可能是8或6。

为了证明一下,再多看一个N=4时。四笔资料x1、x2、x3、x4。有这几种分布

 

其中,第三种的情况是有h最多的。一共14种,而不是16种。

 

我们用张表格表示h最多有多少种类型与N的关系。

 

所以,我们可以说M不是无限的,把相同表现的h归成一类,M和N有关系。最多有2^N。我们把h的类型称为effective(N)

这时,Hoeffding’s Inequality可以表示为:

 

这样似乎有点胜利的曙光,开始我们说M无穷大,机器学习是没法做的。现在说M是与N有关的,M好像≈2^N,不是无限的。但是,我们还是很头疼,因为2^N是个指数,在做机器学习的时候,资料量可不是小数目,这样的M也还是很大,虽然不是无穷了,但还是个指数级的。别急,你再看看上面说的,有没有发现,N=3的时候,就有不是2^N的情况发生,有两种情况,8种和6种。而N=4的时候,就确定不是2^N了,最多是14种。

我们想想,上面的effective(N)是怎么来的?

我们列了一张这样的表格,把所有的h类型都列出来了


你会发现h的类型是由能把x分为+1(o)还是-1(x)决定的。上面的表格中这样的排列


 叫做dichotomy。dichotomy并不是2^N,它虽然是+1|-1的排列,但要是h能够实现的组合。上面三笔资料的dichotomy一共有8个,从{+1(o),+1(o),+1(o)}到{-1(x),-1(x),-1(x)},而对应的h也有8个,从h1到h8。所以,我们就想,是不是h的类型数可以从dichotomy的个数获取。因为我们作图找h的类型是很麻烦的。


我们把能够满足h的最大dichotomy个数求出来,就是h的类型,我们把它叫做成长函数(growth function)mH(N)。什么意思呢?N=3时,有两种dichotomy,一个是6,一个是8,我们取dichotomies=8 为mH(3)=8。N=4时的dichotomies=14,所以mH(4)=14。

这里的成长函数,其实就是资料数为N时,h的类型数。只是,我们通过上面的分析,发现,h的类型数,并不是真的按照2^N指数增长,而是和输入xi是+1|-1的排列有关的,也就是和dichotomy有关。

所以,成长函数(N=1……4):

 

几个成长函数的例子。

(1)Growth Function for Positive Rays一维正射线

规定正的在右边,负的在左边

注意下图中箭头方向都表示+1方向

一笔资料两种类型h,h1把x1分为+1,h2把x1分为-1

 

两笔资料

 

三笔资料

 

所以,我们可以推出一维正射线的mH(N)=N+1

(2)Growth Function for Positive Intervals一维正区间

规定在某个区间内都是正的,区间外都是负的

一笔资料的时候,有两类h,h1把x1分为+1,h2把x1分为-1。注意,绿色的两根都是h1,黄色的两根都是h2。你会问,怎么一个函数h里面有两个?这里并不是两个函数一起表示h1。而是类似这样的

 

那你又说,有h3,在h1左边的。

 

看h3分类的结果,x1分为-1,和h2是一样的,它们是一种类型的h。

所以,一笔资料的一维正区间,h只有2种类型

两笔资料

 

N笔资料

 

所以

 

(3)Growth Function for Convex Sets凸集

规定凸集内为正,外为负

 

这里有个技巧,它是把输入x,放到一个圆周上,当要做dichotomy的时候,把想要弄成正的点连起来,连成一个多边形。然后多边形往外扩大一点点,就形成了,在凸多边形里的就是正的。凸多边形外的就是负的。

一笔资料,两类h。h1把x1分为+1,h2把x1分为-1。一笔资料的凸多边形就画成圆吧,这样直观。

 

两笔资料

 

上面N太小,都不能形成凸多边形

N=4,假设



一共是1+4+6+4+1=16=2^4


Break point

我们开始说h的数量是无限的,经过把表现相同的合成一类后,说有限了。不过个数是指数2^N。接着,我们又经过一些归纳,发现不是纯指数级增加,而是有的时候被分布约束了,不能够用h分类。比如上面介绍的几个例子,一维正射线是N+1,不是很大,至少比2^N小好多。一维正区间是,也比2^N小。不过凸多边形的就不是了,是2^N。但是,我们还是很乐观的看到了大部分h的数量并不是那么多的。

我们在做2D(二维)线性分类的时候,观察到N=4时,mH(N)=14。这个对后面N=5有没有影响呢?有。什么影响?我们可以这样想,N=4的时候不能做到16种,N=5的时候,是包含N=4这个子集的,所以N=5也不可能做到2^5种。这里,可以打个比方。比如,一个运动员正在操场上做匀加速跑步,突然,中间出现了个石头把他绊倒了,脚受伤了。他爬起来后,速度开始变慢了。

如下图

 

但是,下面那个函数我们不知道,只知道运动员在break point那里被绊倒了,腿受伤了影响了后面的速度。

我们把能够做成2^N的情况叫做shatter。就是h能够把样本的所有情况都做出来。shatter就是打碎的意思。这个好像,数据在挑战假设一样。2D时,数据说:“我出2个点,有4种组合。”假设说:“我出h1-h4来接招,你的每种组合,我都有dichotomy。我可以shatter(这里shatter想成打败)你。如果你出的组合是{+1,+1},我就出h1,把两个点都分成+1。”然后,数据说:“别自以为是,我出4个点,16种组合。”假设搞了很久,才说:“这个我不能shatter你了,我只有14种dichotomy,你赢了。”所以,2D情况下,数据在N=4的时候break了h的锐气。N=4就是h不能够shatter数据的break point。

我们来看看其他例子的break point。

一维正射线:mH(N)=N+1 很显然,mH(N)<2^N时,N最小为2。所以break point就是N=2

一维正区间:,mH(N)<2^N时,N最小为3。所以break point就是N=3

凸集:mH(N)=2^N,所以没有break point

2D(二维)线性分类,mH(N)我们不知道,mH(N)=2^N时,上面讲过break point就是N=4

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值