如何防止过拟合?
1.交叉验证
交叉验证是防止过拟合的好方法。K-折验证是一种标准的交叉验证的方法,即将训练数据分成K个子集,用其中一个子集进行验证,用其它子集做训练。
2.用更多的数据进行训练。
用更多相关数据训练模型有助于更好的识别信号,避免将噪声当做信号。
数据增强是增强训练数据的一种方式,可以通过翻转(flipping)、平移(translation)、旋转(ratation)、缩放(scaling)、更改亮度(changing brightness)等方式来实现。
3.移除特征
移除特征能够降低模型的复杂度,并且在一定程度上避免噪声,是模型更加高效。为了降低复杂度,可以移除层或减少神经元数量,是网络变小。
4.早停
对模型进行迭代训练时,我们可以度量每次迭代的指标。当验证损失开始增加时,我们应该停止训练,这样可以阻止过度拟合。
5.正则化
正则化可以降低模型的复杂性。这是通过惩罚损失函数完成的,可以通过和
两种方式完成
惩罚的目的是优化 权重绝对值的和。对于异常值是鲁棒的。
惩罚权重值的平方和,对异常值不具备鲁棒性。
5.Dropout
Dropout是一种正则化方法,用于随机禁用神经网络单元,它可以在任何隐藏层或输入层上实现(仅在全连接层),但不能在输出层上实现。
这种方法可以免除对其它神经元的依赖,进而是网络学习独立的相关性。