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

这一课的主题是:误差分析与噪声处理。

该课时的主要内容如下:

1、Nonlinear Transformation(Continue)(非线性转换(续))

2、Error Measure (误差度量)(重点)

3、Noisy Targets(噪声指标)(重点)

4、Preamble to the Theory(理论热身)

1、Nonlinear Transformation:

在上一节课的最后,作者举了一个关于非线性转换的例子。通过该例子我们可以直观的看到非线性的数据可以被转化成线性的数据并且利用线性模型进行处理,但是我们缺乏理论的指导,在这节课中,作者补充上了理论的指导,主要回答的问题是转换什么?

首先我们观察转换的流程:

首先我们通过观察原始数据,找到转换函数,然后对原始数据进行转换,接着对转换后的数据应用线性模型进行求解,得到 W 然后通过求逆就可以得到原始数据的模型,如下:

2、Error Measure

什么是误差度量?

误差度量就是要找出衡量 h(假设集)与 f(目标函数)之间的差距,即找到度量 h 与 f 之间距离的方法。定义为:E(h,f)。

由于真实的 f 我们无法知道,但是我们手上有一些数据,这些数据是 f 的一部分,因此我们在度量误差的时候就利用我们已经拥有的这些数据进行度量。这些数据都是离散的,我们必须得一个点一个点的经行度量,然后求这些点的距离平均值,把该平均值作为 E(h,f)的结果。所以定义 e(h(xn),f(xn)) 为现实中某个点的误差。所以我们有:

其中 Ein 为样本内误差,Eout 为样本外误差(未知),Ex 表示求期望值。

所以现在问题变为如何度量:e(h(xn),f(xn)) ?

在上一节课中我们求解线性回归的误差的时候用到的方法是:平方差:(h(xn)-f(xn))^2.。

然而,现实中并没有这么容易就可以得到误差的度量方法,有时候你的误差度量方法可以决定你的结果的好坏!

在提出理论性的解答之前,我们先看一个例子:

假设现在要开发一款指纹仪,那么我们需要考虑四种情况:

a、理论上你应该被成功识别(+1),事实上你被成功识别(+1)

b、理论上你不应该被识别(-1),事实上你没有被成功识别(+1)

c、理论上你应该被成功识别(+1),事实上你没有被成功识别(-1)(误拒绝)

d、理论上你不应该被识别(-1),事实上你被成功识别(+1)(误接受)

a、b 的行为跟预测一致,是我们需要的,现在误差出现在 c、d 中。理论上,c、d 都是失败的例子,它们的代价应该是一致的吧?因此它们产生的误差应该是一致的吧?

考虑把该指纹仪投放在市场里面使用,会员通过指纹仪确定身份,从而享受优惠,而非会员不享有该优惠。这时如果误拒绝了一个会员,他按了几次指纹都没有识别成功,他因此感到很尴尬,很气愤,并且决定以后不再到这里购物了,该商场因此损失了一名顾客。相反,如果一个大胆的家伙冒充会员进行指纹识别,很意外的他尽然被误接受了,于是他这次购物享有优惠价。这对于商场来说,损失并不大,而且这种大胆的家伙也不多!在这种情况下,我们可能会认为误拒绝的损失比误接受要大,所以我们给误拒绝一个更大的误差,期望能够减少误拒绝的发生。

此外,如果考虑把指纹仪用在美国中情局中情况会是怎样的呢?情况可能要反过来了,这时认为误接受是非常大的损失,相反误拒绝则不会损失什么,那些雇员顶多就抱怨一下,然后多按几次手指而已罢了,毕竟他们是在上班,不是在购物。这时候你可能定义误接受的误差值要大于误拒绝。

因此,结论是:误差测量应该由用户决定。可问题是并不是任何问题都能由用户提供一个误差度量方法,这个时候我们可以有以下的折中方案(记住,以下方案是第二选择,任何时候,如果有用户提供的误差测量,都应该取用用户的!)

a)还算合理的方案,比如:线性回归中的方差

