加州理工学院公开课:机器学习与数据挖掘_训练与测试(第五课)

课程简介:

本视频为机器学习系列课程第5章。主要定量研究训练与测试之间的关系,并引入学习模型中的一个重要概念--断点。课程深入浅出,从正射线、正区间和凸集三个具体例子入手,寻找突破点,从而得出训练集与测试集的关系。

课程大纲(Outline):

1、从训练到测试(From Training to Testing)

2、举例说明(Illustrative Examples )

3、关键概念---- 断点(Key Notion --- Break Point )

4、难题(Puzzle)

1、从训练到测试

什么是测试?什么是训练?

我们通过举一个例子来阐明这个问题。

假设我们将要进行一场考试,那么我们开始进行复习。为了检验自己的复习质量,我们可能会做大量的练习。可能在第一次做的时候错了很多,但是由于有答案,所以我们可以通过答案来修正我们的问题,然后你接着做(同一套习题),然后你进行修正......随之我们不断地练习,修正,最后我们可能会把练习题做的很好。

这个过程其实就相当于机器学习中的训练。我们修正问题相当于机器学习在修正参数。当我们把习题做的很好地时候相当于机器学习得出了一个 Ein 足够小的函数。但是在这个过程中练习的效果已经不太明显了,因为我们几乎记住了练习的全部答案!因此我们需要付出代价 M(假设集大小) ,于是有了下面的公式一(第二课):

其中 Ein 表示我们对练习的掌握程度,越小越好,Eout 表示我们对教材的掌握程度(我们做练习的目标是为了了解我们对教材的理解程度)

很快我们迎来了考试。我们考试的目的是为了了解自己对教材的理解程度而不是为了拿高分,即是说我们是为了知道 Eout 而进行考试,由于我们无法直接计算 Eout,又根据 Hoeffdings 定理,我们可以通过 Ein(考试成绩)来逼近 Eout,所以我们进行考试。

这个过程就当于机器学习中的测试,是为了检验我们得出来的模型是否能够真实的反映事实!于是有了下面的公式二(注意:这个公式没有 M ,假设我们只考一次):

当该公式为真的时候我们就认为 Ein 能够代表 Eout。

所以训练就是通过不断地在现有资料中进行学习从而得出一个模型来表示这些数据。而测试就是为了检验该模型是否能够反映训练集之外的数据。(看看能不能由特殊推出一般)只有通过了该测试我们才认为该模型是好的。

对于感应机(线性模型)来说,一般假设集都是无穷大的,因此上面第一条公式基本上是没有什么指导意义的,因为任何一个假设都会满足第一个不等式。因此我们需要想办法用一个更合理的值代替 M,从而指导我们更好地学习,这也是本节课的重点内容。为了代替 M,我们需要知道 M 从哪里来。

假设 Bi 表示 hi 下面的坏事件:|Ein-Eout| > ε,P[Bmin] 表示所有的 P[Bi] 中最小的那个。

则 P[Bmin] <= P[B1 or B2 or B3...or Bm] <= P[B1] + P[B2] + P[B3] + ...P[Bm]。不等式右边共有 M 个项。然而只有当所有的 坏事件没有发生重叠的时候才会取得等号。

事实上,坏事件发生重叠是很的事情,如上图所示,只有当 B1,B2,B3 均没有重叠的时候不等式的等号才成立。那我们是否真的能够改进 M,用一个更合理的值代替它呢?

当然我们可以尝试通过数学的方法,计算出不等式右边的值,从而确定用什么值来代替 M,可是这样子计算实在是太复杂了,以至于根本就无法计算!

我们先看一张图片:

图中有两条线,分别代表两个假设,1、3 号区域表示错误的分类,2、4号区域表示正确的分类,黄色的区域表示两个假设分类错误的不一样的点即 △Eout,当△Eout 很小的时候有 △Ein 也很小,因为点落在黄色区域里面的概率也变小。所以两个假设对分类错误的点有很大部分的重叠(1、3 区域)

其实只要我们能够证明 |Ein(h1) - Eout(h1) |~|Ein(h2) - Eout(h2) | 就一定存在可以代替 M 的更友好的值。因为当|Ein(h1) - Eout(h1) |~|Ein(h2) - Eout(h2) | 成立时,那么有当 |Ein(h1) - Eout(h1) | > ε 时(坏事件 B1),大多数情况下(我们并不需要一个精确的值)都有 |Ein(h2) - Eout(h2) | > ε (坏事件 B2)成立,所以 B1 和 B2 在很多情况下是存在重叠的,即相关的。因此我们能够改进
M。正如上图所示,当线缓慢移动的时候所产生的分类有很多部分在分类错误的点中是重复的!

