机器学习的可行性

OK,首先我们已经确定了一件事,什么样的情况下,机器学习是可以适用的。

  1. 是否有一个可以研究的模型。
  2. 没有直观的数学公式可以推导
  3. 我们有数据(课上说前两条也不必遵循,但是第三条是必须的,这里不展开。)

我们目前的机器学习模型是这样的,

为了得到未知的规则f,我们通过算法从数据集(X,Y)中计算,然后在假设集(H)选择一个最好的假设(g),使得g≈f.

然而这就会有一个问题,我们真的学到了吗?我们得到的g的确是最符合数据集的,但是数据集之外的数据呢,在那些新的数据下,我们得到的g真的就与f相近吗?

OK,我们将从概率论的角度去说明学习是可行的。

有一个罐子,这个罐子里盛放着橙色和绿色两种颜色的小球,我们如何在不查遍所有小球的情况下,得知罐子中橙子小球所占的比例呢?抽取样本

 

假设罐子中橙色小球的概率为,不难得出绿色小球的概率为,其中 为未知值(假设我们不知道有多少个小球);

而通过抽样查出的橙色小球比例为,绿色小球的比例为 是从抽样数据中计算出的,因此为已知值。

如何通过已知样本,求得未知的样本

可以想象到,在很大的几率上接近的结果。因为在罐子里的小球均匀搅拌过后,抽出小球中的橙色小球比例很有可能接近整个罐子中橙色小球的比例,不难想象在抽出的小球数量等于罐中小球数量时,两者完全一致。

这其中不了解的是,到底有多大的可能性两者接近?此处使用数学的方式给予答案,如公式4-1所示。

  (公式4-1)

 

 

 

 