b)比较友好的方案,比如:closed-form solution(闭合解也叫解析解,对应的是数值解

其中 b 方案是为了使计算更加方便而已。

3、Noisy Targets

理想是丰满的,但现实是骨感的!我们的第一手资料不可能全部都是有用的,其中包括很多的噪声,因此我们需要对噪声进行处理,否则学习的结果将是不可靠的!

之前我们的目标是从假设集中找到一个能最好逼近目标函数的函数,然而,目标函数并不是真正意义上的函数,根据数学的定义,函数是一个自变量只能对应一个因变量,而在我们的目标函数中,一个自变量却可以对应多个因变量。比如:银行贷款时间中,我们的输入数据是年薪,即我们根据用户的年薪决定是否进行贷款。但是现实中可能会出现两个用户他们的年薪相同,但是其中一人拖欠贷款,另一个人没有。所以我们认为这里面出现噪声,如果不对这些噪声进行处理则可能会带来不可靠的结果!

为了处理噪声,我们将要改变目标函数,使得 f(x) = E(y*P(y|x)),即我们取的是一个数学期望值。考虑到样本数据也会影响学习的结果,我们最后修改 f = E( P(x)*y*P(y|x) )。我不是很理解为什么要加入 P(x),可能是因为当我们的的数据集都比较集中,比如都是高薪人群,而其中有小部分是低薪人群时,那么得到的结果更应该有更多的关注点在高薪人群这里,所以给高薪人群一个较高的权值(P(x)).

(注:在作者的 PPT 中, f(x) = E(y|x) ,不知道是不是像我上面那样理解,还望指教! )

然后作者得出:Noisy Targets = { f(x)再加上噪声;y - f(x) }。

最后作者说到 f(x) 是一个特殊的噪声目标,除了 y = f(x) ,其它时候都有 P(y|x)  = 0。这里十分不明白!

原文:

下面是无监督学习的流程图:

4、Preamble to the Theory

这部分主要是介绍接下来两周的课程安排,作为一个热身运动。

回顾历史,才能展望未来。我们之前学习过机器学习的可行性。

我们有 Ein ~ Eout(~ 表示约等于)

我们的目标是 Eout ~ 0

我们能做的是尽力使 Ein ~ 0

然而在现实中有些东西是不可预测的,比如股市,你无法使你的 Eout ~ 0 ,因为环境因素太复杂,我们没办法进行很好地预测。当我们的 Ein 在 47% 的时候就已经很了不起了,这时你就应该出手了。反而,如果我们的 Ein ~ 0,则你应该谨慎,因为这个可能是一个虚伪的数据!!!这时你会发现 Ein 已经不能代表 Eout 了,它们的差距已经非常大了!这也是我们接下来将要学习的理论知识:描述有限假设集下学习的可能性

根据上图可知,当模型的复杂度不断增大的时候,我们的输入参数也相应的变多,当参数变多的同时,我们得到的结果的可能性也会变大,因此 Ein 更容易出现接近 0 的结果,同时,Ein 与 Eout 的差距也变大了。

复杂度上升 ----> Ein 下降

复杂度上升------> Ein - Eout 上升

面对真实的问题,复杂度一般都很大,不然也不会用到机器学习了,这是不是说明机器学习不能胜任了?

非也!在接下来的课程里面我们将会学到很多的技巧来解决上面的矛盾,比如正规化。因此机器学习能胜任!

结论:

该课时主要讲解了非线性转换的目标问题、如何计算误差(由用户决定)、如何处理噪声的问题(数学期望值)及对将要学到的理论知识做了个热身运动。是一们承上启下的课时。期待下一课时!

如有理解不到位的地方还望指教!

时间: 2024-09-30 00:11:36

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

加州理工学院公开课:雷蒙保罗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.输入数据的表示(Input Representation) 2.线性分类(Linear Classification) 3.线性回归(Linear Regression) 4.非线性模型转换(Nonlinear Transformation) 作者认为,如果要测试某个模型的可用性,做好就是用真实数据. 为了讲解线性模型如何应用,作者利用线性模型来解决邮局数据辨别问题: 由于不同的人有不同的书写习惯,对于同一个数字其书写形式可能各异,但是其基本

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

课程简介: 本视频为机器学习系列课程第5章.主要定量研究训练与测试之间的关系,并引入学习模型中的一个重要概念--断点.课程深入浅出,从正射线.正区间和凸集三个具体例子入手,寻找突破点,从而得出训练集与测试集的关系. 课程大纲(Outline): 1.从训练到测试(From Training to Testing) 2.举例说明(Illustrative Examples ) 3.关键概念---- 断点(Key Notion --- Break Point ) 4.难题(Puzzle) 1.从训练

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

课程简介: 本节课主要介绍人工神经网络.通过介绍评定模型,随机梯度下降法,生物启发和感知器系统,讲师用视图和数学解析式详细地讲解了神经网络的运行过程以及原理. 课程大纲: 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