所以我们的目标是找出能够反映这些重叠区域的数据,并且找到一个合理的界限,从而避开复杂的数学计算。

那么,应该如何寻找这些数据?让我们先看一个例子。

2、举例说明

为了能够更好地描述问题,我们以二分类(+1, -1)为例,这样可以更好的是我们把精力放在真正重要的问题上。

观察以下图片:对于同一个数据集,不同的假设(分割线)把它分割成不同的两部分,但并不一定代表真实的分类!

其中粉红色区域表示 +1 类,蓝色区域表示 -1 类。

· 很明显,这样的假设(线)有无数多个,但是我们可以发现其中有很多对于训练集(图中的点来说)都是等效的,即它们对训练数据的分类情况是完全一样的,比如第一张图片中,如果把线向左平移一小段距离,则可以形成不同的假设,但是其在训练集中的分类效果不变。所以这两个假设对于训练集来说是相等的,所以我们只需保留一个假设就可以了。因此当我们要求一个假设集中共有多少个假设的时候,我们可以转化为求:对于一个假设集,这些数据最多能被二分成多少组不同的分类?假设最多能被分为
m 组,于是我们就可以用 m 来代替 M 了。由于 m 与 假设集(H)有关,所以我们的问题变成求函数: mH(Growth Function)。

在求 mH 之前,我们要确保 mH 不会是无穷大,否则我们就可以立刻放弃求解 mH 了,因为我们的目的就是要寻找出一个更小的值代替 M ,显然,无穷大怎么也不可能成为候选人。

那么在二分类问题中,mH 的最大值是多少呢?

假设我们有 N 个点(数据),则每个点都可能被归类为 +1 或 -1,因此每个点分类结果最多有两种,所以对于 N 个点,最多的分组结果是:2^N << 无穷大。很好,现在我们知道了 mH 最大不会超过 2^N,所以我们可以放心的求解 mH 了。形式化的公式如下:

我解释一下:X(大写)表示空间中的全部点,整个公式表示在所有可能的点中抽取出 N 个点出来,使得在假设集 H 下能得到最多的分组数。显然有 mH(N) <= 2^N;

可能你会说,等式的右边一定是等于 2^N ,还有必要计算吗?让我们找出一个例子来说明:

如果我们把该公式用在感知器模型中,看看结果会是怎么样的:

1、只有三个点,当三个点的分布类似如下结构时,则我们最多可以分出最多的组: 8 组,这已经是最多的了。这时有 mH(3) = 2^3 = 8

2、只有四个点,则我们最多可以分出多少组?观察下面的图片,无论我们怎样摆放这四个点,我们都没办法使得分组数达到 2^4 = 16 组,总会出现图中所示的情况和相反的情况,我们的感知器是没有办法对这些点进行这样的分组的(感知器是一条直线)。排除这两种情况,mH(4)  = 16-2 = 14

综上,我们有必要计算 max 值。

为了直观的计算 mH,现在我们观察一下三个特殊的例子:

1、H 是一条正射线,从 a 点出发,正方向上的点为 +1 类,反方向上的点为 -1 类(只需看X轴),如下图所示:

那么,对于给定的 N 最多可以分成多少不同的组呢?

N 个点把线分成了 N + 1 段,当 a 分别落在不同的段中,变形成了不同的分组,所以最多有 N+1 个分组。

mH = N + 1

2、H 是一条线段,在线段中间的点为 +1 类,线段外面的点为:-1 类(只需看X轴),如下图所示:

假设线段的两个端点分别为 a,b。我们从这 N+1 个空间中任取两个分别赋给 a,b,则可以形成所有的分组。这时:

mH = (N+1)* N / 2 + 1;(从 N + 1 个可能的值中取两个值,最后还需要加上一是因为考虑到 a = b 的情况)

3、H 是一个凸边形,凸边形里面包括边界上的点为 +1 类,外面的点为 -1 类。那么怎样的数据才能产生最多的分组呢?

当所有的 N 个点都在一个圆周上的时候可以产生做多的分组,事实上可以产生 2^N 个分组。如下:

任意连接圆上的点组成的一个封闭图形一定是凸边形,而且这样的凸边形有 2^N 个。

所以 mH = 2^N 。

假设我们能够计算出每一个模型的 m 出来,那么这个 m 用来做什么用呢?我们要用这个 m 代替 M (如果我们能够代替的话,证明将在下一节讲到)

