过拟合的危害

| 研究学术  | 机器学习基础  正则化  数据清洗 

初识过拟合

[左]:好的拟合;[右]:过拟合
图 1: [左]:好的拟合;[右]:过拟合 [PNG]
  • 差的泛化(bad generalization):低的$E_{in}$高的$E_{out}$,$E_{out}-E_{in}$很大;
  • 过拟合(overfitting):$E_{in}$降低时$E_{out}$升高;
  • 欠拟合(underfitting):$E_{in}$升高时$E_{out}$也在升高。

上图右采用了4次多项式变换$\Phi$和$\mathcal Z$空间的线性拟合,$N=5$个点时存在唯一解1,$E_{in}=0$,过拟合了。

泛化能力描述的是既成的状态,过拟合描述的是变化过程。解决欠拟合可采用非线性特征变换,解决过拟合更复杂。过拟合主要受噪声和数据量的影响。

过拟合的特性

[左]:10次多项式的含噪数据;[右]:50次多项式的无噪数据
图 2: [左]:10次多项式的含噪数据;[右]:50次多项式的无噪数据 [PNG]

上图展示了分别用2次和10次多项式拟合1含噪和无噪数据的效果。结果有些意外,2次多项式的性能都要优于10次多项式。

下图的学习曲线表明,当数据量$N$较小时,10次多项式的$E_{in}$和$E_{out}$之间差距较大,泛化误差更大,这和VC界一致,因为10次多项式的$d_{VC}$较大。因此,当数据量较少时,用简单的模型更合适得到较好的结果。

对于上图右不带噪声的数据,10次多项式的表现仍然很差。这是由于目标函数过于复杂,生成的数据很像噪声。可以这样理解,50次多项式生成的无噪数据和10次多项式生成的数据加入噪声相似。

2次和10次多项式的学习曲线
图 3: 2次和10次多项式的学习曲线 [PNG]

假设数据产生的方式为 \[ y=f(x)+\epsilon\sim\mbox{Gaussian}\left(\sum_{q=0}^{Q_f}\alpha_qx^q,\sigma^2\right), \]

$\sigma^2$表示产生噪声的等级,$Q_f$是模型的复杂度,数据集的大小为$N$。

不同参数影响下的过拟合图谱(越红过拟合越厉害)
图 4: 不同参数影响下的过拟合图谱(越红过拟合越厉害) [PNG]

实验时确保能产生包含模型最高次的数据,过拟合采用$E_{out}(g_{10})-E_{out}(g_{2})$度量。上图分别展示了固定模型复杂度和噪声等级下的过拟合图谱,红色表示过拟合强,蓝色表示过拟合弱。上图左固定住模型复杂度,通过$\sigma^2$产生的噪声称为随机噪声(stochastic noise);上图右固定住噪声等级,通过模型复杂度$Q_f$导致的“噪声”称为确定性噪声(deterministic noise)。

事实上,过拟合很容易发生:

  • 当数据量$N$少的时候,
  • 当随机噪声大的时候,
  • 当确定性噪声大的时候,
  • 当模型复杂$d_{VC}$大的时候,

这几种情况都容易发生过拟合。

确定性噪声大表示目标函数太复杂,机器难以学会。复杂模型产生的数据就像就像含有随机噪声一样,它就像伪随机数发生器(pseudo-random generator)。确定性噪声与随机噪声不同的地方包括:(1)当$\mathcal H$变复杂时,确定性噪声会减小;(2)固定$\mathbf x$后,确定性噪声也是固定的。

克服过拟合

克服过拟合的方法:

  • 从简单的模型开始尝试;
  • 数据清洗或剪枝;
  • 根据已有数据生成更多数据(data hinting);
  • 正则化
  • 验证(validation)。

一、数据清洗或剪枝

可以利用异常检测的方法,探测出离群点,然后改变类别标签(数据清洗)或者移除异常点(数据剪枝),通常探测离群点的方法包括:

  • 离本类很远,离其它类却很近;
  • 被当前分类器错误分类;
  • ……

数据清洗或剪枝对性能的影响难以把握,有时对提升效果可能非常微弱。

二、数据生成(data hinting)

根据已有数据或已知规则产生新的数据。比如字符识别的时候,通过旋转等方式生成新的字符样本。

但是需要注意,新加入的样本不再是来自原来的概率分布,不再是i.i.d.(independent identically distributed)。

参考资料

    脚注

    1. 4次多项式变换在$N=5$个点时存在唯一解?不对吧! 


    打赏作者


    上一篇:非线性特征变换     下一篇:正则化