【论文笔记】Layer-Wise Weight Decay for Deep Neural Networks

Abstract

本文为了提高深度神经网络的训练效率,提出了逐层权重衰减(layer-wise weight decay)。
本文方法通过逐层设置权重衰减稀疏的不同值,使反向传播梯度的尺度与权重衰减的尺度之比在整个网络中保持恒定。这种设置可以避免过拟合或欠拟合,适当地训练所有层,无需逐层调整系数。
该方法可在不改变网络模型的情况下提升现有DNN的性能。

1 Introduction

很多机器学习研究中,主要通过正则化避免过拟合。在深度学习中,通常使用三种正则化:dropout、数据增强、权重衰减。

本文提出的方法中,不需要任何试错过程就可以设置权重衰减系数,将其公式化,使其在训练时以相同的速率对网络的所有层进行正则化。

权重衰减正则化通过将其加入目标函数来降低网络中连接权重的 L 2 L_2 L2范数。加之前将范数乘以一个事先设定的系数。在正确训练网络时,调整这个系数是很重要的,因为一个很小的系数会导致过拟合,而一个很大的系数会导致欠拟合。 直觉上对所有曾进行同等对待是合理的,同时避免了手动调整每个系数所需的巨大计算成本。但这忽略了反向传播梯度和权重衰减之间的关系。
典型训练方法中,网络通过梯度和权重衰减两个方面进行更新,如图1所示。
![[Pasted image 20240517234356.png]]

图1:采用常数权重衰减系数的问题。反向传播梯度的尺度取决于上层权重的尺度,而权重衰减的尺度只取决于自身权重的尺度。因此,对于每一层,两者的比例是不同的,这导致了过拟合或欠拟合取决于层。

重点关注蓝色折线表示的第一个可训练层的更新,正如红色折线所示,由于反向传播,梯度的尺度取决于上层权重的尺度。相反,权重衰减的尺度仅取决于自身权重的尺度,如图中的蓝色折线所示。这两者之间的比例对于每一层来说都是不同的,这就导致了在某些层上的过拟合或者在另一些层上的欠拟合。因此,需要平衡梯度和权重衰减的尺度。

本文提出了逐层的权重衰减来有效地训练深度神经网络。该方法通过逐层设置不同的权重衰减系数的值,使得反向传播梯度的尺度和权重衰减的尺度在网络中的比例是恒定的。通过这种设置,可以对所有层进行适当的训练,而不必逐层调整系数。

2 Proposed Method

2.1 Overview

SGD梯度更新方法中,网络中的连接权重通过下式更新:
W l t + 1 = W l t − η ( ∂ E ∂ W l ∣ W l t + λ W l t ) (1) W_l^{t+1}=W_l^t-\eta(\frac{\partial E}{\partial W_l}|_{W_l^t}+\lambda W_l^t)\tag{1} Wlt+1=Wltη(WlEWlt+λWlt)(1)
其中 W l t W_l^t Wlt表示 t t t次更新后第 l l l层的连接权重, η \eta η是学习率, E E E是训练时用于最小化的目标函数, λ \lambda λ时权重衰减系数(正则化强度)。 W l t W_l^t Wlt用于第 l l l层的前向传播和反向传播,如图2所示。
![[Pasted image 20240518122313.png]]

图2:第 l l l层的前向传播和反向传播

Eq.1中的更新包含一个梯度项 ∂ E ∂ W l \frac{\partial E}{\partial W_l} WlE,一个正则化项 λ W l t \lambda W_l^t λWlt。梯度通过反向传播计算,其规模取决于 W k t ( k > l ) W_k^t(k>l) Wkt(k>l)的规模。相对地,权重衰减的规模只取决于 W l t W_l^t Wlt。因此,对于每一层,梯度的尺度和权重衰减的规模比例是不同的。如果对所有层都使用相同的 λ \lambda λ,对一些特定曾来说,衰减可能会过强或过弱,导致网络的过拟合或欠拟合。
为避免这个问题,利用逐层权重衰减,梯度的尺度和权重衰减的尺度之间的比值在整个网络中应当是恒定的:
W l t + 1 = W l t − η ( ∂ E ∂ W l ∣ W l t + λ l W l t ) (2) W_l^{t+1}=W_l^t-\eta(\frac{\partial E}{\partial W_l}|_{W_l^t}+\lambda_lW_l^t)\tag{2} Wlt+1=Wltη(WlEWlt+λlWlt)(2)
λ l = scale ( ∂ E ∂ W l ) scale ( W l ) λ (3) \lambda_l=\frac{\text{scale}(\frac{\partial E}{\partial W_l})}{\text{scale}(W_l)}\lambda\tag{3} λl=scale(Wl)scale(WlE)λ(3)
其中 λ l   ( l = 1 , ⋯   , L ) \lambda_l\ (l=1,\cdots,L) λl (l=1,,L)是逐层的权重衰减系数, scale ( ∗ ) \text{scale}(*) scale()代表计算向量或矩阵的规模的函数。除了逐层设置权重衰减以外,本文方法和现有方法的训练网络方法相同。