如果我们的 m 是一个多项式函数,那么恭喜,我们可以用 m 代替 M 并且随着 N 的不断增大,不等式右边的值将会不断减少,最终如果我们的数据足够多,我们就可以让不等式的右边足够小,这时我们便可以用 Ein 来估算 Eout 了。为什么是多项式?

下面给出不严格的证明(为了有个感性的理解,严格的证明将要用到断点(break point )的概念,这是本课时最重要的概念)如下:我们可以把多项式 m(为了简单,只保留多项式的最高项,且假设 m = aN^b ) 代入 M 然后对不等式右边求导,如果当 N 大于某个值的时候导数为负,则说明在该点之后不等式右边会随之 N 的增大而减少(这里没有考虑到下界的问题,好像要求二次导,不太记得了。。。)

求导结果:ae^(-2ε^2N)*N^(b-1)*(b-2ε^2N)。显然,当 N 足够大的时候必然有 (b-2ε^2N) 小于 0 ,从而整个导数小于 0,从而递减。

3、关键概念---- 断点

定义:If no data set of size k can be shattered by H then k is a break point for H.

也就是说,如果对于一个大小为 k 的数据集,无论这些数据是什么都没办法由 H 产生所有的组合(2^k),但是当数据集的大小为 k-1 的时候却可以,则该 k 就是 H 的断点。

比如上面的模型中:

感知器:断点 4

正射线:断点 2,

线段    :断点 3,

凸边形:断点 ∞。

只要存在断点(不包括 ∞),我们就可以告诉你学习的行为,告诉你学习是否可行。断点是很重要的概念,请务必能清楚,下节课将讲述断点的性质及一些证明。

4、难题(Puzzle)

为了能更好地理解断点,请看下面的例子:

假设我们的数据集大小是 3 ,断点是 2,下图中没有填充的点表示被分到 -1 类,有填充的点表示被分到 +1 类。对于下面的任意一幅图,请问该模型能否同时产生图中对应的所有分类组合(每一行表示一个分类)?如果不行,请问为什么?

比如对于图一,表示该模型共产生了两组分类,其中第一组分类为:所有的点都被分为 -1 ,第二组分类为 X1,X2 被分为 -1 类,X3 被分为 +1 类。那么该模型能否产生这样的结果?即这些分组会不会互相矛盾以至于无论该模型是什么,只要满足断点是 2 ,都不可能同时产生这样的分组?

图一:

图二:

图三:

图四:

总结:

该课时首先用考试的例子说明了训练和测试的区别与联系,然后自然而然的引出了由于训练的不断重复而产生了代价 M 的问题,M 的存在使得机器学习无法进行,因为一般来说 M 都非常大,为了能够找到一个合理的 m 值来代替 M,作者首先说明了 M 值是可以被替代的,因为假设集中的假设结果中是存在互相重叠的部分。为了更好的理解分析问题,作者先从二分类开始,证明对于二分类有 m <= 2^N ,这样就第一次减少了 M ,使得机器学习可以进行了。在此基础上,作者通过举出不同的模型:正射线、线段、凸边形并且计算出了对于二分类,这些模型的具体
m 值,分别为:N+1、(N+1)N +1、2^N 。进一步,作者提出只要我们得出的 m 值是一个多项式函数,那么只要数据集足够大,我们就能够通过机器学习来求解该问题。为了证明这个结论,作者给出了断点的概念及一些替定模型的断点是多少,证明将在下一课时中给出。最后为了能够从感性的层面上感知断点的一些性质,作者给出了一个利用了断点性质的谜题。

时间: 2024-10-14 06:40:59

加州理工学院公开课:机器学习与数据挖掘_训练与测试(第五课)的相关文章

加州理工学院公开课:雷蒙保罗MAPA泛化理论(第六课)

课程简介: 本次课程主题为"泛化理论",介绍了机械学习相关课程,重点介绍与之相关的公式推导及其应用.是这一整套课程中最具理论的课程,如果读者理解了该部分内容,那么对于后面课程的理解将会有很大的帮助. 课程大纲: 1.证明 mH(N) 是多项式( Proof that mH(N) is polynomial ) 2.证明 mH(N) 能够代替 M( Proof that mH(N) can replace M ) 说明:以下证明均是针对二分类! 首先要弄明白的两个问题是为什么需要证明上述

加州理工学院公开课:机器学习与数据挖掘_过拟化(第十一课)

