上一篇文章介绍了机器学习的可行性。本文将讨论机器学习的核心问题,严格证明为什么机器可以学习。


系列文章

机器学习基石01:机器学习简介
机器学习基石02:感知器算法(Perceptron Algorithm)
机器学习基石03:机器学习的类型(Types of ML)
机器学习基石04:机器学习的可行性(Feasibility of ML)
机器学习基石05:训练与测试(Training versus Testing)
机器学习基石06:泛化理论(Theory of Generalization)
机器学习基石07:VC维(The VC Dimension)
机器学习基石08:噪声和误差(Noise and Error)
机器学习基石09:线性回归(Linear Regression)
机器学习基石10:逻辑回归(Logistic Regression)
机器学习基石11:线性模型分类(Linear Models for Classification)
机器学习基石12:非线性变换(Nonlinear Transformation)
机器学习基石13:过拟合风险(Hazard of Overfitting)
机器学习基石14:正则化(Regularization)
机器学习基石15:交叉验证(Cross Validation)
机器学习基石16:三个重要原则(Three Learning Principles)


文章目录

  • 系列文章
  • 5.Training versus Testing
    • 5.1 Recap and Preview
    • 5.2 Effective Number of Line
    • 5.3 Effective Number of Hypotheses
    • 5.4 Break Point
    • Summary

5.Training versus Testing

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


5.1 Recap and Preview

看一个基于统计学的机器学习流程图:

该流程图中,训练样本D和最终测试h的样本是同分布的,这是机器能够学习的前提。另外,训练样本D应该足够大,且hypothesis set的个数是有限的,这样根据霍夫丁不等式,才不会出现Bad Data,保证 Ein≈EoutE_{in} ≈ E_{out}Ein​≈Eout​,即有很好的泛化能力。同时,通过训练,得到使EinE_{in}Ein​(表示在抽样样本中,h(x)h(x)h(x) 与 yny_nyn​ 不相等的概率)最小的h,作为模型最终的矩g,g接近于目标函数。

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

四节课总结下来,可以把机器学习的主要目标分成两个核心的问题:

  • Ein(g)≈Eout(g)E_{in}(g) ≈ E_{out}(g)Ein​(g)≈Eout​(g)
  • EinE_{in}Ein​ 足够小

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

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


从上面分析看,M的选择直接影响机器学习两个核心问题是否满足,M不能太大也不能太小。如果M无限大,是否机器就不可以学习了呢?例如PLA算法中直线是无数条的,但是PLA能够很好地进行机器学习,这又是为什么呢?如果我们能将无限大的M限定在一个有限的 mHm_HmH​ (M的一个可能值)内,问题似乎就解决了。


5.2 Effective Number of Line

先看一下上节课推导的霍夫丁不等式:
P[∣Ein(h)−Eout(h)∣>ϵ]≤2⋅M⋅exp(−2ϵ2N)P[|E_{in}(h)-E_{out}(h)|>\epsilon] ≤ 2·M·exp(-2\epsilon^2N)P[∣Ein​(h)−Eout​(h)∣>ϵ]≤2⋅M⋅exp(−2ϵ2N)
其中,M表示hypothesis的个数。每个hypothesis下的BAD events BmB_mBm​ 级联的形式满足下列不等式:


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


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

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

如果平面上有两个点 x1x_1x1​、x2x_2x2​,那么直线的种类共4种:x1x_1x1​、x2x_2x2​ 都为 +1+1+1,x1x_1x1​、x2x_2x2​都 为 −1-1−1, x1x_1x1​ 为+1+1+1 且 x2x_2x2​ 为 −1-1−1, x1x_1x1​ 为 −1-1−1 且 x2x2x2 为 +1+1+1 :(此处要注意,后两种情况是不同的情况,因为分割直线的法向量是有方向的,下图中h指向的方向为正类(+1+1+1),亦即分割直线法向量的正方向)

如果平面上有三个点 x1x_1x1​、x2x_2x2​、x3x_3x3​,理应有8种划分方法,但有效的(effective)划分方式只有6种,因为有两种情况不能用一条直线将3个数据点划分开:

