L2正则与权重衰减

L2正则与权重衰减

首先要清楚这俩概念的区别和联系:

权重衰减是优化器中做的一种具体策略,其目的是让网络参数(权重)得到不同程度的衰减。具体来说,权重越大,希望衰减地越快。

L2正则是数学上 对最优化式的一种约束手段,采用L2范数对变量进行约束,可以达到一些想要的效果。

二者的联系:(下面会证明)

在不引入动量的SGD系优化器中,权重衰减完全等价于L2正则。

对于引入动量的SGD优化器中,权重衰减约等于L2正则,其差别实际可忽略不计。

而对于Adam系优化器,权重衰减不能认为等价于L2正则。

1. 对于不引入动量的SGD系优化器,由L2正则推导权重衰减:

我们要对原优化式做L2正则,则一定要把原来的梯度改写成(1-1)这样带L2正则的梯度:
L ′ ( x , θ t ) T = L ( x , θ t ) T + ω 2 ∣ ∣ θ t ∣ ∣ 2 2 对 θ 求偏导得: ∇ θ t L ′ ( x , θ t ) T = ∇ θ t L ( x , θ t ) T + ω θ t (1-1) L^{'}(x,θ_t )^T=L(x,θ_t )^T+\frac{\omega}{2}||θ_t||_2^2\\ \tag{1-1} 对θ求偏导得:\\ ∇_{θ_t}L^{'}(x,θ_t )^T=∇_{θ_t}L(x,θ_t )^T+\omegaθ_t L(x,θt)T=L(x,θt)T+2ω∣∣θt22θ求偏导得:θtL(x,θt)T=θtL(x,θt)T+ωθt(1-1)
之后我们把带有L2正则的梯度代入原梯度下降优化式中:
θ t + 1 = θ t − α ∇ θ t L ′ ( x , θ t ) T θ t + 1 = θ t − α ∇ θ t L ( x , θ t ) T − α ω θ t = ( 1 − ω α ) θ t − α ∇ θ t L ( x , θ t ) T (1-2) θ_{t+1}=θ_t-α∇_{θ_t}L^{'}(x,θ_t )^T\tag{1-2}\\ θ_{t+1}=θ_t-α∇_{θ_t}L(x,θ_t )^T-α\omegaθ_t\\ =(1-\omegaα)θ_t-α∇_{θ_t}L(x,θ_t )^T θt+1=θtαθtL(x,θt)Tθt+1=θtαθtL(x,θt)Tαωθt=(1ωα)θtαθtL(x,θt)T(1-2)
至此 我们发现,其实L2正则在求导之后其实就是这样(1-2)嘛。。。也很容易实现,那我们就把(1-2)叫做权重衰减,各种框架的优化器中也是这么实现权重衰减。

因此,容易证明,对于不带动量的SGD系优化,L2正则和权重衰减是等价的。

2. 对于动量SGD系优化器:

根据(1-1)和引入动量的SGD优化器迭代式,很容易推出加入L2正则化和动量的SGD表达式:
引入 L 2 正则的动量 S G D : v t ′ = β v t − 1 ′ + g t ′ θ t + 1 = θ t − α v t ′ 展开 v t ′ 的递推公式: v t ′ = β 1 g 1 ′ + β 2 g 2 ′ + . . . + β t − 1 g t − 1 ′ + g t ′ = β 1 ( g 1 + ω θ t ) + β 2 ( g 2 + ω θ t ) + . . . + β t − 1 ( g t − 1 + ω θ t ) + g t + ω θ t = β v t − 1 + g t + ( 1 + β 1 + β 2 + . . . + β t − 1 ) ω θ t = v t + ( 1 + β 1 + β 2 + . . . + β t − 1 ) ω θ t 把推理后的 v t ′ 代入参数更新公式: θ t + 1 = θ t − α [ v t + ( 1 + β 1 + β 2 + . . . + β t − 1 ) ω θ t ] = [ 1 − ( 1 + β 1 + β 2 + . . . + β t − 1 ) ω α ] θ t − α v t (1-3) 引入L2正则的动量SGD:\\ v_t^{'}=βv_{t-1}^{'}+g_{t}^{'} \\ θ_{t+1}=θ_t-αv_t^{'}\tag{1-3}\\ 展开v_t^{'}的递推公式:\\ v_t^{'}=β^{1}g_{1}^{'}+β^{2}g_{2}^{'}+...+β^{t-1}g_{t-1}^{'}+g_{t}^{'}\\ =β^{1}(g_{1}+\omegaθ_t)+β^{2}(g_{2}+\omegaθ_t)+...+β^{t-1}(g_{t-1}+\omegaθ_t)+g_{t}+\omegaθ_t\\ =βv_{t-1}+g_{t}+(1+β^{1}+β^{2}+...+β^{t-1})\omegaθ_t\\ =v_t+(1+β^{1}+β^{2}+...+β^{t-1})\omegaθ_t\\ 把推理后的v_t^{'}代入参数更新公式:\\ θ_{t+1}=θ_t-α[v_t+(1+β^{1}+β^{2}+...+β^{t-1})\omegaθ_t]\\ =[1-(1+β^{1}+β^{2}+...+β^{t-1})\omegaα]θ_t-αv_t 引入L2正则的动量SGDvt=βvt1+gtθt+1=θtαvt展开vt的递推公式:vt=β1g1+β2g2+...+βt1gt1+gt=β1(g1+ωθt)+β2(g2+ωθt)+...+βt1(gt1+ωθt)+gt+ωθt=βvt1+gt+(1+β1+β2+...+βt1)ωθt=vt+(1+β1+β2+...+βt1)ωθt把推理后的vt代入参数更新公式:θt+1=θtα[vt+(1+β1+β2+...+βt1)ωθt]=[1(1+β1+β2+...+βt1)ωα]θtαvt(1-3)
**(1-3)就是引入L2正则的动量优化器准确权重更新式,**其与(1-2)的区别就是衰减权重从ω变成了(1+…)ω。对于动量法,ω一般取0.9,当更新次数足够多时衰减权重约等于不变。所以认为,如果用(1-2)式替代(1-3)来对动量优化器进行权重衰减和L2正则化区别不大。

3. 对于Adam系优化器:

Adam优化器的权重迭代公式:
v t = β 1 v t − 1 + ( 1 − β 1 ) g t s t = β 2 s t − 1 + ( 1 − β 2 ) g t 2 v t ^ = v t 1 − β 1 s t ^ = s t 1 − β 2 θ t = θ t − 1 − α v t ^ s t ^ + ε . g t (1-4) v_t=\beta_1 v_{t-1}+(1-\beta_1)g_t\\ s_t=\beta_2 s_{t-1}+(1-\beta_2)g_t^2 \\ \widehat{v_t}=\frac{v_t}{1-\beta_1}\\ \widehat{s_t}=\frac{s_t}{1-\beta_2}\\ θ_{t}=θ_{t-1}-\frac{α\widehat{v_t}}{\sqrt{\widehat{s_t}}+\varepsilon}. g_t\tag{1-4} vt=β1vt1+(1β1)gtst=β2st1+(1β2)gt2vt =1β1vtst =1β2stθt=θt1st +εαvt .gt(1-4)
按照上面的思路,把gt换成gt’,想象一下最后的更新公式会是啥样。反正和【权重衰减】差挺多的应该…

数学不好,时间有限,咱就不推了哈,逃~

4. 小节

证明推理不是重点,关键是要记住:L2正则化和权重衰减不一定等价!L2正则化就是(1-1)式,权重衰减就是指(1-2)式。

只是恰好对于无动量的SGD来说二者是严格等价的。

你可能感兴趣的:(机器学习,数学建模,算法,深度学习,网络,人工智能,神经网络)