2.2 Data-Dependent Layer-Wise Weight Decay

训练过程中,每次更新里, λ l \lambda_l λl通过Eq.3计算。定义 scale ( W ) = ave ( ∣ W ∣ ) \text{scale}(W)=\text{ave}(|W|) scale(W)=ave(W),其中 ave ( ∗ ) \text{ave}(*) ave()计算 ∗ * 的平均值。系数过于可变会影响优化性能,因此为了缓解这个问题,将 λ l \lambda_l λl的上下界设置为
λ l = max ⁡ ( ρ m i n , min ⁡ ( ρ m a x , scale ( ∂ E ∂ W l ) scale ( W l ) ) ) λ (4) \lambda_l=\max(\rho_{min},\min(\rho_{max},\frac{\text{scale}(\frac{\partial E}{\partial W_l})}{\text{scale}(W_l)}))\lambda\tag{4} λl=max(ρmin,min(ρmax,scale(Wl)scale(WlE)))λ(4)
其中 ρ m a x λ \rho_{max}\lambda ρmaxλ ρ m i n λ \rho_{min}\lambda ρminλ λ l \lambda_l λl的上下界。实验中设置 ρ m a x = 1 , ρ m i n = 1 0 − 4 \rho_{max}=1, \rho_{min}=10^{-4} ρmax=1,ρmin=104,提升训练过程20%的计算开销。

2.3 Data-Independent Layer-Wise Weight Decay

初始化网络时, W W W通常设置为零平均值随机数,因此可以自然地定义 scale ( W ) = std ( W ) \text{scale}(W)=\text{std}(W) scale(W)=std(W),其中 std ( ∗ ) \text{std}(*) std()表示元素的标准差。将其带入Eq.3,可以得到:
λ l = std ( ∂ E ∂ W l ) std ( W l ) λ (5) \lambda_l=\frac{\text{std}(\frac{\partial E}{\partial W_l})}{\text{std}(W_l)}\lambda\tag{5} λl=std(Wl)std(WlE)λ(5)
为了计算Eq.5中的 λ l \lambda_l λl,需要估计原始网络中的 std ( ∂ E ∂ W l ) \text{std}(\frac{\partial E}{\partial W_l}) std(WlE) std ( W l ) \text{std}(W_l) std(Wl) std ( W l ) \text{std}(W_l) std(Wl)可在模型参数初始化时决定,容易获得。为了简化描述,将 ∂ E ∂ ∗ \frac{\partial E}{\partial *} E记作 Δ ∗ \Delta * Δ

