九浅一深刻理解L2正则化和权重衰减1.L2正则化是什么? 对权重参数的范数惩罚; 在神经网络的损失函数(或目标函数)中加入额外的正则化项2 .什么是权重衰减? 神经网络的损失函数(或目标函数)不变; 在权重参数迭代更新时直接截断一定比例3 .如果使用随机梯度下降优化器(SGD ),则不使用3.1正则化和权重衰减C 0 C_0 C0是正常的损耗函数,例如交叉熵函数损耗函数为
c0wfrac {partialc _0} {partialw } wc0权重参数以坡度更新
w=wc0w=w- alphafrac {partialc _0} {partialw } w=wWC 03.2 l 2正则化损失函数加入正则化项
c=c02(w(2c=c_0(FRAC(lambda )2) ) left(|w ) right(|)2) 2c=C02) w(22
在上述公式中,C0是普通的(非正则化)损耗函数,诸如普通的交叉熵函数; 是正则化参数,c是添加了正则化项的正则化损失函数
归一化损耗函数对权参数求偏导数得到梯度
cw=
∂ C 0 ∂ w + λ w frac{partial C}{partial w}=frac{partial C_0}{partial w}+lambda w ∂w∂C=∂w∂C0+λw权重参数利用梯度进行更新
w = w − α ( ∂ C 0 ∂ w + λ w ) w = ( 1 − α λ ) w − α ∂ C 0 ∂ w w=w-alpha (frac{partial C_0}{partial w}+lambda w)\ w=(1-alpha lambda)w-alpha frac{partial C_0}{partial w} w=w−α(∂w∂C0+λw)w=(1−αλ)w−α∂w∂C0
理解;损失函数加入正则化的意义是什么;
角度1: 相比于3.1中的权重参数更新公式,我们首先通过 ( 1 − α λ ) (1-alpha lambda) (1−αλ)衰减权值w,使权重变小,再利用梯度更新权值,所以L2正则化最终会使网络的权值更小。权值变小意味着,如果我们改变一些随机输入,网络的行为不会有太大的变化,这反过来使正则化的网络很难学习数据中的局部噪声。这迫使网络只学习那些在训练集中经常看到的特征。
角度2: 根据最小化损失函数的逻辑,现在损失函数加入了正则化项后有两部分,所以既要最小化第一部分不,也要最小化第二部分,而最小化第二部分就意味着权重参数更少、数值更小。
w = ( 1 − β ) w − α ∂ C 0 ∂ w w=(1-beta)w - alpha frac{partial C_0}{partial w} w=(1−β)w−α∂w∂C0
其中, β beta β为衰减因子 3.4 对比
使用L2正则化和使用权值衰减的权重参数更新公式的形式是相同的,都是每次更新时使得权值衰减一定的比例,唯一区别是衰减比例的不同
有的分析认为,在SGD情况下,L2正则化被认为等同于权值衰减
4. 使用自适应梯度下降优化器(Adam)时,权重参数如何更新 4.1 不使用正则化和权重衰减 4.2 L2正则化???
4.3 权重衰减 权重参数利用梯度进行更新w = ( 1 − β ) w − α ∂ C 0 ∂ w w=(1-beta)w - alpha frac{partial C_0}{partial w} w=(1−β)w−α∂w∂C0
其中, β beta β为衰减因子 4.4 对比 每个参数的学习率会随着时间变化。这时如果使用L2正则化,正则项的效果也会随之变化;而如果使用权值衰减,那就与当前的学习率无关了,每次衰减的比例是固定的。L2正则化导致具有较大历史参数和/或梯度振幅的权值比使用权值衰减时正则化得更少。当与自适应梯度相结合时,L2正则化导致具有较大历史参数和/或梯度振幅的权值比使用权值衰减时正则化得更少。这导致与SGD相比,当使用L2正则化时adam表现不佳。 5. 结论 L2正则化在使用随机梯度下降优化器(SGD) 表现好,在使用自适应梯度下降优化器(Adam) 时表现不好权值衰减在使用随机梯度下降优化器(SGD) 和自适应梯度下降优化器(Adam) 时表现得一样好
…待更新