机器学习真的可以起作用吗?(2)(以二维PLA算法为例)
一个问题:大多数情况下,M(hypothesis set的大小)是无穷大的,例如PLA算法。那么是不是我们的原则1就不能使用了?
我们试着做一些努力:
Step1:寻找hypothesis set的effective number来代替M
什么意思呢?就是之前推导中,但是呢,例如在PLA算法中,h1和h2是如此的相像(考虑平面上的直线),所以,如果D对于h1是GOOD,那么对于h2也是GOOD。即:重叠部分太多,我们over-estimatinng了。
现在我们换一种思路。从DataSet的角度看问题。
什么意思?对于只有一个点的D,所有的h分为两类:一种是把x1分为 的,一种是分为 ×。
到现在,我们已经明白这种思路了。对于对于每一个h,我们看它对于D中每一个数据的分类情况。这叫做一个dichotomy。那么H的effective Number 就是dichotomies的总数。
但是呢,这样的话,我们的计算过程又依赖于D的具体数据,所以使用Growth Function来移除对数据的依赖:即我们使用|H(x1; x2; : : : ; xN)|的上限。用来表示:
如果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,则有 ,下面是证明过程。正常巧妙。
定义bounding function:
则有:
如何求解其余的B(N,k)?
以B(4,3)为例,看看能不能用B(3,?)解决。
B(4,3)=11,可以分成两类:一类是x4成对出现的,一类是x4成单出现的。
因为k=3,所以任意3点都不能shatter,即:α+β≤B(3,3)。
又因为对于2α来说,x4是成对出现的,所以,x1,x2,x3任意两个点必然不能shatter,否则的话,再加上x4,就会有三个点被shatter。即:α≤B(3,2)。
可用数学归纳法证明。此时不等式右端为growth function上限的上限。(可以证明,上面的≤实际上是=)