如图2所示,令 x l x_l xl y l y_l yl表示第 l l l层的输入和输出,应有 x l + 1 = y l x_{l+1}=y_l xl+1=yl
前向传播、反向传播可以写作:
y l = W l x l (6) y_l=W_lx_l\tag{6} yl=Wlxl(6)
Δ x l = W l T Δ y l (7) \Delta x_l=W_l^T\Delta y_l\tag{7} Δxl=WlTΔyl(7)
Δ W l = x l T Δ y l (8) \Delta W_l=x_l^T\Delta y_l\tag{8} ΔWl=xlTΔyl(8)
根据反向传播可以得到:
var ( Δ W l ) = var ( x l T Δ y l ) = var ( x l ) var ( Δ y l ) (9) \text{var}(\Delta W_l)=\text{var}(x_l^T\Delta y_l)=\text{var}(x_l)\text{var}(\Delta y_l)\tag{9} var(ΔWl)=var(xlTΔyl)=var(xl)var(Δyl)(9)
其中 var ( ∗ ) \text{var}(*) var()是计算一个矩阵或向量的所有元素的方差的函数。这里假设 x l x_l xl Δ y l \Delta y_l Δyl是相互独立的,且均值为0。
最近的初始化方法通过网络将 var ( x l ) \text{var}(x_l) var(xl)变为一个常数,因此这里将 var ( x l ) \text{var}(x_l) var(xl)视作一个常数值。相反, var ( Δ y l ) \text{var}(\Delta y_l) var(Δyl)可以计算为
var ( Δ y l ) = var ( Δ x l + 1 ) = M l + 1 var ( W l + 1 ) var ( Δ y l + 1 ) = β l + 1 var ( Δ y l + 1 ) ,  where  β k = m k var ( W k ) \begin{align} \text{var}(\Delta y_l)=\text{var}(\Delta x_{l+1})&=M_{l+1}\text{var}(W_{l+1})\text{var}(\Delta y_{l+1}) \\ &=\beta_{l+1}\text{var}(\Delta y_{l+1}), \ \text{where}\ \beta_k=m_k\text{var}(W_k)\tag{10} \end{align} var(Δyl)=var(Δxl+1)=Ml+1var(Wl+1)var(Δyl+1)=βl+1var(Δyl+1), where βk=mkvar(Wk)(10)
其中 M k M_k Mk是第 k k k层的输入和所有输出的连接数, β k \beta_k βk表示连续连续两层的反向传播梯度的方差之间的比率。迭代地计算Eq.10,可以得到:
KaTeX parse error: Can't use function '$' in math mode at position 2: $̲\text{var}(\Del…
将Eq.11代入Eq.9, var ( Δ W l ) \text{var}(\Delta W_l) var(ΔWl)可以变为:
var ( Δ W l ) = var ( x l ) ⋅ γ l var ( Δ y L ) = C ⋅ γ l (13) \text{var}(\Delta W_l)=\text{var}(x_l)\cdot \gamma_l\text{var}(\Delta y_L)=C\cdot\gamma_l\tag{13} var(ΔWl)=var(xl)γlvar(ΔyL)=Cγl(13)
其中 C C C等价于 var ( x l ) var ( Δ y L ) \text{var}(x_l)\text{var}(\Delta y_L) var(xl)var(ΔyL),可以被视为一个常量,因为本文认为 var ( x l ) \text{var}(x_l) var(xl)是个常量。将Eq.13代入Eq.5,可以获得:
λ l = std ( Δ W l ) std ( W l ) λ = var ( Δ W l ) var ( W l ) λ = C ⋅ γ l var ( W l ) λ (14) \lambda_l=\frac{\text{std}(\Delta W_l)}{\text{std}(W_l)}\lambda=\sqrt{\frac{\text{var}(\Delta W_l)}{\text{var}(W_l)}}\lambda=\sqrt{\frac{C\cdot\gamma_l}{\text{var}(W_l)}}\lambda\tag{14} λl=std(Wl)std(ΔWl)λ=var(Wl)var(ΔWl) λ=var(Wl)Cγl λ(14)
由于上述方程含有两个常数值 C C C γ l \gamma_l γl,利用 λ L \lambda_L λL作为权重衰减的基系数对方程进行变形:
λ l = λ L ⋅ λ l λ L = λ L ⋅ C ⋅ γ l var ( W l ) λ C ⋅ γ L var ( W l ) λ = λ L var ( W L ) var ( W l ) γ l (15) \lambda_l=\lambda_L\cdot\frac{\lambda_l}{\lambda_L}=\lambda_L\cdot\frac{\sqrt{\frac{C\cdot\gamma_l}{\text{var}(W_l)}}\lambda}{\sqrt{\frac{C\cdot\gamma_L}{\text{var}(W_l)}}\lambda}=\lambda_L\sqrt{\frac{\text{var}(W_L)}{\text{var}(W_l)}\gamma_l}\tag{15} λl=λLλLλl=λLvar(Wl)CγL λvar(Wl)Cγl λ=λLvar(Wl)var(WL)γl (15)
使用Eq.15,便可以在不训练数据时为网络的每一层计算 λ l \lambda_l λl,因为我们认为 var ( x l ) \text{var}(x_l) var(xl)是,并通过估计 λ l \lambda_l λl λ L \lambda_L λL的比例来从Eq.14估计 λ l \lambda_l λl。网络的正则化强度可以通过设置 λ L \lambda_L λL来调节。

2.4 Effects of Drop-Out

