[TOC]
[林轩田]13-过拟合的危害
什么是过拟合
如下图我们本来想要的是蓝色的二次曲线,取了五个点,但是我们使用红色的四次曲线穿过这5个点,使得 $$ E_{in} $$ 很小
但是我们从图像上可以看到 $$ E_{out} $$ 是很大的。
overFitting:
fitting指的是通过学习使得 $$ E_{in} $$ 很小。
overFitting表示 虽然$$ E_{in} $$很小,但是
$$ E_{out} $$却很大。
underFitting:
做得不够好, $ E_{in} $ 较大
过拟合的原因
- 使用的模型比较复杂,
- 有噪声存在
- 数据量有限
从下面的例子我们可以发现,即使我们知道数据是由比较高的次数的多项式生成的,在取得的样本里面有一些noise,我们依然可以用比较低的次数的多项式得到比较fitting的结果。
concession for advantage.(以退为进)
那么为什么会这样呢,我们可以从下面的数据量多模型的影响找到答案。
我们就发现 对于相同的N $$ H_2 $$ 比$$ H_{10} $$的Eout要小。有noise的情况下由于 数据量的影响2次多项式比10次多项式效果好。
在灰色的区域,低次多项式比高次效果要好。
当我们需要学的情况比较复杂的时候,实际上这个复杂度也造成了noise.比如用二次多项式和10次多项式,而我们的目标是50次多项式 ,结果2次多项式依然胜出。
下面的情形都会导致简单的模型比复杂的模型效果好。
精确实验探究overfit程度的影响因素
三个变数 目标函数多项式的次数、高斯噪声的强度、数据量
stochastic noise:随机噪声,指的是添加的噪声
deterministic noise:确定性噪声,指的是目标多项式次数较高(模型复杂)带来的噪声。
excessive power:指的是目标多项式比较低,但是使用的模型却比较复杂造成的。
deterministic 噪声
下图中的灰色区域表示的就是目标多项式复杂度与使用的模型复杂度不一样的时候产生的noise。这个noise与随机噪声的区别有两个
- 与模型的复杂度相关,模型越复杂可能与f的差距越小
- 对于某个给定的点是确定的值,不像随机噪声随着高斯函数的随机变化(因为本来没有噪声)
如果你自己的理解能力比较差,学习的时候就从你能接受的目标学期,这样灰色区域就比较小了。:)
计算deterministic噪声的方法就是计算目标函数和当前能使用的次数多项式集里面使得Ein最小的那一个多项式之间的差距。
过拟合的解决办法
- 从简单的模型开始
- 数据清洗(修改标签或者删除pruning),去除噪声
- 数据提示data hinting,(人工合成数据,来增大N)
- 正则化 规范化 加上惩罚函数比如 L2
- 验证法
我们希望增大数据量,但是有的时候,数据量并不好获得,那么我们可以考虑一下 数据提示data hinting.
data hinting:有时数据资料无法收集太多,那么我们可以从现有的资料,或者你对这个问题的了解去产生新的或者更多的资料,也就是给机器学习算法多一点的提示。
比如,我们做手写数字识别,但是样本很少。我们就可以把有的数据改一下成为新的数据。比如把数字‘3’向左稍微的挪一下,把某数据稍微的旋转一下,以此获得新数据。但是这有缺点,因为我们所有的模型都是假设数据服从iid条件的,即所有数据都是独立的,服从同一分布的。我们这样修改,一定要小心,要不然构造的虚拟样本不服从原来分布就不好了。
hinting可以理解为有科学根据地捏造数据。
其他资料
过拟合的原因+处理方法 - 丁磊_ml的博客