台湾国立大学机器学习基石.听课笔记(第十三讲)
:harzard of overfitting
1,什么是过拟合(overfitting)
简单的说就是这样一种学习现象:Ein很小,Eout却很大。
而Ein和 Eout都很大的情况叫做 underfitting。
这是机器学习中两种常见的问题。
上图中,竖直的虚线左侧是"underfitting",左侧是"overfitting”。
1.1,产生过拟合的原因
我们用小车发生事故来比喻:
我们可以得到,发生overfitting的主要原因是:(1)使用过于复杂的模型(dvc很大);(2)数据噪音;(3)有限的训练数据。
2,噪音与数据规模
2.1、 噪音的影响
我们可以理解地简单些:有噪音时,更复杂的模型会尽量去覆盖噪音点,即对数据过拟合!这样,即使训练误差Ein很小(接近于零),由于没有描绘真实的数据趋势,Eout反而会更大。
即噪音严重误导了我们的假设。
我们用拟合一个f(x)为R^10的函数做例子进行说明。
结果H^2做得拟合更好。
2.2、 数据量对拟合的影响
如下例子说明:
在上述的例子中,分别用H^2和H^10去拟合,E_in与E_out的差别。我们可知:
如果数据是由我们不知道的某个非常非常复杂的模型产生的,实际上有限的数据很难去“代表”这个复杂模型曲线。我们采用不恰当的假设去尽量拟合这些数据,效果一样会很差,因为部分数据对于我们不恰当的复杂假设就像是“噪音”,误导我们进行过拟合。
我们就知道噪声和数据量对拟合H的影响。
3,随机噪音与确定性噪音 (Deterministic Noise)
我们得到的y,一般包括真实值和噪声,我们用H去拟合,Q_f是拟合的维数。
以上图的Q_f和噪声拟合f(x),可以得出下图:
上图是关于2次曲线和10次曲线对数据的拟合情况,我们将overfit measure 表示为E_out(g_10) - E_out(g_2)。
那么我们的目标变为看Q_f、噪声和N对拟合的影响。
我们为了更好的得出结果,我们用
下图左右两边分别表示了随机噪音和确定性噪音对于
Overfitting
的影响。
可见,数据规模一定时,随机噪音越大,或者确定性噪音越大(即目标函数越复杂),越容易发生overfitting。总之,容易导致overfitting的因素是:数据过少;随机噪音过多;确定性噪音过多;假设过于复杂(excessive power)。
如果我们的假设空间不包含真正的目标函数f(X)(未知的),那么无论如何H无法描述f(X)的全部特征。这时就会发生确定性噪音。它与随机噪音是不同的。
我们可以类比的理解它:在计算机中随机数实际上是“伪随机数”,是通过某个复杂的伪随机数算法产生的,因为它对于一般的程序都是杂乱无章的,我们可以把伪随机数当做随机数来使用。确定性噪音的哲学思想与之类似。:-)
4,解决过拟合问题
对应导致过拟合发生的几种条件,我们可以想办法来避免过拟合。
(1) 假设过于复杂(excessive dvc) => startfrom simple model
(2) 随机噪音 =>数据清洗
(3) 数据规模太小 =>收集更多数据,或根据某种规律“伪造”更多数据
正规化(regularization)也是限制模型复杂度的,在下一讲介绍。
4
4.1 数据清洗(data ckeaning/Pruning)
将错误的label纠正或者删除错误的数据。
4.2 Data Hinting: “伪造”更多数据, add "virtual examples"
例如,在数字识别的学习中,将已有的数字通过平移、旋转等,变换出更多的数据。
其他解决过拟合的方法在后面几讲介绍。