同理,如果是四个点x1x_1x1​、x2x_2x2​、x3x_3x3​、x4x_4x4​,理应有16种划分方式,但是有效的(effective)划分方式最多只有14种:(下图中,应该有16种情况,只画出了8种,另外8种情况是对称的,将○换成×即可)

经分析,对二分类问题来说,平面上分割直线的种类是有限的,1个点最多有2种线,2个点最多有4种线,3个点最多有8种线,4个点最多有14种线(<2N<2^N<2N)等等。有效直线的数量总满足 ≤2N≤2^N≤2N,其中,N为样本点的个数。所以,如果用 effective(N)effective(N)effective(N) 代替 MMM,霍夫丁不等式可以写为:

P[∣Ein(h)−Eout(h)∣>ϵ]≤2⋅effective(N)⋅exp(−2ϵ2N)P[|E_{in}(h)-E_{out}(h)|>\epsilon] ≤ 2·effective(N)·exp(-2\epsilon^2N)P[∣Ein​(h)−Eout​(h)∣>ϵ]≤2⋅effective(N)⋅exp(−2ϵ2N)
已知 effective(N)<2Neffective(N) < 2^Neffective(N)<2N,如果能够保证 effective(N)<<2Neffective(N) << 2^Neffective(N)<<2N,即不等式右边接近于零,那么即使 MMM (effective(N)effective(N)effective(N)) 无限大,直线的种类也很有限,机器学习也是可能的。

5.3 Effective Number of Hypotheses

先介绍一个新名词:二分类(dichotomy),使用符号表示为 H(x1,x2,…,xN)H(x_1,x_2,…,x_N)H(x1​,x2​,…,xN​),即假设空间在特定的训练样本集合 (x1,x2,…,xN)(x_1,x_2,…,x_N)(x1​,x2​,…,xN​) 上被分为几类。dichotomy 就是将空间中的点(例如二维平面)用一条直线分成正类(蓝色o)和负类(红色x)。令 HHH 是将平面上的点用直线分开的所有hypothesis hhh的集合,dichotomy HHH与hypotheses HHH 的关系是:hypotheses HHH 是平面上所有直线的集合,个数可能是无限个,而dichotomy HHH是平面上能将点完全用直线分开的直线种类,它的上界是 2N2^N2N。接下来,要做的就是尝试用dichotomy H(x1,x2,…,xN)H(x_1,x_2,…,x_N)H(x1​,x2​,…,xN​)代替M。

再介绍一个新的名词:成长函数(growth function),记为 mH(H)m_H(H)mH​(H)。成长函数的定义是:对于由N个点组成的不同集合中,某集合对应的dichotomy最大,那么这个dichotomy值就是 mH(H)m_H(H)mH​(H),它的上界是 2N2^N2N :

成长函数其实是之前讲的effective lines的数量最大值。根据成长函数的定义, 二维平面上, mH(H)m_H(H)mH​(H)随N的变化关系是:

