首先说一下什么叫做过拟合?
![[深度学习] 避免过拟合的方法 [深度学习] 避免过拟合的方法](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc5MS8yYTg1MzkwNWI3NDEzNWVmZmI5NTI4NTJiYmEzODc3Zi5KUEVH)
如上图所示,拟合的参数“完美”学习到了我们给出数据,生成的模型可以完全经过所有数据。但是这样的表现却只是在训练集,在测试集表现不好。而我们所需要的是具有更好泛化能力的黑色直线。
正则化
L2正则化:
C=C0+2nλωTω
C0代表原始的代价函数,后面的是正则化项。λ是正则化系数,权衡正则化和C0的比重。
L2正则化是如何防止过拟合的呢
∂ω∂C=∂ω∂C0+nλω∂b∂C=∂b∂C0
可以看到L2正则化对b的更新没有影响,但是对于ω的更新有影响。
ω→ω−LearningRate∗∂ω∂C
由于加上了正则化项,并且λ>0,所以会导致ω变得更小。
那么为什么ω变小可以防止过拟合?
更小的权值,从某种意义上说,表示网络的复杂度更低,对数据的拟合感刚好。
Dropout
dropout是在训练时随机屏蔽一定比例(超参数)的隐藏层单元,并保持输入和输出层不变。下一次epoch的时候,再次随机屏蔽一定比例的隐藏层单元。注意,第一次屏蔽的隐藏层单元在第二次的时候已经解除屏蔽。
![[深度学习] 避免过拟合的方法 [深度学习] 避免过拟合的方法](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQxNC80OWEwZjUwM2Y1MTg1MGQ3NjZhOTQ2NTljYmUwOWNhNi5wbmc=)
![[深度学习] 避免过拟合的方法 [深度学习] 避免过拟合的方法](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzM5MS83MzgxNTAyYjVlMTExNzJkOWEwN2IzMTFiM2RhYTM4Zi5wbmc=)
数据增强
- 对图片进行翻转
- 随机的切割或者放大缩小图片
- 色彩抖动:随机增加亮度和对比度
- 随机层:在训练时随机忽略一些层,在测试时使用全部层。(最近新提出的)
![[深度学习] 避免过拟合的方法 [深度学习] 避免过拟合的方法](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc5LzdhZWIwZjZiNzRjZWIwOGQyNTZiMmI1NjRiYTI0YjQ3LnBuZw==)
参考
https://www.cnblogs.com/alexanderkun/p/6922428.html