【Hazard of Overfitting】林轩田机器学习基石

首先明确了什么是Overfitting

随后,用开车的例子给出了Overfitting的出现原因

出现原因有三个:

(1)dvc太高,模型过于复杂(开车开太快)

(2)data中噪声太大(路面太颠簸)

(3)数据量N太小(知道的路线太少)

这里(1)是前提,模型太复杂:

(1)模型越复杂,就会捕获train data中越多的点(这当中当然包括更多的噪声点)

(2)数据量N太小,根据VC Dimension理论,Eout会增大

这里的noise包括两类:

1. stochoastic noise:

  比如train data就是“10次多项式+正态分布的误差”产生的;如果样本量N不是很大的话,noise带来的影响很可能不能被互相抵消(抵消的意思是+noise, -noise在算error的时候有抵消的作用),这样每个noise就会非常影响曲线的形状;结果就是带来overfitting

2. deterministic noise:

  比如train data是“50次多项式”产生的;即使没有stochastic noise,无论怎么用10次多项式去拟合也无法拟合出50次多项式;

  但是这个时候,由于10次多项式的power比较强,它回去够到尽量多的点,这些点当中难免有些就等于noise了;

  反之,如果用2次多项式去拟合,由于它的power比较弱,在它正常范围内能够到的点比较少,因此train data中的数据点起到stochastic noise的机会就大大减少了

最终的造成的结果,就是如下的两张图了。

如上图,总结了overfitting的四种reasons。

最后,引出了对抗overfitting的几种途径:

最关键的是:一开始尽量从simple model开始尝试

其次再是对train data的各种清洗过滤。

另外,regularization和validation是两种比较重要的防止overfitting的途径。后面有可能重点介绍。

posted on   承续缘  阅读(595)  评论(0编辑  收藏  举报

编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示