机器学习基石(林轩田)第十三章 笔记与感悟总结

13.1 Hazard of Overfitting - What is Overfitting

机器学习基石(林轩田)第十三章 笔记与感悟总结

我们可以看出,虽然Ein为0,貌似算法的表现很好但是实际上可以看出,我们的拟合曲线和target一点点也不像!!!!这意味着,我们有很高的Eout。

不好的“举一反三”(generation)。

机器学习基石(林轩田)第十三章 笔记与感悟总结

我们从紫色曲线的最低点开始往右移,我们可以看出来,模型的复杂度在增加,而输入样本的偏差却在不断减小。我们把fitting做的好,Ein下降,但是做过头了会导致Eout增加。

往左走,就会Ein和Eout都增加。

过拟合是一个过程,常见并且很难被检测出。

机器学习基石(林轩田)第十三章 笔记与感悟总结

过拟合好像就是出现汽车车祸。

过多的dvc相当于是开太多。

有噪音想到与是颠簸的路。(路况不好)

有限的数据,意味着对路况不熟悉。

机器学习基石(林轩田)第十三章 笔记与感悟总结


13.2 Hazard of Overfitting - The Role of Noise and Data Size

我们想知道接下来的两幅图片,到底是绿色的更好(低维)还是红色更好(高维)

机器学习基石(林轩田)第十三章 笔记与感悟总结


10次多项式+noise的时候,两者比较之后,发现Ein下降,而Eout增加了,因此发生了Overfitting

50次多项式。。更明显!!!

机器学习基石(林轩田)第十三章 笔记与感悟总结


假设我们的数据本来就是通过10次多项式+少量noise产生的,按理说用10次的来拟合会更好。

然而实际上,仍然是2次更好。

我们明明知道目标是10次多项式,而二次多项式按理说应该没有能力去做这一步。

但是实际上却得到了很好的结果。

因此这代表着一种哲学思想,“以退为进”。concession for advantage

我们明明知道目标是10次多项式!

但是用10次多项式来做,却并不一定会更好!

机器学习基石(林轩田)第十三章 笔记与感悟总结


因此在资料量比较少的时候,那个选择少的方法,反而能够得到很好的结果。

选择多的那个“聪明的”,反而会 聪明反被聪明误。

结论,资料量少的时候,一定要选择多项式拟合少的那种方法。即“笨”一点。

机器学习基石(林轩田)第十三章 笔记与感悟总结

当没有noise,为什么还是h10 还是不好?

答:因为即便没有noise,我们因为抽样的原因,导致抽样的结果很不均衡。故用抽样的结果反推抽样,不会得到很好的结果。就是信号系统的抽样和插值。

机器学习基石(林轩田)第十三章 笔记与感悟总结

13.3 Hazard of Overfitting - Deterministic Noise

什么时候要小心overfit会发生。

想象我们的资料的noise是Gaussian函数产生的。

机器学习基石(林轩田)第十三章 笔记与感悟总结是强度。

目标函数是f,几次的多项式。即为Qf。

加入50次多项式,有51个系数,如果系数随机产生的话,会导致某些特别大,某些特别小。会导致实际上更像维数低的多项式。

为此,我们使用了正规化,在生成多项式前面的系数的时候。

机器学习基石(林轩田)第十三章 笔记与感悟总结

我们想看看这三个系数对overfit到底有什么影响。

机器学习基石(林轩田)第十三章 笔记与感悟总结


横轴是资料量,纵轴是机器学习基石(林轩田)第十三章 笔记与感悟总结。我们把多项式的系数Qf固定为20。

红色表示,机器学习基石(林轩田)第十三章 笔记与感悟总结差的非常大。蓝色怎表示很小,没有什么overfit。

显然资料多,noise少,表现就很好。

机器学习基石(林轩田)第十三章 笔记与感悟总结

资料越复杂(Qf越大),数据越少,那根有noise没什么两样。

当资料量很够,资料也不复杂时,algorithm也会做得很好。

机器学习基石(林轩田)第十三章 笔记与感悟总结


我们把因为高斯分布而造成的noise称为stochastic noise。

把因为数据复杂度增加而造成的noise称为deterministic noise。

我们总结了4条Overfitting发生的原因。

1)数据少2)随机噪声太多3)决定噪声太多4)处理能力太强,例如用50项的去拟合20项的

机器学习基石(林轩田)第十三章 笔记与感悟总结


可以看出,目标函数50次,H是10次,那么肯定不会很好的描述。其中相差的灰色,即为deterministic noise。

我们可以看出,过拟合实际上表现和‘随机噪声’差不多。

我们电脑中的伪随机数生成器(pseudo-random generator),其实就是在用deterministic 方式产生的。

哲学:我们想教机器“简单的”算法,就不要用太复杂的数据集,因为复杂度提升会增加deterministic noise。

机器学习基石(林轩田)第十三章 笔记与感悟总结


13.4 Hazard of Overfitting - Dealing with Overfitting

我们怎么做?才能避免Overfitting。

答:

1)从简单的模型开始(开车速度别太快)

2)数据清洗,洗掉噪音(修路,别坑坑洼洼)

3)增加数据(更加了解路况)

4)正规化(我不一开始就开很慢,可以开快车,但是学会踩刹车)

5)validation(时刻看仪表板)

机器学习基石(林轩田)第十三章 笔记与感悟总结


例如我们可以进行数据清洗。比如将错的数据改成真的,或者直接丢掉。困难的是侦测noise的点。有时候有用,有些例子时会有比较好的效果。

机器学习基石(林轩田)第十三章 笔记与感悟总结


我手里没有更多的资料,但是我们可以对数据进行各种变化,例如轻微的旋转,平移之类的。

这种造出来的数据叫做virtual examples

可以稍微规避一下资料不够多这种情况。

机器学习基石(林轩田)第十三章 笔记与感悟总结

机器学习基石(林轩田)第十三章 笔记与感悟总结

机器学习基石(林轩田)第十三章 笔记与感悟总结