MachineLearning(Hsuan-Tien Lin)第十三讲

Hazard of Overfitting

什么是overfitting

这一讲说的是过拟合问题,Andrew在Week3(下)也说过过拟合。这里做些简单回顾。

如下图,对于一个一维空间,五个点做回归。目标是蓝色的二次函数,它的效果是差不多点都在线上,有一小部分在线附近

但是,你用一个四次函数来拟合(红色的线),所有点都精准的落在线上。看似这样的结果很满意,但是机器学习的目的是为了预测没有看过的点。在看过的点中表现太好Ein=0,连噪声点都考虑了,可能在没看过的点上表现会很差,Eout很大。这样就造成bad generalization不好的泛化能力,low Ein, high Eout。

前面分析过的dvc就是特征个数。如果特征很多,模型很复杂,Ein就会很小,但是Eout就很大了。反之,如果特征太少,模型很很简单,给的点拟合效果很差,Ein就会很大。

对于过拟合产生的原因,林老师用了一个开车的例子,我们用学习的例子。

有两个学生A和B,老师给他们都发了一本作业题让他们花一个小时看,然后考试。A的做法就是一个小时背下全部的题目,B的做法就是半个小时背一部分题目,剩下半个小时想这些题目里面的原理。考试题目有两个部分。一部分考发的那本作业题上面的题目,还有一部分考新题目。A同学第一部分得了满分,第二部分得了0分,A同学综合是不及格。B同学第一部分得了80,第二部分得了70,B同学及格。

Overfitting和上述的学习情况的关系:

从这里看出,机器学习的泛化能力就是上述学习中的解决新问题的能力。对于最后一条解释下,如果数据无穷多,那么不管怎么拟合都不可能全都拟合到一条线上。同样,如果对题目的原理哪怕就知道一点点,就不会做到完全的死记硬背不思考。

噪声和过拟合的关系

现在给了两个数据集,如下图,左边的是有noise的,右边的是没有noise的

蓝色的线表示这两个数据集的目标函数。

左边的目标函数是一个10次函数,右边的目标函数是50次函数。

假设上面参加考试的两个学生A和B,有一天,老师教了怎么求二次函数。学生A就是按照老师说的搞懂了如何求二次函数。学生B比较厉害些,他经过思考,不仅会求二次还会三次四次……十次函数。现在,老师布置了任务,让他们求上面两个数据集的目标函数。

下图是A和B求得的结果,绿色线是学生A求得的二次函数,红色线是学生B求得的十次函数。老师对他们的线分别算了算Ein和Eout。 

分析下上面的情形,对于左边的图而言,数据是有噪声的。学生B用了比较复杂的模型,把噪声都拟合到了线上,这样必然Ein很小,但是因为受噪声干扰,模型不能真实描述训练数据,因此在新数据上,模型的表现肯定不会好,即Eout比较大。这里的noise是随机noise(stochastic noise)。

对于右边的图而言,没有噪声。但是它的模型是个50次函数。所以,当用10次函数来拟合的时候,搞不好就弄成了这样:

可以看到,因为模型本身就比较复杂,而数据点可能都不够。所以采用模型的时候,有可能就帮倒忙,如对绿色的点预测时,采用的模型误差十分大。

如果采用简单的模型,如蓝色的线,搞不好都没差那么多。

当然上面的点画的比较特殊,看上去好像就偏袒低次函数。这样画主要是为了说明,当目标函数很复杂时,而点又不太够,对于我们采用的模型而言,会使Eout更大。这里虽然没有noise,但是因为求得的模型是10次而不是真的50次函数,模型偏差使一些数据点产生了noise的功能,这些点叫deterministic noise(确定的noise)。

所以,从上面来看,不管哪种情况都是采用10次函数的时候产生过拟合。这个结论,的确让人很吃惊。对于A和B两个学生而言,B学生明显厉害很多,但是只会二次函数的A学生却赢了。林老师用了一个很有意思的词“以退为进”,个人觉得很对O(∩_∩)O~ 

从Ein和Eout曲线来分析下:

对于二次函数而言,Ein比较大,拟合效果的确差些。10次函数的Ein要小。但是,看灰色的区域,显然二次函数的Ein和Eout要接近很多,而10次的Ein和Eout差很多。所以,当N不是很大时,低次函数的效果就很好了。

