台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting

台湾国立大学机器学习基石.听课笔记(第十三讲)
:harzard  of overfitting

1,什么是过拟合(overfitting)

简单的说就是这样一种学习现象:Ein很小,Eout却很大。
Ein Eout都很大的情况叫做 underfitting
这是机器学习中两种常见的问题。

台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第1张图片
上图中,竖直的虚线左侧是"underfitting",左侧是"overfitting”
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第2张图片

1.1,产生过拟合的原因

我们用小车发生事故来比喻:
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第3张图片
我们可以得到,发生overfitting的主要原因是:(1)使用过于复杂的模型(dvc很大);(2)数据噪音;(3)有限的训练数据。

2,噪音与数据规模

2.1、 噪音的影响

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

我们用拟合一个f(x)为R^10的函数做例子进行说明。
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第4张图片
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第5张图片
结果H^2做得拟合更好。

2.2、 数据量对拟合的影响

如下例子说明:
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第6张图片
在上述的例子中,分别用H^2和H^10去拟合,E_in与E_out的差别。我们可知:
如果数据是由我们不知道的某个非常非常复杂的模型产生的,实际上有限的数据很难去代表这个复杂模型曲线。我们采用不恰当的假设去尽量拟合这些数据,效果一样会很差,因为部分数据对于我们不恰当的复杂假设就像是噪音,误导我们进行过拟合。
我们就知道噪声和数据量对拟合H的影响。
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第7张图片

3,随机噪音与确定性噪音 (Deterministic Noise)

我们得到的y,一般包括真实值和噪声,我们用H去拟合,Q_f是拟合的维数。
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第8张图片
以上图的Q_f和噪声拟合f(x),可以得出下图:
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第9张图片
上图是关于2次曲线和10次曲线对数据的拟合情况,我们将overfit measure 表示为E_out(g_10) - E_out(g_2)
那么我们的目标变为看Q_f、噪声和N对拟合的影响。
我们为了更好的得出结果,我们用


下图左右两边分别表示了随机噪音和确定性噪音对于 Overfitting 的影响。
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第10张图片
可见,数据规模一定时,随机噪音越大,或者确定性噪音越大(即目标函数越复杂),越容易发生overfitting。总之,容易导致overfitting的因素是:数据过少;随机噪音过多;确定性噪音过多;假设过于复杂(excessive power)
台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第11张图片
如果我们的假设空间不包含真正的目标函数f(X)(未知的),那么无论如何H无法描述f(X)的全部特征。这时就会发生确定性噪音。它与随机噪音是不同的。
我们可以类比的理解它:在计算机中随机数实际上是伪随机数,是通过某个复杂的伪随机数算法产生的,因为它对于一般的程序都是杂乱无章的,我们可以把伪随机数当做随机数来使用。确定性噪音的哲学思想与之类似。:-)


台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第12张图片

4,解决过拟合问题

台湾国立大学机器学习基石.听课笔记(第十三讲):harzard of overfitting_第13张图片
对应导致过拟合发生的几种条件,我们可以想办法来避免过拟合。
(1)
假设过于复杂(excessive dvc) => startfrom simple model
(2)
随机噪音 =>数据清洗
(3)
数据规模太小 =>收集更多数据,或根据某种规律伪造更多数据
正规化(regularization)也是限制模型复杂度的,在下一讲介绍。



4

4.1 数据清洗(data ckeaning/Pruning)
将错误的label纠正或者删除错误的数据。

4.2 Data Hinting: “伪造更多数据, add "virtual examples"
例如,在数字识别的学习中,将已有的数字通过平移、旋转等,变换出更多的数据。

其他解决过拟合的方法在后面几讲介绍。

你可能感兴趣的:(机器学习)