过拟合的解决方法:
1、正则化(L1,L2)
L1:全部权重W的绝对值之和,乘以λ/n,
L2:又名权重衰减。(全部权重W的平方和)/(训练集样本总数n)。λ是一个比例系数,表示正则项与原始loss(C0)的一个比重。1/2为了方便计算而已。
L1、L2正则都可以让学习到的权重W变小,在某种意义上可以降低模型的复杂度。
只不过L1通过绝对值最小的方式实现,而L2通过平方和最小的方式实现。
L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。两者的下降速度不同。L1在特征选择时候非常有用,而L2就只是一种规则化而已。
2、数据增强
镜像反转,随机旋转,加噪声等。
3、随机失活
训练过程中让一些神经元随机失活,也就是说关闭某些神经元,不进行参数更新。
4、早停策略(early stopping)
Early stopping通过提前终止训练来防止过拟合,即在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。
Early stopping方法的具体做法是,在每一个轮训练结束时计算出在验证集上的准确率,当验证集的准确率不在提高时,终止训练过程。
终止条件并不是准确率一次下降就终止,而是在之后的几轮(10?15?20?)训练中准确率依然没有提升。此时可以终止训练。
5、添加BN层