可是,如果不知道目标函数,从那1次函数试起,可能会试到二次函数。但是如果我们知道目标函数大概50次,直觉都会选高次函数来解。所以,直觉真的没有那么准!

模型和过拟合

主要讨论模型和过拟合的关系

y在有噪声情况下按f(x)产生的。σ^2是噪声水平。Qf表示模型的复杂度。

数据点的产生是按f(x)。f(x)是Qf次函数,但是我们在假设集合h中要找到Qf次函数其实不太容易,用训练数据训练的时候,我们找到了比Qf次少很多的函数,发现它效果就不错了,就当成了Qf次函数。这样就产生了deterministic noise,因为模型不是真的Qf次函数,就使数据点产生了noise的功能。在andrew的week3(下)推导过E(MSE)(推导过程可以返回去看看)。得出下面的公式:

反映在数据产生公式上就是:

一个模型h和实际的f相比有三个误差。Var(noise)就是随机噪声产生的误差,而bias就是deterministic noise的误差,如10次模型来做目标函数是50次的数据的时候,产生的bias。这个bias是模型产生的误差,目标函数太复杂,而选的模型不恰当导致的。

我们希望Noise只是某个强度σ^2的高斯noise,即stochastic noise,因为这样的noise是无法避免的。

所以,数据点的产生过程做两件事,一件事是希望得到真的Qf次函数。第二事就是Noise是某个强度σ^2的高斯noise。

过拟合就与这两件事及数据集大小有关,分开看:过拟合与的关系,过拟合与的关系。

因为Ein(g10)≤Ein(g2),我们就看Eout(g10)-Eout(g2)差多远,如果差很远就就overfit(很容易理解,g10的Ein做的那么好,结果Eout比g2的糟糕很多,肯定就是overfit了。)

Eout(g10)-Eout(g2)是overfit测量

固定Qf=20时:

红色的就是overfit,蓝色的就是没有overfit。左上角overfit很多,因为noise很多,数据点不够多。这个就是overfit受stochastic noise影响的图。

固定σ^2=0.1时,发现发生noise的地方也是左上角。

这个就是overfit受deterministic noise影响的图。

由这两幅图可以总结出,overfit发生的情况:

(1)N不够的时候

(2)stochastic noise比较多的时候

(3)deterministic noise比较多的时候

(4)excessive power  上幅图绿色椭圆圈起来的部分告诉我们,dvc太多的时候,也会overfit。(纵坐标是Qf,就是特征的多项式的组合情况)

所以,overfit很容易发生。

Deterministic Noise

这个图中蓝色和红色线夹起来的几个区域就是Deterministic Noise。所以,从假设集合h中选出的h*不同,对于同一个数据集的Deterministic Noise是不同的。Deterministic Noise和stochastic noise好像也没什么不一样,不过它更类似pseudo-random generator(网上搜的:伪随机数发生器用于在系统需要随机数的时候,通过一系列种子值计算出来的伪随机数。因为生成一个真正意义上的“随机数”对于计算机来说是不可能的,伪随机数也只是尽可能地接近其应具有的随机性,但是因为有“种子值”,所以伪随机数在一定程度上是可控可预测的。发生器会先产生一个种子值,这个数字通常是设备启动或者软件开始运行的具体时间,有的时候也会从用户输入的内容中产生,因为这些数字难以产生第二次,因此显得比较随机。)

Deterministic Noise与stochastic noise区别:Deterministic Noise和h有关,同样的x有相同Deterministic Noise。

从上面overfit产生的状况看,要想得到好的h,应该优先考虑简单模型。

Overfit解决方案

(1)从简单的模型开始

(2)data cleaning/pruning:有noise不太准

你怀疑左上角的红色x是noise,可以做data cleaning,即把那个点的标签改为蓝色的o

也可以做data pruning,即把那个点丢掉。

(3)data hinting:

当数据点不够多时,比如要做数字的辨识,发现3的图片不够,那就把有的3的图片稍微旋转、平移变一点产生新的图片。由此产生的新图片叫virtual example。但是不能把6旋转180度变成9,自己构造的数据变化不能太大,结果也不能变掉。

注意:

(4)Regularization(14讲会讲到)

(5)Validation(15讲会讲到)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值