该公式称之为霍夫丁不等式(Hoeffding's Inequality),其中P为概率符号, 表示的接近程度, 为此程度的下界,N表示样本数量,其中不等式左边表示 之间相差大于某值时的概率。从该不等式不难得出,随着样本量的增大, 相差较大的概率就不断变小。两者相差越多,即越大,该概率越低,就意味着 相等的结论大概近似正确(probably approximately correct PAC)。

同时可以得出当N足够大时,能够从已知的 推导出未知的

OK,我们上面解释了一个概率问题,那么这个概率问题与我们机器学习的可行性有什么关系呢?首先我们把这个问题和机器学习的概念进行比对:

 

OK,看来我们大功告成了,我们已经说明了在样本(N)足够大时, 与  相等的结论大概近似正确。进行比对就可以说,在数据集X(已知数据集)中我们假设(h)的正确性(绿色小球的比例)与在整个数据集D(全部数据,包括未知数据)中我们假设(h)的正确性大概近似正确。

上面的话有点绕口,我们用不是很精确的意思来表达就是:

我们找到的那个假设h,在已知数据集中的正确性,与在全部数据集(包括未知)中的正确性是相近的(前提是样本数N足够大)。

那么似乎就简单了,只要我们通过已知数据集中找到那个错误率最低的那个(抽样样本中橙色小球最少的,即整体错误率最低的),就是我们要找的g。

真的就那么简单吗?似乎有点不太对哦,判断该假设函数是否满足上述性质,这准确的讲是一种确认(Verification),确实如此,这种形式不能称为学习。

我们上述的假说都只有一个(一个罐子),通过抽样来表示整体的颜色分布,然而真正的学习是有多个假说的(假说集H)

接下来,我们联系到真正的学习上。

但是遗憾的是,Hoeffding's Inequality不能应用在多个假说上。

以丢硬币为例:

 

 

 

 

 

 

 

假设有150个人同时丢五次硬币,统计其中有一个人丢出五次全部正面向上的概率是多少,不难得出一个人丢出五次正面向上的概率为 ,则150人中有一人丢出全正面向上的概率为

这其中抛出正面类比于绿色小球的概率也就是。当然从选择的角度肯定要选择犯错最小的,即正面尽可能多的情况,此例中不难发现存在全部都为正面的概率是非常大的,此处应注意,选择全为正面的或者说 为0 并不正确(因为想得到的结果是 ,而不是99%)这一结论与真实的情况或者说 差的太远(我们不仅仅要满足 很小条件,同时还要使得 不能有太大差距)。因此这种不好的样本的存在得到了很糟糕的结果。

上面介绍了坏的样例(bad sample),把本来很高的,通过一个使得的坏抽样样本进行了错误的估计。

我们选定的假说g出现坏样例的可能性是小于(h1出现坏样例的可能性或者h2出现坏样例的可能……),这个很明显,因为g不合适就说明它们中有一个不合适

但是对于单一假说h来说,Hoeffding's Inequality是适用的

(联合上界)

 

 

 

因此如果|H|=M的这种有限情况下,抽样样本N足够大时,可以确保假设空间中每个假设都满足

如果通过算法找出的g满足 ,则通过PAC的规则可以保证

OK,现在我们可以说机器学习是可行的了。我们通过算法从数据集N(X,Y)中计算,然后在假设集(H)选择一个最好的假设(g),使得g≈f。(前提是H数量有限,且数据集N足够大)

那么在H无限的情况下呢?

前面我们已经证明了在H有限的时候(即M有限),机器学习是可行的,那么当H无限的情况呢?如果像普通感知器模型里面,我们在二维平面内有无数条线去把点分为+1与-1,这是的H是无限的(即平面内线的数量),这时又该怎么办呢?

这时自然就有了一个想法:能否把M(H的数量)用其他方式来表示呢?

OK,其实我们能够发现,M的数量太大是因为有很多种可能对于我们而言是重复的。我们能够想象,把线稍微变一点点,其实对于点的判断并没有影响,但是它依然是一种h。

那我们何不用样本来进行分类呢?如是 和 被定义为两种不同的类别。这一思路的原因个人认为有两个:一是这本身就是一个数据分类错误率的问题,从数据分类方式着手也很切要害;二是训练样本必然是有限的,分类的方式也是有限的,可以将无限的问题转换成有限的问题。

我们引入二分类(dichotomy)这个概念,使用符号表示为H(x1,x2,…,xN),即假设空间在特定的训练样本集合(x1,x2,…,xN)上被分为几类。

假设空间与二分空间的对比


会发现H(x1,x2,…,xN)的取值取决于训练样本的分布情况,因此要取消这种依赖的关系,取消的方式就是寻找在样本点个数固定的情况下最大的H(x1, x2, …, xN)取值,公式如下所示。
现在的思路就是使用H(x1,x2,…,xN)的大小来取代无限大的M,如何取代呢?

   

符号表示一个比无限大的M小且与假设空间H有关的关于样本大小N的函数。这一函数叫做成长函数(growth function)。

我们现在已经有一个很大的进步了,我们知道一定是小于等于2^N,我们已经用一个有限的值去代替了一个无限的M。

到底是什么呢?有没有什么明确的数值去表示它?

如何具体化(就是只使用训练样本的大小N来表达出该函数)成长函数成为接下来需要解决的问题。先从简单的例子着手一步一步的推导到在感知器下该函数的具体表达。

第一个例子是举一个最简单的情况,在一维实数的情况下,并且限制分类的正方向指向固定的一边,求解成长函数。给这一分类情况起名叫做正射线(positive rays),如下图所示。

 

正射线分类的成长函数很容易得出,如公式所示。

下一个例子还是在一维空间里,与正射线分类不同的是,这是一种中间为正两边为负的情况,叫做中间为正的分类(positive interval),

 

 

其成长函数不难求出,如公式所示。

  

 

求解思路如下:此为一个两端都不固定范围的分类(正射线是固定一个端点,直接到头都为一种类型),因此在N+1个空隙中选择两个作为端点(样本两两之间有N-1个空隙,两端还各有一个),因此为一个组合问题 ,但是少算了一种全负情况,即两个端点在同一个空隙之中(是哪个空隙不重要,只要落到一起即为全负),所以再加1。

同样在N很大时,也小于上限

接着举一个二维平面上的例子,以凸图形分类为例,在凸区域内部为正,外部为负,也就是凸区域的边界作为假设函数的划分线。

 a) 蓝色部分表示一种凸的图形 b)蓝色部分表示非凸的图形