本节展示drop-out并不会影响Eq.15的逐层权重衰减。由于显然drop-out显然不会影响逐层权重衰减,因此关注梯度的规模,即Eq.9中的 var ( x l ) \text{var}(x_l) var(xl) var ( Δ y l ) \text{var}(\Delta y_l) var(Δyl)。假设第 l l l层的隐藏层结点被drop-out的概率是 p p p var ( Δ y ) \text{var}(\Delta y) var(Δy)可以改写为:
var ( Δ y l ) = ( 1 − p ) M l + 1 var ( W l + 1 ) var ( Δ y l + 1 ∗ ) (16) \text{var}(\Delta y_l)=(1-p)M_{l+1}\text{var}(W_{l+1})\text{var}(\Delta y_{l+1}^*)\tag{16} var(Δyl)=(1p)Ml+1var(Wl+1)var(Δyl+1)(16)
其中, y l ∗ y_l^* yl表示带有drop-out的第 l l l层输出结果。由于被drop-out的神经元会被视为0,且保留的隐藏层神经元会被 × 1 / ( 1 − p ) \times 1/(1-p) ×1/(1p),因此可以将 var ( Δ y l + 1 ∗ ) \text{var}(\Delta y_{l+1}^*) var(Δyl+1)变形为:
var ( Δ y l + 1 ∗ ) = ave ( ( Δ y l + 1 ∗ ) 2 ) = ( 1 − p ) ⋅ ave ( ( 1 1 − p Δ y l + 1 ) 2 ) + p ⋅ ave ( 0 2 ) = 1 1 − p ( ( Δ y l + 1 ) 2 ) = 1 1 − p var ( Δ y l + 1 ) \begin{align} \text{var}(\Delta y_{l+1}^*)&=\text{ave}((\Delta y_{l+1}^*)^2)\\ &=(1-p)\cdot\text{ave}((\frac{1}{1-p}\Delta y_{l+1})^2)+p\cdot\text{ave}(0^2) \\ &=\frac{1}{1-p}((\Delta y_{l+1})^2)=\frac{1}{1-p}\text{var}(\Delta y_{l+1})\tag{17} \end{align} var(Δyl+1)=ave((Δyl+1)2)=(1p)ave((1p1Δyl+1)2)+pave(02)=1p1((Δyl+1)2)=1p1var(Δyl+1)(17)
将Eq.17代入Eq.16,可以得到和Eq.10相同的等式,意味着drop-out不会对 var ( Δ y l ) \text{var}(\Delta y_l) var(Δyl)产生影响。

2.5 Effects of Pooling Layer

在2.3节只考虑了卷积层和全连接层中带有可训练的权重,但是池化层在很多情况下也被使用。即使池化层不会对 var ( x l ) \text{var}(x_l) var(xl)产生很大的影响,但其不会对 var ( Δ y l ) \text{var}(\Delta y_l) var(Δyl)有影响。因此,Eq.10中的 β l \beta_l βl在池化层也要被定义。本节定义 β l \beta_l βl在最大池化层和平均池化层中的数值。令 p p p s s s分别为池化大小和步长。

2.5.1 Max-pooling

最大池化层中,将局部区域内的最大输入值进行前向传播,并且在反向传播中只有对应的神经元接收到 Δ x l \Delta x_l Δxl,局部区域内的其他单元的 Δ x l \Delta x_l Δxl设置为0。如果假设 Δ x l \Delta x_l Δxl的平均值是0,那么 var ( Δ x l ) \text{var}(\Delta x_l) var(Δxl)会被缩放至 1 / s 2 1/s^2 1/s2的规模。随着 p p p大于 s s s,接收 Δ x l \Delta x_l Δxl的神经元占的比例变小,但是本文忽略了这种影响,为简单期间,使用了上述定义。

2.5.2 Average-pooling

与最大池化不同,平均池化中所有的神经元都接收 Δ x l \Delta x_l Δxl。然而,在反向传播中, Δ x l \Delta x_l Δxl被缩放为 M l / N l M_l/N_l Ml/Nl,因为 x l x_l xl中每个神经元以 1 / N l 1/N_l 1/Nl的权重连接到 y l y_l yl中的 M l M_l Ml个神经元中。因此,平均池化层的 β l \beta_l βl应被设为 ( M l / N l ) 2 (M_l/N_l)^2 (Ml/Nl)2。例如,当 p = s p=s p=s时, N l = p 2 N_l=p^2 Nl=p2 M l = 1 M_l=1 Ml=1,因此 β l \beta_l βl设置为 1 / p 4 1/p^4 1/p4

2.6 Rescaling Invariance of Layer-Wise Weight Decay

从理论上验证本文的方法,将证明本文提出的逐层权重衰减对于网络的逐层重新重新标度(rescaling)是不变的。
网络的重新标度也被称为重参数化(reparameterization),是通过重新标度连接权重而不改变网络计算的函数的一种变换。
如果使用某种激活函数 f f f,如恒等函数或ReLU,满足对任意的正标量 α \alpha α,这种尺度变换都可以轻松得到。图3展示了分层重标度的一个例子,是最简单的重标度之一。
![[Pasted image 20240524155901.png]]

图3:网络的逐层重标度。

