机器学习基石笔记五-Training-versus-Testing训练与测试过程
【机器学习基石笔记五】——Training versus Testing(训练与测试过程)
Recap and preview
上节讲到机器学习的可行性,如果有足够的统计资料和有限的hypothesis,通过演算法无论选择什么样的
,都会有
;如果演算法A选择了一个hypothesis
,其中
,根据PCA可以保证
,可以说明机器学习是可行的。
回顾之前的课程,其中第一节是说机器学习的定义是寻找一个最好的函数g,使得很接近理想的函数f,来保证
;第二节课讲述在已知资料data上如何使
,可以使用PLA和pocket等演算法来实现;第三节课介绍机器学习的分类,训练样本为批量数据(batch),处理监督式(supervised)和二元分类(binary classfication)的问题;第四节课介绍机器学习的可行性,通过统计学的知识将
总结下来,将机器学习分为两个核心问题,第一个是确保
足够接近,第二个是使得
足够小。机器学习的可行性的条件之一为hypothesis set中的个数M是有限的,那么M和核心问题之间有什么样的关系?
根据hoeffding不等式:当M小的时候,
发生的概率很大,但是演算法的选择有限,可能不会找到一个函数g使得
足够小,不能保证核心问题二成立;当M大的时候,
发生的概率很小,但是有很多的选择,可以更确保有一个g使得
足够小,核心问题二成立,但是一可能不成立。
可以看出,M的选择直接影响机器学习的两个核心问题,使用正确的M或者hypothesis set很重要,那么是否
就不可行呢?所以要想办法解决无限大的M的问题。如果将M限定在一个有限大的变量
内,问题就解决了。
Effective number of line
从之前学过的hoeffding不等式出发,查看为什么M无限大的没办法做?首先查看它的推导过程:如果
和
之间相差很远,就说明这个hypothesis在data上是bad event,为了让演算法能够自由在hypothesis中做选择,将每个hypothesis发生bad event的几率全部或起来,(任何一个资料上发生bad event就说明这个hypothesis是不好的,使用连级的方式),计算发生bad event的几率的上限,所以当M=
,即有无限个项相加bound就会很大,失去意义,此时就会出现问题。
bound出现了什么问题?使用union bound是因为bad event不太会重叠,如果有两个很接近的hyothesis,那么对于大部分的训练样本D,
,那么
和
就会很接近,所以两个hypothesis发生bad event的可能性就会非常接近。实际上,坏事情发生的情况是相互重叠的,但是使用union bound相加的时候没有考虑重叠,造成上限是过分估计的。为了解决重叠的问题,将无限个hypothesis分为有限多类。
怎样将hypothesis分类,考虑平面中有无限条直线,如果只有一个data x,那么只有两种线,将x归类为正或者负;如果有两个数据项
和
,那么会有四种直线;如果有三个输入,会有八种情形;
三个输入一定是8中情形吗?将三个输入换一种排列方式,发现只有六种情形。
对于四个数据的输入,发现有一种无法存在一条直线使其成立的情形,最多存在14条直线。
那么对于N个数据的输入,有效的线的个数
,表示有效直线是有限的,如果使用有限的数字取代M,如果有效的数字比
小很多很多,就可以保障机器学习可能学到东西。
Effective Number of hypothesis
引入一个新的名词:
dichotomy(二分类)
,dichotomy就是将空间中的点(例如二维平面)用一条直线分成正类和负类。设H是将平面上的点用直线分开的所有hypothesis h的集合,dichotomy H与hypothesis H之间的关系是:hypothesis H是平面上
所有直线的集合
,个数可能是无限个,而dichotomy H是平面上能将点完全用直线分开的
直线种类
,它有一个上界就是
。接下来,尝试使用dichotomy代替M。
再引入一个新的名词:
成长函数(growth function)
,记为
,其定义是对于由N个点组成的不同集合中,某集合对应的hypothesis最大,那么这个dichotomy值就是
,它有一个上界
。
成长函数就是effective lines的数量的最大值
,根据成长函数的定义,二维平面上,
随N变化的关系是如图的右方。
如何计算成长函数?
首先看一个简单的一维positive rays
如果有N个点,则整个区域可以分为N+1段,很容易得到成长函数
,当N很大时,
,这是希望看到的。
对于一维的另一种情况positive interval,它的成长函数推导如下,这种情况下,N很大时,仍满足
。
假设在二维空间中,如果hypothesis是凸多边形或者类圆构成的封闭曲线,如下,左边是convex,右边不是convex的,对于这种的成长函数
。这种情况下,N个点所有可能分类的情况都能被hypothesis set 覆盖,我们把这种情况称为shattered.。也就是说,如果能够找到一个数据分布集,hypothesis set对N个输入左右的分类情况都能做到,那么成长函数就是
。
Break Point
总结起来共有四种成长函数,分别为:
对于四种成长函数,positive rays和positive intervals的成长函数都是polynomial(多项式)的,如果用
代替M的话,这两种情况是比较好的,而convex sets的成长函数是exponential(指数型)的,即等于
(不等式右边前半部分是指数增长,后半部分是指数减少的),并不能保证机器学习的可行性。对于2D perceptrons,之前查看含有3个点的输入,最多可以有8种hypothesis;而4个点的时候无法做出16条直线,最多是14个hypothesis,所以,将4成为2D perceptrons的break point(5、6、7等都是break point)。假设有k个点,如果k大于等于break point时,它的成长函数一定小于
。
根据break point的定义,我们知道满足
的k的最小值就是break point。对于之前的四种成长函数,它们的break point分别是:
我们假设成长函数可能与break point存在某种关系:对于convex sets,没有break point,它的成长函数是
;对于positive rays,break point k=2,它的成长函
数是;对于positive intervals,break point k=3,它的成长函数是
,根据这种推论,猜测2D perceptrons ,它的成长函数
。如果成立,那么就可以用
代替M,就满足了机器学习可行的条件。