如何求解在这种情形下的成长函数?成长函数是寻找一个最大值的情形,因此要取一些极端的情况,比如所有的点都落在一个圆圈上,用一个凸多边形将所有正类的样本点连接起来,将此图形稍微的放大一点,得到的凸多边形,其中间的区域为正,外边的区域为负,如下图所示。

 

 

 

 

(在此不做证明了)

 

OK,我们知道现在的式子已经变成了

从式子上可以得知,如果我们替换掉M的是一个多项式,我们一定就能得到,右边的式子在N很大时是很小的。

现在的问题是如何说明是一个多项式,我们引入突破点(break point)。

那什么叫突破点呢?对于三个样本点的感知器,所有的样本还是满足完全二分类情形(shattered,也就是还是可以最大化分类的),但是四个样本是却不能满足完全分类情形(不能满足 种分类了),于是我们称不能满足完全分类情形的样本数量为突破点,可以想象得出当有更多的样本点时,一定也不能满足完全分类情形。因此二维感知器成长函数的突破点是4。在通过一个表来说明上节提到的所有分类情况。

各分类的突破点与成长函数的关系


OK,我们发现如果没有突破点,那么成长函数就是 2^N。如果我们能够证明在有突破点时,成长函数是一个多项式的话,我们似乎已经解决了问题,只要你告诉我这个模型有突破点,那好,我们就知道机器学习是可行的了。

证明成长函数是多项式

提出一个新的概念,上限函数 (bounding function),其定义为在最小突破点为k时,表示成长函数 最大值的函数。此函数将成长函数从各种假设空间的关系中解放出来,不用再去关心具体的假设,只需了解此假设的突破点,突破点相同的假设视为一类,抽象化成长函数与假设的关系。

二分类的个数或者称之为成长函数 说白了就是二元(在图中表示为"×"或者"○ "的符号)符号在在长度为N的情况下的排列组合(每个不同的排列代表一个二分类,每种二分类可看做一个向量)个数。

在强调一遍,提出这种上限函数的好处在于,它的性质可以不用关心到底使用的是何种假设空间,只需要知道突破点便可以得到一个上限函数来对成长函数做约束。

例如: 可以同时表示一维空间的感知器(1D perceptrons)和间隔为正(positive intervals)的两种假设空间,因为两者都满足 。注意一维的成长函数为,而间隔为正的成长函数为一定比这两种情况中最大的还要大,才能约束成长函数,回忆上限函数的定义,是成长函数最大值的函数表示,从这个例子中可以理解为何还会出现"最大值"。

想要证明

先观察已知的 如何表示,通过列表方式找出规律,如图所示。

 

从已有的数据上可以看出一个似乎是正确的结论:每个值等于它正上方与左上方的值相加。

当然单从观察是无法证明该公式是成立的,以下从结论出发来验证它的正确性。

首先通过计算机求出 的所有二分情况(自己编写程序加上限制条件,在16个二分类中找出符合条件的),其结果如图所示。

 

对这11种情况做一次重新排序,将 分开观察,如图6-4所示,橙色部分为 两两一致、 成对(pair)出现的二分类,设橙色部分一共 对二分类,即 种二分类;紫色部分为各不相同的 ,设紫色部分一共 种,得公式

注意 ,意味着在样本点为3时,不能满足完全二分的情形。需要观察在样本数为3时,这11种分类会有何变化,不妨假设这三个样本是 ,于是只剩如图所示的7种二分类情形。