当我们将 W l − 1 W_{l-1} Wl1重标度为 α W l − 1 \alpha W_{l-1} αWl1,将 W l W_l Wl重标度为 1 α W l \frac{1}{\alpha}W_l α1Wl,那么 x l + 1 x_{l+1} xl+1的值就不会改变。缩放不影响网络的功能性,训练过程中也不应该影响网络的更新。如果重标度过程影响了更新,意味着网络如何更新权重依赖于每个权重的尺度,导致训练过程的不稳定性。本文将表明,如果使用常数权重衰减,正则化的强度将受到重标度的影响,而如果使用逐层权重衰减,正则化的强度时不变的。注意到本文关注的是梯度和权重衰减之间的平衡,这与现有工作只关注梯度的尺度不同。

假设网络如图3所示进行重标度。由于任何逐层重标度都可以用这种重标度的组合来表示,因此研究这种重标度足以在所提出的方法中显示重标度不变性。

x l ′ x_l' xl W l ′ W_l' Wl为第 l l l层重标度后的输入值和连接权重,由此得到
Δ W l − 1 ′ = x ′ l − 1 T Δ y l − 1 ′ = x l − 1 T ( 1 α Δ y l − 1 ) = 1 α Δ W l − 1 (18) \Delta W_{l-1}'={x'}_{l-1}^T\Delta y_{l-1}'=x_{l-1}^T(\frac{1}{\alpha}\Delta y_{l-1})=\frac{1}{\alpha}\Delta W_{l-1}\tag{18} ΔWl1=xl1TΔyl1=xl1T(α1Δyl1)=α1ΔWl1(18)
Δ W l ′ = x ′ l T Δ y l ′ = α x l T Δ y l = α Δ W l (19) \Delta W_l'={x'}_l^T\Delta y_l'=\alpha x_l^T\Delta y_l=\alpha\Delta W_l\tag{19} ΔWl=xlTΔyl=αxlTΔyl=αΔWl(19)
将上述两个等式代入Eq.1,在权重衰减不变的情况下得到重标网络的更新值:
Δ W l − 1 ′ + λ W l − 1 ′ = 1 α Δ W l − 1 + λ α W l − 1 (20) \Delta W_{l-1}'+\lambda W_{l-1}'=\frac{1}{\alpha}\Delta W_{l-1}+\lambda\alpha W_{l-1}\tag{20} ΔWl1+λWl1=α1ΔWl1+λαWl1(20)
Δ W l ′ + λ W l = α Δ W l + λ α W l (21) \Delta W_l'+\lambda W_l=\alpha\Delta W_l+\frac{\lambda}{\alpha}W_l\tag{21} ΔWl+λWl=αΔWl+αλWl(21)
基于此,可以得到在逐层权重衰减下重新缩放后网络的更新值:
Δ W l − 1 ′ + λ l − 1 ′ W l − 1 ′ = 1 α Δ W l − 1 + λ l − 1 α 2 α W l − 1 = 1 α ( W l − 1 + λ l − 1 W l − 1 ) ∝ W l − 1 + λ l − 1 W l − 1 \begin{align} \Delta W_{l-1}'+\lambda_{l-1}'W_{l-1}'&=\frac{1}{\alpha}\Delta W_{l-1}+\frac{\lambda_{l-1}}{\alpha^2}\alpha W_{l-1}\\ &=\frac{1}{\alpha}(W_{l-1}+\lambda_{l-1}W_{l-1})∝ W_{l-1}+\lambda_{l-1}W_{l-1}\tag{24} \end{align} ΔWl1+λl1Wl1=α1ΔWl1+α2λl1αWl1=α1(Wl1+λl1Wl1)Wl1+λl1Wl1(24)
Δ W l ′ + λ l ′ W l ′ = α Δ W l + α 2 λ l α W l = α ( Δ W l + λ l W l ) ∝ Δ W l + λ l W l \begin{align} \Delta W_l'+\lambda_l'W_l'&=\alpha\Delta W_l+\frac{\alpha^2\lambda_l}{\alpha}W_l \\ &=\alpha(\Delta W_l+\lambda_l W_l)∝\Delta W_l+\lambda_lW_l\tag{25} \end{align} ΔWl+λlWl=αΔWl+αα2λlWl=α(ΔWl+λlWl)ΔWl+λlWl(25)
这个等式表明权重衰减的强度不改变重标度。这种不变性源于对梯度尺度的充分考虑,而梯度尺度又受到上层权重尺度的影响。虽然更新的尺度需要通过自适应的学习率或其他一些复杂的优化来补偿,但结论是,逐层权重衰减不受网络尺度变化的影响。

  • 13
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值