接下来,讨论如何计算成长函数。

  • 例1:先看简单情况,一维的正射线(Positive Rays):

    若有N个点,则整个区域可分为N+1段,很容易得到其成长函数mH(N)=N+1m_H(N) = N+1mH​(N)=N+1。注意当N很大时,(N+1)≪2N(N+1) \ll 2^N(N+1)≪2N ,这是我们希望看到的。用数学描述为:

    1. 输入数据样本为 x∈Rx\in Rx∈R,RRR 为实数集;
    2. 其假设空间可以表示为 h(x)=sign(x−a)h(x) = sign(x-a)h(x)=sign(x−a),其中 aaa 是阈值,表示 >>> 某个实数 aaa 的数据被分为正类,反之为负类。
    3. 本质是在一维平面的感知器,只是比一维感知器少了相反方向可以为正的情况(此种分类已经规定向右的方向为正,而一维感知器可以规定相反的方向也为正,就比它多了一倍)。

    求出的思路很简单, N个点两两之间的空隙个数为N-1,再加上端点的个数2(左端点是全正,右端点是全负),且可得出在N很大的情况下公式 (N+1)≪2N(N+1) \ll 2^N(N+1)≪2N 成立。

    课后题中提到了不规定正方向的情况下成长函数的计算即求在一维情况下感知器的分类情况,计算公式为:mH(N)=2⋅Nm_H(N) = 2·NmH​(N)=2⋅N。求解的思路为,在N个点上两两之间有 2⋅(N−1)2·(N-1)2⋅(N−1) 中可能,因为正方向没有规定了,所以此处比正射线的种类多出了一倍,剩下样本点都为正类,或者都为负类,这两种情形,因此再加上一个2。


  • 例2:与正射线分类不同的是,这是一种中间为正两边为负的情况,叫做中间为正的分类(Positive Intervals):

    其成长函数为:mH(N)=CN+12+1=(N+1)⋅N2+1=12N2+12N+1m_H(N) = C_{N+1}^{2}+1 = \frac{(N+1)\cdot N}{2}+1 = \frac{1}{2}N^2 + \frac{1}{2}N + 1mH​(N)=CN+12​+1=2(N+1)⋅N​+1=21​N2+21​N+1

    求解思路如下:此为一个两端都不固定范围的分类(正射线是固定一个端点,直接到头都为一种类型),因此在N+1个空隙中选择两个作为端点(样本两两之间有N-1个空隙,两端还各有一个),因此为一个组合问题 ,但是少算了一种全负情况,即两个端点在同一个空隙之中(是哪个空隙不重要,只要落到一起即为全负),所以再加1。同样在N很大时,也小于上限,可知公式 12N2+12N+1≪2N\frac{1}{2}N^2 + \frac{1}{2}N + 1 \ll 2^N21​N2+21​N+1≪2N 成立。


  • 例3:一个二维平面上的例子,以凸图形分类为例,在凸区域内部为正,外部为负,也就是凸区域的边界作为假设函数的划分线。左图中,蓝色部分表示一种凸的图形; 右图中,蓝色部分表示非凸的图形。

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

    关于这种情况 Convex sets 的推导,一开始没理解,于是查看了好几位博主之前做的笔记,相关解释如下:

    有一位博主是这么理解的:思考一种很极端的情景,即所有的输入都在圆上面。做一个多边形将数据分成两类。上图中恰好是将所有的正的和负的分开,属于理想的g。而非理想的g和理想的g共有多少种呢?答案是 2N2^N2N 种,这是一个结论,记住Convex sets 的情况,没有Break Point!即无法优化。正如翻译一样,every dichotomy can be implemented。

    另一位博主是这么理解的:如果有N个数据点,如果能把2N2^N2N 种dichotomy通通都做得出来,那么就说这N个点能被 shattered。例如在Positive Interval中N=1的时候,Positive Interval中N=1(或2和3)的时候都可以全部被shatter。

    注意:shatter就是所有的情况都发生,对于 N=1N=1N=1,shatter的情况就是 o,x{o,x}o,x ;N=2N=2N=2,shatter的情况就是 oo,xx,xo,ox{oo,xx,xo,ox}oo,xx,xo,ox;之后同理。之后的课程里老师经常说shatter,一定要明白什么是shatter!

    可以这么想:回想成长函数的定义,成长函数其实是之前讲的effective lines的数量最大值。如上图例,在圆上一共10个点(上图中有5个正类,5个负类,但只是有10个样本输入时的一种情况,计算 mHm_HmH​ 要考虑所有情况),实现二分类的划分。即从中挑出正类点,然后用分割直线将所有正类点(或负类点)连接起来,那么连线构成的多边形就是正类(和正射线分类一样,正方向是有限制的,即多边形内部为正),其余是负类(注意:此处应包含点、线)。由以上就转化为了组合问题。那么实现这样的划分要视输入数据的情况而定:如果全为正类,则有 C1010C_{10}^{10}C1010​ 种情况,即选出10个正类点,组成十边形;如果有9个正类,1个负类,则有 C109C_{10}^{9}C109​ 种情况,即选出9个正类点,组成九边形,以此类推,如果没有正类,全是负类,则有 C100C_{10}^{0}C100​ 种情况,综上可知共有C1010+C109+C108+C107+C106+C105+C104+C103+C102+C101+C100=210C_{10}^{10}+C_{10}^{9}+C_{10}^{8}+C_{10}^{7}+C_{10}^{6}+C_{10}^{5}+C_{10}^{4}+C_{10}^{3}+C_{10}^{2}+C_{10}^{1}+C_{10}^{0} = 2^{10}C1010​+C109​+C108​+C107​+C106​+C105​+C104​+C103​+C102​+C101​+C100​=210 种情况。上式可以通过二项式推导出来。

