码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2016-04-27 13:00:42      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:

一个问题:大多数情况下,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上限的上限。(可以证明,上面的≤实际上是=)

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

标签:

原文地址:http://www.cnblogs.com/wangyanphp/p/5438201.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!