深度学习(八)~神经网络正则化方法
神经网络正则化方法
在传统的机器学习中,提高泛化能力的方法主要是限制模型复杂度,比如采用L1和L2正则化等方式。而在训练深度神经网络时,特别是在过度参数化时,L1和L2的效果往往不如浅层机器学习模型中显著。因此训练深度学习模型时,往往还会使用其他正则化方法。
1. L1和L2正则化
λ为正则化系数,p=1 or 2
折中方法:弹性网络正则化
2. 权重衰减(Weight Decay)
α是学习率,gt是第t步更新的梯度,β为权重衰减系数,一般取值比较小,比如0.0005.
3. Early Stopping
4. Dropout
训练深度神经网络时,可以随机丢弃一部分神经元防止过拟合
对于一个神经层y=f(Wx+b)引入掩蔽函数mask(*),使得y=f(Wmask(x)+b)
- 当在RNN上应用丢弃法时,不能直接对每个时刻的隐状态进行随机丢弃,这样会损害RNN在时间维度上的记忆能力。一种方法是对非时间维度的连接(即非循环连接)进行随即丢失。
5. 数据增强(Data Augmentation)
例如图像数据增强主要通过算法对图像进行转变,引入噪声等方法来增加数据的多样性。增强的方法如下:
(1) 旋转(Rotation)
(2) 翻转(Flip)
(3) 缩放(Zoom In/Out)
(4) 平移(Shift)
(5) 随机噪声(Noise)
6. 标签平滑(Label Smoothing)
区别于独热编码[0,0,0,0,1,0,0,0,]→[0.01,0.02,0.01,0.01,0.7,0.15,0.05,0.05]
缺点: 无法表示语义之间的关联性,也可能导致某词权重越来越大,其他的始终为0