[深度学习] 避免过拟合的方法

首先说一下什么叫做过拟合?
[深度学习] 避免过拟合的方法
如上图所示,拟合的参数“完美”学习到了我们给出数据,生成的模型可以完全经过所有数据。但是这样的表现却只是在训练集,在测试集表现不好。而我们所需要的是具有更好泛化能力的黑色直线。

正则化

L2L_2正则化:
C=C0+λ2nωTωC =C_0 +\frac{\lambda }{2n} \omega^T\omega
C0C_0代表原始的代价函数,后面的是正则化项。λ\lambda是正则化系数,权衡正则化和C0C_0的比重。

L2L_2正则化是如何防止过拟合的呢
Cω=C0ω+λnωCb=C0b\frac{\partial C}{\partial \omega} = \frac{\partial C_0}{\partial \omega} + \frac{\lambda}{n}\omega \\ \frac{\partial C}{\partial b} = \frac{\partial C_0}{\partial b}

可以看到L2L_2正则化对b的更新没有影响,但是对于ω\omega的更新有影响。

ωωLearningRateCω\omega \rightarrow \omega - LearningRate * \frac{\partial C}{\partial \omega}

由于加上了正则化项,并且λ>0\lambda>0,所以会导致ω\omega变得更小。

那么为什么ω\omega变小可以防止过拟合?
更小的权值,从某种意义上说,表示网络的复杂度更低,对数据的拟合感刚好。

Dropout

dropout是在训练时随机屏蔽一定比例(超参数)的隐藏层单元,并保持输入和输出层不变。下一次epoch的时候,再次随机屏蔽一定比例的隐藏层单元。注意,第一次屏蔽的隐藏层单元在第二次的时候已经解除屏蔽。
[深度学习] 避免过拟合的方法[深度学习] 避免过拟合的方法

数据增强

  1. 对图片进行翻转
  2. 随机的切割或者放大缩小图片
  3. 色彩抖动:随机增加亮度和对比度
  4. 随机层:在训练时随机忽略一些层,在测试时使用全部层。(最近新提出的)
[深度学习] 避免过拟合的方法

参考

https://www.cnblogs.com/alexanderkun/p/6922428.html