其中橙色部分,原本两两成对出现的二分类,在去掉 所属的那列样本之后,就合并成了4种二分类情况( ),紫色部分不变依然为3种二分情况( )。因为已知 ,在样本数为3时,图6-5中即表示样本书为3 的情况,其一定不能满足完全二分,因此一定满足公式

继续观察橙色部分的区域 

 

以下使用反证法证明。假设三个样本在如上图所示的四种二分类情况下,满足任意两个样本都可完全二分类。将中任意两列取出,同之前被删除的 列相结合,一定可得到一种三个样本都满足完全二分类的情形(因为不论是哪两列与相结合都会得到8种二分类,每一行二分类都对应两个不同标记的,因此为8种。且两列四行的二分类是全完二分的,在此基础上加上不同属性的列,应该也不会重复,因此一定也是全完二分的)。但是此结论和已知任意三个样本不能完全二分冲突了,因此假设不成立,即在图6-6中一定存在某两个样本点不能完全二分的情况,因此得出如公式所示的结论

推导出公式

最终还能推导出公式的通用结论,也就是开始时公式的猜想。

根据这一结论将图补齐

 

 

最后可以通过如下方式证明公式是成立的。 

 

    

首先需要预先了解组合中的一个定理

很容易证明 情况下公式成立

 

 

上一节中已经给出了证明,不仅仅是满足不等号条件,而且满足等号。

再使用数学归纳法证明在的情况

   

 

这一结果意味着:成长函数 的上限函数 的上限为

OK,我们已经证明了成长函数是一个多项式了。我们可以得出结论,只要你告诉我一个模型的突破点是有限的,这个机器学习就是可行的(N足够大)

证明可以用成长函数代替M

来回顾下我们做了什么

 

  1. 我们首先提出了个疑问,因为我们无法测试数据集外的数据,我们该如何证明学习是有效可行的呢?我们使用了概率论的知识,引出了霍夫丁不等式。
  2. 然后我们发现在有多个h时,霍夫丁不等式是不可用的,而真正的学习是有多个h的,我们改进了霍夫丁不等式,使它与M(h的数量有关)。在此我们已经证明了,如果M是有限的,学习就是可行的(都在N足够大的前提下,前面不提了)。
  3. 当M无穷时怎么办?我们想要替换掉M,我们用二分类去代替了H,提出了成长函数的概念,想用成长函数去代替掉M,因为是小于等于2^N。
  4. 但是小于等于2^N无法说明霍夫丁不等式的右边是足够小的,我们想要证明成长函数是一个多项式,我们提出了突破点(break point)以及上限函数  (bounding function),最后得到 的上限为。此时我们已经证明了成长函数是一个多项式了。我们也证明最终的结果,机器学习是可行的(条件是,有一个有限的突破点

结束了吗?其实并没有,我们还差最后一步,我们要证明的是第3点中,为什么可以用成长函数去代替掉M。

证明过程不在这里用大篇幅去阐述了,原因有3点:一是难度很高;二是思想更重要,你只需要知道它用到了什么原理去证明这个问题,这比你了解这枯燥的数学推导更重要;三是结论比求解过程更重要。

这是我们原来的不等式:

这是我们将要得到的不等式:

证明过程很难描述(课中老师用了一副画来引出了VC),在此只记录结论了,这是一个机器学习中很著名的理论:

V-C上界制(Vapnik-Chervonenkis bound)。关于VC维,我也写了一篇blog去解释它

OK,到此我们已经解释清楚了,只要模型的突破点存在,并且数据集足够大的情况下,机器学习就是可行的

 

参考资料:

1.http://open.163.com/movie/2012/2/5/4/M8FH262HJ_M8FTVTT54.html

2.http://www.cnblogs.com/ymingjingr/p/4276386.html

3.http://www.cnblogs.com/ymingjingr/p/4285358.html

转载于:https://my.oschina.net/hosee/blog/475194

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值