机器学习真的可以起作用吗?(2)(以二维PLA算法为例)

一个问题:大多数情况下,M(hypothesis set的大小)是无穷大的,例如PLA算法。那么是不是我们的原则1就不能使用了?

我们试着做一些努力:

Step1:寻找hypothesis set的effective number来代替M

image_thumb20

什么意思呢?就是之前推导中clip_image0025_thumb,但是呢,例如在PLA算法中,h1和h2是如此的相像(考虑平面上的直线),所以,如果D对于h1是GOOD,那么对于h2也是GOOD。即:重叠部分太多,我们over-estimatinng了。

 

现在我们换一种思路。从DataSet的角度看问题。

image_thumb22

什么意思?对于只有一个点的D,所有的h分为两类:一种是把x1分为 的,一种是分为 ×。

image_thumb26

image_thumb30

到现在,我们已经明白这种思路了。对于对于每一个h,我们看它对于D中每一个数据的分类情况。这叫做一个dichotomy。那么H的effective Number 就是dichotomies的总数。

image_thumb33

但是呢,这样的话,我们的计算过程又依赖于D的具体数据,所以使用Growth Function来移除对数据的依赖:即我们使用|H(x1; x2; : : : ; xN)|的上限。用clip_image0027_thumb来表示:

image_thumb34

如果Growth Function是polynomial 而非exponential,那么我们就可以使用原则1设计学习算法A。

Step2:effective number是Polynomial 而非exponential

根据上文,我们知道,只需要证明effective number是Polynomial 而非exponential,我们就大功告成了。但是,我们需要引入几个概念来辅助我们的证明过程

概念:Break Point & shatter

这是对于解决Growth Function问题很重要的两个概念。

存在2个输入点,PLA的H可以完全实现四种分类。这时,称这2个点被shatter。

存在3个输入点,PLA的H可以完全实现8种分类,这时,称这3个点被shatter。

但是,没有任何4个点,可以被PLA的H  shatter。

此时,4就是H的break point。

设k是H的break point,则有 clip_image0029_thumb,下面是证明过程。正常巧妙。

 

定义bounding function:

image_thumb36

则有:

image_thumb37

如何求解其余的B(N,k)?

以B(4,3)为例,看看能不能用B(3,?)解决。

image_thumb39

B(4,3)=11,可以分成两类:一类是x4成对出现的,一类是x4成单出现的。

image_thumb43

因为k=3,所以任意3点都不能shatter,即:α+β≤B(3,3)。

又因为对于2α来说,x4是成对出现的,所以,x1,x2,x3任意两个点必然不能shatter,否则的话,再加上x4,就会有三个点被shatter。即:α≤B(3,2)。

image_thumb45

image_thumb47

可用数学归纳法证明。此时不等式右端为growth function上限的上限。(可以证明,上面的≤实际上是=)

posted @ 2016-04-27 11:21  wangyanphp  阅读(540)  评论(0编辑  收藏  举报