[深度学习-知识总结]过拟合以及解决方法

1. 什么是过拟合?

在这里插入图片描述
上图来自于吴恩达老师机器学习课程,第一张图是“欠拟合”(underfit),第三图是过拟合(overfit),第二张图是正好的状态。

有图可以看出来,过拟合就是训练的模型与数据集匹配的太完美,以至于“过了”。

过拟合的危害是:模型不够“通用”,也就是说如果将模型应用在新的数据上,得到的效果不好。

举例说明,如果一个模型在训练集上的准确率达到99.9%,而将模型应用在测试集时,准确率只有80%,很明显这是一个过拟合的状态。

2. 什么原因导致了过拟合?

数据问题

数据太少了,模型没有足够多的意外数据用来使模型更加通用

模型问题

神经网络模型的复杂度太高了!

以至于模型的复杂程度高于问题的复杂程度!

或者说,复杂模型的拟合能力太强拥有了拟合噪声的能力

算法问题

模型权重太多
模型的权重分配差异太大
权重的取值太大
权重太多,导致,模型的复杂度太大

而模型的权重分配差异约大,模型越不够平滑。

想像一个例子,模型a的所有参数都是1,模型b的参数是[1,9999]范围内随机取值,暂不考虑准确度问题,前一个模型一定比后一个平滑的多。

关于权重取值大小的问题,先看下图
在这里插入图片描述
无论是图中的sigmoid函数还是Relu函数,当权重较小时,激活函数工作在线性区,此时神经元的拟合能力较弱

综上所述,我们得出结论:

  1. 模型权重数量不宜太多
  2. 权重的取值范围应尽量一致
  3. 权重越小拟合能力越差

3.防止过拟合的方法

  1. 限制网络结构(Dropout):这个很好理解,减少网络的层数、神经元个数等均可以限制网络的拟合能力;
  2. 限制权重 :Weight-decay或正则化regularization,保持较小的权重有利于使模型更加平滑。

其它防止过拟合的方法
– 参数范数惩罚
– 数据增强
– 提前终止
– Bagging等集成方法
– Dropout
– 批正则化

Dropout

Regularization:

请看这篇文章[机器学习]正则化项L1和L2的学习与理解

参考资料

[1] https://zhuanlan.zhihu.com/p/29592806
[2] https://blog.csdn.net/qq1440643730/article/details/103981920

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章