什么是过拟合?
简单理解就是:模型在训练集上表现很好,但是放到测试集上效果就变得很差了
一般的解决方法
1.增加训练数据。但是数据一般很难获得
2.减少网络层数或神经元的数量。但是一不小心就会导致过拟合
3.L2正则化
4.dropout等等
L2正则化
L2正则化的基本思想就是在原始的损失函数中加入一项
这一项就是网络神经元权重的内积的均值,如下:
这样可以使得反向传播之后梯度会更新使得 权重衰减
权重衰减 也就意味着神经网络中的部分神经元的作用会被削弱
这样就有利于解决神经网络过拟合的问题
dropout
dropout 基本原理就是随机地“删除”一些神经元
为一层网络设置一个概率数,用这个概率来控制应保留的神经元的数量
例如某一层的dropout设置的是0.8,那么在每次训练时,该层都会随机地保留80%的神经元参与训练,这一层剩下的20%的神经元相当于处于闲置状态。