当数据集D按照如上的凸分布时,我们很容易计算得到它的成长函数 mH=2Nm_H = 2^NmH​=2N。这种情况下,N个点所有可能的分类情况都能够被hypotheses set覆盖,我们把这种情形称为shattered。也就是说,如果能够找到一个数据分布集,hypotheses set对N个输入所有的分类情况都做得到,那么它的成长函数就是 2N2^N2N。


5.4 Break Point

成长函数 计算公式
正射线(Positive rays) mH(N)=N+1m_H(N) = N+1mH​(N)=N+1
一维空间感知器 mH(N)=2Nm_H(N)=2NmH​(N)=2N
间隔为正的分类(Positive intervals) mH(N)=12N2+12N+1m_H(N)=\frac{1}{2}N^2 + \frac{1}{2}N + 1mH​(N)=21​N2+21​N+1
凸分布 mH(N)=2Nm_H(N)=2^NmH​(N)=2N
二维平面感知器 mH(N)<2Nm_H(N)<2^NmH​(N)<2N


更希望得到一种多项式(polynomial)形式的成长函数,而不是指数(exponential)形式的,因为这样上界 2mH(N)⋅exp(−2ε2N)2m_H(N) \cdot exp(-2 \varepsilon ^2N)2mH​(N)⋅exp(−2ε2N) 的下降速度将会更快。能否找出一种规律将表中二维感知器的成长函数也写成多项式形式的呢?于是提出了一个新的概念,突破点(break point)。对于三个样本点的感知器,所有的样本还是满足完全二分类情形(shattered,也就是还是可以最大化分类的),但是四个样本是却不能满足完全分类情形(不能满足 242^424 种分类了),于是我们称不能满足完全分类情形的样本数量为突破点(break point),可以想象得出当有更多的样本点时,一定也不能满足完全分类情形。因此二维感知器成长函数的突破点是4。

由break point的定义可知,满足的 mH(k)≠2km_H(k) \neq 2^kmH​(k)​=2k 的最小值就是break point。对于之前介绍的四种成长函数,他们的break point分别是:

通过观察,我们猜测成长函数可能与break point存在某种关系:对于convex sets,没有break point,它的成长函数是 2N2^N2N;对于positive rays,break point k=2,它的成长函数是 O(N)O(N)O(N);对于positive intervals,break point k=3,它的成长函数是 O(N2)O(N^2)O(N2) 。则根据这种推论,我们猜测2D perceptrons,它的成长函数 mH(N)=O(NK−1)m_H(N) = O(N^{K-1})mH​(N)=O(NK−1),但是这是一个过于宽松的上界,由成长函数表可知,成长函数实际比这个规律要小。如果上式成立,就可以用 mHm_HmH​ 代替M,就满足了机器学习的条件。 关于上述猜测的证明,下节课细介绍。


Summary

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


参考:
林轩田机器学习笔记
机器学习基石笔记5

