机器学习基石HOW BETTER部分(1)

机器学习基石HOW BETTER部分(1)


标签:机器学习基石

第十三章

overfitting happens with excessive power, stochastic/deterministic noise, and limited data

underfitting: EIN Eout 都很大。
overfitting: EIN 很小,但是 Eout 很大。

fitting

上图中,竖直的虚线左侧是underfitting,右侧是overfitting。
发生overfitting 的主要原因是:
1. 使用过于复杂的模型( dvc 很大);
2. 数据噪音;
3. 有限的训练数据。

把机器学习和开车进行比较吧,这样更加形象。

机器学习开车
过拟合出车祸
使用过于复杂的模型开得太快
数据噪音道路情况不好
有限的训练数据对道路的了解不足

噪音和数据规模造成过拟合

我们可以理解地简单些:有噪音时,更复杂的模型会尽量去覆盖噪音点,即对数据过拟合!
这样,即使训练误差 Ein 很小(接近于零),由于没有描绘真实的数据趋势, Eout 反而会更大。
即噪音严重误导了我们的假设。

还有一种情况,如果数据是由我们不知道的某个非常非常复杂的模型产生的,实际上有限的数据很难去“代表”这个复杂模型曲线。我们采用不恰当的假设去尽量拟合这些数据,效果一样会很差,因为部分数据对于我们不恰当的复杂假设就像是“噪音”,误导我们进行过拟合。所以还不如用简单的模型去解决。
如下面的例子,假设数据是由50次幂的曲线产生的(下图右边),与其通过10次幂的假设曲线去拟合它们,还不如采用简单的2次幂曲线来描绘它的趋势。
overfit

learning curves
从图中可以看出,数据量少时,尽管2次假设的比10次函数的大很多,但是2次假设中和的差距比10次假设小的多,因此在样本点不多时,低次假设的学习泛化能力更强,即在灰色区域(样本不多的情况下)中,高次假设函数发生了过拟合。

上述阐述了在含有噪音的情况下,低次多项式假设比和目标函数同次的多项式假设表现更好,那如何解释在50次多项式函数中也是二次式表现好的现象呢?因为50次目标函数对于不论是2次假设还是10次假设都相当于一种含有噪音的情况(两者都无法做到50次的目标函数,因此相当于含有噪音,复杂的50次目标函数产生的数据对于2次假设和10次假设而言是含有噪音的)。

随机噪音与确定性噪音 (stochastic noise and deterministic noise)

噪音一般指随机噪音(stochastic noise),服从高斯分布,,称作高斯噪音,其强度为 σ2 ;还有另一种“噪音”,就是前面提到的由未知的复杂函数f(X)产生的数据,对于我们的假设也是噪音,这种是确定性噪音(Deterministic Noise)
zaoyin

上图是关于2次曲线和10次曲线对数据的拟合情况,我们将overfit measure 表示为 Eout(g10)Eout(g2)

数据样本由两个部分组成,一是目标函数产生,和在此之上夹杂的噪音。函数使用复杂度 Qf 表示,即 Qf 次多项式函数。
分别固定复杂度 Qf 和噪音强度 /sigma2 得到下面的两幅图。
1
左图是随机噪音对于overfitting的影响,右图是确定性噪音。
* 左图表示在固定复杂度 Qf=20 时,噪音强度 /sigma2 与样本数据量N对拟合度的影响,图中的颜色表示过拟合程度,深红色的部分表示过拟合,蓝色表示表现好,从图中得知在噪音强度越大与样本数据量N越小时,过拟合越严重。
* 右图表示在固定噪音强度 /sigma2 时,复杂度 Qf=20 与样本数据量N对拟合度的影响,从图中得知在复杂度 Qf=20 越大且样本数据量N越小时,过拟合越严重。
* 两图共同表示数据规模一定时,随机噪音越大,或者确定性噪音越大(即目标函数越复杂),越容易发生overfitting。

总之,导致overfitting 的因素是:
1. 数据过少;
2. 随机噪音过多;
3. 确定性噪音过多;
4. 假设过于复杂(excessive power)。

确定性噪音的图表示:
确定性噪音
其中蓝色曲线表示目标函数,红色曲线表示2次式函数模型学习到的曲线,其中蓝色曲线的弯曲的形状使用2次函数是不可能模仿的,因此就相当于一种噪音(灰色部分)。为什么使用低次函数学习效果却好呢?;这类似于教小孩学习学习简单的问题反而有助于成长。

解决过拟合问题

对应导致过拟合发生的几种条件,我们可以想办法来避免过拟合。

过拟合发生的原因避免过拟合的方法
使用过于复杂的模型从简单的模型开始
数据噪音数据清洗/裁剪(data cleaning/pruning)
有限的训练数据收集更多数据(data hinting)

正规化(regularization)和确认(validation)在下一讲介绍。

数据清洗/裁剪(data ckeaning/Pruning)

以手写数字数据为例,介绍数据清理和数据裁剪,图为手写数字为1的使用O表示;手写数字为5的使用X表示。其中在数字1中存在一个数字5的样本点,即图中左上角中的,查看该样本的原图很难看出是数字5,类似这种离不同类别很近,离相同类别很远的样本,可以认为是噪音或者是离群点(outlier)。应对该种情况,有两种措施可用:纠正标识号,即数据清理(data cleaning)的方式处理该情况;删除错误样本,即数据裁剪(data pruning)的方式处理。处理措施很简单,但是发现样本是噪音或离群点却比较困难。
5

Data Hinting:

“伪造”更多数据, add “virtual examples”
手写数字集略作修改产生更多的手写数字样本,达到增加数据量N的目的。如将手写数字略作旋转(rotating)和平移(shifting),但要注意旋转和平移的幅度都不能太大,如6转180°就成了9。还需注意这种方式产生的虚拟样本(virtual examples),不在符合独立同分布,因此产生的虚拟样本与实际样本差距一定不宜太大。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值