课程简介 本节课主要介绍了关于机器学习中的过拟化问题.作者指出,区别一个专业级玩家和业余爱好者的方法之一就是他们如何处理过拟化问题.通过该课程,我们可以知道样本数据的拟合并不是越高越好,因为噪声的存在将使得过拟化问题的出现.最后简介了处理过拟合的两种方法. 课程大纲 1.什么是过拟化?(what is overfitting?) 2.过拟化中的噪声.(The role of noise) 3.确定性噪声.(Deterministic noise) 4.如何处理过拟化问题.(Dealing wit

加州理工学院公开课:机器学习与数据挖掘_偏差与方差权衡(第八课)

课程简介: 在回顾了VC分析之后,本节课重点介绍了另一个理解泛化的理论:偏差与方差,并通过学习曲线的运用比较了VC分析和偏偏差方差权衡的不同用途. 课程大纲: 1.偏差与方差的权衡 2.学习曲线 1.偏差与方差的权衡 在上一节课:VC 维中,我们求出了 Eout 的边界,Eout < Ein + Ω.该公式描述了 Eout 的边界.现在让我们从不同的角度来分析 Eout. 我们把 Eout 分解为两部分: 1.假设集 H 近似 f 的能力(即 H 中与 f 距离最小的 G 与 f 的误差大小 )

加州理工学院公开课:机器学习与数据挖掘_误差和噪声(第四课)

这一课的主题是:误差分析与噪声处理. 该课时的主要内容如下: 1.Nonlinear Transformation(Continue)(非线性转换(续)) 2.Error Measure (误差度量)(重点) 3.Noisy Targets(噪声指标)(重点) 4.Preamble to the Theory(理论热身) 1.Nonlinear Transformation: 在上一节课的最后,作者举了一个关于非线性转换的例子.通过该例子我们可以直观的看到非线性的数据可以被转化成线性的数据并且利

加州理工学院公开课:机器学习与数据挖掘_线性模型

这一课时主要是讲述了线性模型的一些处理. 包括: 1.输入数据的表示(Input Representation) 2.线性分类(Linear Classification) 3.线性回归(Linear Regression) 4.非线性模型转换(Nonlinear Transformation) 作者认为,如果要测试某个模型的可用性,做好就是用真实数据. 为了讲解线性模型如何应用,作者利用线性模型来解决邮局数据辨别问题: 由于不同的人有不同的书写习惯,对于同一个数字其书写形式可能各异,但是其基本

加州理工学院公开课:机器学习与数据挖掘_神经网络(第十课)

课程简介: 本节课主要介绍人工神经网络.通过介绍评定模型,随机梯度下降法,生物启发和感知器系统,讲师用视图和数学解析式详细地讲解了神经网络的运行过程以及原理. 课程大纲: 1.Stochastic Gradient Descent ( 随机梯度下降法 ) 2.Neural Network Model ( 神经网络模型 ) 3.Backpropagation Algorithm ( 反向传播算法 ) 4.Summarize 1.Stochastic Gradient Descent 在上一节课里,

加州理工学院公开课:机器学习与数据挖掘_Three Learning Principles(第十七课)

课程简介 : 这一节课主要讲述机器学习中应该注意的事项,包括:Occam's Razor.Sampling Bias.Data Snooping. 课程提纲 : 1.Occam's Razor. 2.Sampling Bias. 3.Data Snooping. 1.Occam's Razor. 爱因斯坦曾经说过一句话: An explanation of the data should be made as simple as possible, but no simpler. 软件工程中也有

加州理工学院公开课:机器学习与数据挖掘_Epilogue(第十八课-终结篇)

课程简介 : 这是该课程的最后一课,作者首先总结了有关机器学习的理论.方法.模型.范式等.最后介绍了贝叶斯理论和Aggregation(聚合)方法在机器学习中的应用. 课程提纲 : 1.机器学习的地图. 2.贝叶斯理论. 3.Aggregation(聚合). 1.机器学习的地图 有关机器学习的方法.模型等非常多,简直令人目不暇接.比如下图列出来的.然而不建议一一学习这些方法.模型,否则容易迷失在这些方法里无法自拔.如果我们对于机器学习的框架认识的足够深刻,那么我们才能驾驭众多的方法. 下面列举了

加州理工学院公开课:机器学习与数据挖掘_VC 维(第七课)

课程简介: 本讲通过回顾上一讲内容,引出了VC维的定义,它是由统计学习理论定义的有关函数集学习性能的一个重要指标.并通过例子证明函数集的VC维就是它能打散的最大样本数目.课程最后介绍VC维的应用,指出它反映了函数集的学习能力,VC维越大则学习机器越复杂 课程大纲: 1.定义(The definition) 2.感知器的 VC 维(VC dimension of perceptrons) 3.VC 维的解释(Interpreting the VC dimension) 4.边界的泛化(Genera