机器学习基石05:训练与测试(Training versus Testing)相关推荐

  1. 台湾大学林轩田机器学习基石课程学习笔记5 -- Training versus Testing

    红色石头的个人网站:redstonewill.com 上节课,我们主要介绍了机器学习的可行性.首先,由NFL定理可知,机器学习貌似是不可行的.但是,随后引入了统计学知识,如果样本数据足够大,且hypo ...

  2. 林轩田机器学习基石笔记5 - Training versus Testing

    Recap and Preview 机器学习流程图 第一节课,介绍机器学习是要找到最好的g,使g≈f(目标函数),保证Eout(g)≈0.第二节课,找方法使Ein≈0,如PLA和pocket.第四节课 ...

  3. 2.4 使用来自不同分布的数据,进行训练和测试-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 2.3 快速搭建你的第一个系统,并进行迭代 回到目录 2.5 不匹配数据划分的偏差和误差 使用来自不同分布的数据,进行训练和测试 (Training and Testing ...

  4. 机器学习基石06:泛化理论(Theory of Generalization)

    本文介绍了机器学习的泛化理论,包括突破点的限制,上限函数的基本情形,上限函数的归纳情形以及形象化的证明. 系列文章 机器学习基石01:机器学习简介 机器学习基石02:感知器算法(Perceptron ...

  5. 机器学习基石13:过拟合风险(Hazard of Overfitting)

    本文详细介绍了过拟合的概念,造成过拟合的原因以及过拟合的解决方案. 系列文章 机器学习基石01:机器学习简介 机器学习基石02:感知器算法(Perceptron Algorithm) 机器学习基石03 ...

  6. 机器学习基石12:非线性变换(Nonlinear Transformation)

    本文介绍了非线性变换的整体流程:通过非线性变换,将非线性模型映射到另一个空间,转换为线性模型,再来进行线性分类. 之后介绍了非线性变换存在的问题:时间复杂度和空间复杂度的增加. 最后证明了非线性变换的 ...

  7. 机器学习基石笔记5——为什么机器可以学习(1)

    转载请注明出处:http://www.cnblogs.com/ymingjingr/p/4271742.html 目录 机器学习基石笔记1--在何时可以使用机器学习(1) 机器学习基石笔记2--在何时 ...

  8. 台大机器学习基石学习笔记

    台大机器学习基石学习笔记 标签(空格分隔): 机器学习 目录 台大机器学习基石学习笔记 目录 Lecture 1 The Learning Problem Course Introduction Wh ...

  9. 林轩田《机器学习基石》资源汇总(视频+学习笔记+书)

    来源 | AI有道(公众号ID:redstonewill) ▌课程介绍 台湾大学林轩田老师的<机器学习基石>课程由浅入深.内容全面,基本涵盖了机器学习领域的很多方面.其作为机器学习的入门和 ...

最新文章

  1. typeof instanceof 之间的区别总结
  2. python加颜色_Python 给屏幕打印信息加上颜色的实现方法
  3. HVM guest配置文件
  4. 数据库学习笔记2--MySQL数据类型
  5. 前端发给后台的参数中含有中文
  6. 测试新版FCKeditor编辑器精简版
  7. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...
  8. VMware虚拟机中VMnet0上的网桥当前未运行
  9. 在50亿信息泄露事件面前,Struts 2 漏洞和CIA泄密都是小事 | 宅客周刊
  10. tableau prep builder也是不支持m1芯片。。。
  11. 转载之NetApp RAID技术介绍
  12. Linux 命令之 unzip -- 解压缩文件
  13. ubuntu下常用服务器的构建
  14. Activiti(一)SpringBoot2集成Activiti6
  15. linux 乌班图 lnmp环境搭建
  16. TechEd2011之游园录(3)
  17. 20220518 十堂课教会管理者打胜仗———管理者如何快速上手,带领团队打胜仗?
  18. excel计算机一级打不开,电脑打不开excel表格是怎么回事呢?
  19. SCI收录的文献类型与认证的文献类型
  20. 『这辈子就相爱《何苦要等下辈子》 李草青青、肖玄MV』

热门文章

  1. 柚子壁纸为什么自动安装_Wallpaper Engine,Windows最好用的动态壁纸软件,附教程!...
  2. quectel(电话簿命令)8
  3. android N 版本问题
  4. Oracle没有WM_CONCAT函数的解决办法
  5. SDK 和 API 的区别是什么?(转)
  6. 在世界上搜词采用计算机,计算机二级Word,Excel真题及答案
  7. 说话声音测试年龄软件叫什么名字,抖音上很火的一个讲师,年龄挺大了,说话很有意思,叫啥来着...
  8. IOS 之各种收起键盘
  9. Ancient Distance
  10. python调用baidu-aip朗读