且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

更新时间:2022-08-19 19:11:41

上节课,我们主要介绍了机器学习的可行性。首先,由NFL定理可知,机器学习貌似是不可行的。但是,随后引入了统计学知识,如果样本数据足够大,且hypothesis个数有限,那么机器学习一般就是可行的。本节课将讨论机器学习的核心问题,严格证明为什么机器可以学习。从上节课最后的问题出发,即当hypothesis的个数是无限多的时候,机器学习的可行性是否仍然成立?


一、Recap and Preview


我们先来看一下基于统计学的机器学习流程图:

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

该流程图中,训练样本D和最终测试h的样本都是来自同一个数据分布,这是机器能够学习的前提。另外,训练样本D应该足够大,且hypothesis set的个数是有限的,这样根据霍夫丁不等式,才不会出现Bad Data,保证Ein≈Eout,即有很好的泛化能力。同时,通过训练,得到使Ein最小的h,作为模型最终的矩g,g接近于目标函数。


这里,我们总结一下前四节课的主要内容:第一节课,我们介绍了机器学习的定义,目标是找出***的矩g,使g≈f,保证Eout(g)≈0;第二节课,我们介绍了如何让Ein≈0,可以使用PLA、pocket等演算法来实现;第三节课,我们介绍了机器学习的分类,我们的训练样本是批量数据(batch),处理监督式(supervised)二元分类(binary classification)问题;第四节课,我们介绍了机器学习的可行性,通过统计学知识,把Ein(g)与Eout(g)联系起来,证明了在一些条件假设下,Ein(g)≈Eout(g)成立。

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

上节课介绍的机器学习可行的一个条件是hypothesis set的个数M是有限的,那M跟上面这两个核心问题有什么联系呢?

我们先来看一下,当M很小的时候,由上节课介绍的霍夫丁不等式,得到Ein(g)≈Eout(g),即能保证第一个核心问题成立。但M很小时,演算法A可以选择的hypothesis有限,不一定能找到使Ein(g)足够小的hypothesis,即不能保证第二个核心问题成立。当M很大的时候,同样由霍夫丁不等式,Ein(g)与Eout(g)的差距可能比较大,第一个核心问题可能不成立。而M很大,使的演算法A的可以选择的hypothesis就很多,很有可能找到一个hypothesis,使Ein(g)足够小,第二个核心问题可能成立。


***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing


二、Effective Number of Line


我们先看一下上节课推导的霍夫丁不等式:

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

当M=∞时,上面不等式右边值将会很大,似乎说明BAD events很大,Ein(g)与Eout(g)也并不接近。但是BAD events Bm级联的形式实际上是扩大了上界,union bound过大。这种做法假设各个hypothesis之间没有交集,这是最坏的情况,可是实际上往往不是如此,很多情况下,都是有交集的,也就是说M实际上没那么大,如下图所示:

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

也就是说union bound被估计过高了(over-estimating)。所以,我们的目的是找出不同BAD events之间的重叠部分,也就是将无数个hypothesis分成有限个类别。

如何将无数个hypothesis分成有限类呢?我们先来看这样一个例子,假如平面上用直线将点分开,也就跟PLA一样。如果平面上只有一个点x1,那么直线的种类有两种:一种将x1划为+1,一种将x1划为-1:

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

如果平面上有两个点x1、x2,那么直线的种类共4种:x1、x2都为+1,x1、x2都为-1,x1为+1且x2为-1,x1为-1且x2为+1:

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

也就是说,对于平面上三个点,不能保证所有的8个类别都能被一条直线划分。那如果是四个点x1、x2、x3、x4,我们发现,平面上找不到一条直线能将四个点组成的16个类别完全分开,最多只能分开其中的14类,即直线最多只有14种:***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

三、Effective Number of Hypotheses

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

再来看这个例子,假设在二维空间里,如果hypothesis是凸多边形或类圆构成的封闭曲线,如下图所示,左边是convex的,右边不是convex的。那么,它的成长函数是多少呢?

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing


四、Break Point


上一小节,我们介绍了四种不同的成长函数,分别是:

***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing***大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

五、总结


本节课,我们更深入地探讨了机器学习的可行性。我们把机器学习拆分为两个核心问题:Ein(g)≈Eout(g)和Ein(g)≈0。对于第一个问题,我们探讨了M个hypothesis到底可以划分为多少种,也就是成长函数mH。并引入了break point的概念,给出了break point的计算方法。下节课,我们将详细论证对于2D perceptrons,它的成长函数与break point是否存在多项式的关系,如果是这样,那么机器学习就是可行的。