预备知识
- weight decay
l2正则化是weight decay中最常用的方法。假设一个向量的p范数记为 ∣ ∣ ⋅ ∣ ∣ p ||\cdot||_p ∣∣⋅∣∣p, 矩阵范数记为 ∣ ∣ . ∣ ∣ p q ||.||_p^q ∣∣.∣∣pq。矩阵范数具体格式为 ∣ ∣ W ∣ ∣ p q = ( ∣ ∣ w 1 ∣ ∣ p q + ∣ ∣ w 2 ∣ ∣ p q + ⋯ + ∣ ∣ w k ∣ ∣ p q ) 1 q ||W||_p^q=(||w_1||_p^q+||w_2||_p^q+\cdots+||w_k||_p^q)^{\frac1q} ∣∣W∣∣pq=(∣∣w1∣∣pq+∣∣w2∣∣pq+⋯+∣∣wk∣∣pq)q1, ∣ ∣ w k ∣ ∣ ||w_k|| ∣∣wk∣∣指第k个行向量p范数的q次方。2正则化公式如下(L是层数):
∑ i = 1 L ∥ W i ∥ 2 2 (1) \sum_{i=1}^L \|W_i\|_2^2 \tag{1} i=1∑L∥Wi∥22(1) - 同性激活函数
该论文将具有以下属性的函数称为同性函数。同样地,具有以下属性的激活函数就是同性激活函数(relu, linear等)。
f ( x ) = a f ( 1 a x ) (2) f(x) = af(\frac1a x) \tag{2} f(x)=af(a1x)(2)
发现的问题
- 权重规模转移
假设有一个两层的网络 N N N, 输入是 X ∈ R d X \in R^d X∈Rd, W 1 ∈ R d × h W_1 \in R^{d \times h} W1∈Rd×h, W 2 ∈ R h W_2 \in R^h W2∈Rh, 同性激活函数 ϕ \phi ϕ, 网络 N N N的输入输出映射函数可写成如下形式:
y = W 2 T ϕ ( W 1 T X ) . (3) y = W_2^T \phi (W_1 ^ T X). \tag{3} y=W2Tϕ(W1TX).(3)
在网络N训练的过程中,可能会发生网络输入输出映射不会发生变化,但是权重规模可能发生的转移:
y = a W 2 T ϕ ( 1 a W 1 T X ) = W ^ 2 T ϕ ( W ^ 1 T X ) . (4) y = a W_2^T\phi ( \frac1a W_1 ^ T X) = \hat W_2^T \phi( \hat W_1^TX). \tag{4} y=aW2Tϕ(a1W1TX)=W^2Tϕ(W^1TX).(4)
W 1 W_1 W1的规模减少了 a a a倍, W 2 W_2 W2的规模增加了 a a a倍,但是网络整体没有变化。
根据公式1、公式3和公式4,我们可以发现,权重规模转移会改变网络的weight decay正则化,即使网络整体没有变化。《Improve Generalization and Robustness of Neural Networks》就根据这个现象提出,由于同性激活函数的存在,在不改变网络函数的情况下,会发生权重规模转移的现象,这会导致weight decay无法很好地正则化神经网络(至于为什么无法很好地工作,大家可以查看原始论文的证明)。
解决办法
- 不使用同性函数
由于现在主流的激活函数都是同性函数,所以该办法不可行。 - 论文提出的解决办法
提出一种可以对权重规模转移保持不变的正则化方法。
(1)定义可以评估第 i i i层权重 W i W_i Wi的规模的函数 η ( W i ) \eta(W_i) η(Wi), η ( ⋅ ) \eta(\cdot) η(⋅)可以是 ∣ ∣ ⋅ ∣ ∣ p q ||\cdot||_p^q ∣∣⋅∣∣pq.
(2)将网络所用层(L层)的规模相乘, ∏ i = 1 L η ( W i ) \prod_{i=1}^L \eta(W_i) ∏i=1Lη(Wi)
(3)对于每一层权重执行归一化, g ( W i η ( W i ) ) g(\frac{W_i } {\eta(W_i)}) g(η(Wi)Wi), g ( ⋅ ) g(\cdot) g(⋅)可以是 ∣ ∣ ⋅ ∣ ∣ p q ||\cdot||_p^q ∣∣⋅∣∣pq
(4) Ω ( N ) = λ 1 ∏ i = 1 L η ( W i ) + λ 2 ∑ i = 1 L g ( W i η ( W i ) ) \Omega(N)=\lambda_1\prod_{i=1}^L \eta(W_i) + \lambda_2\sum_{i=1}^Lg({\frac{W_i }{\eta(W_i)}}) Ω(N)=λ1∏i=1Lη(Wi)+λ2∑i=1Lg(η(Wi)Wi)。论文也给出了具体的公式, η ( ⋅ ) = ∣ ∣ ⋅ ∣ ∣ 2 2 \eta(\cdot)=||\cdot||_2^2 η(⋅)=∣∣⋅∣∣22, g ( ⋅ ) = ∣ ∣ ⋅ ∣ ∣ 1 1 g(\cdot)=||\cdot||_1^1 g(⋅)=∣∣⋅∣∣11, Ω ( N ) = λ 1 ∏ i = 1 L ∣ ∣ W i ∣ ∣ 2 2 + λ 2 ∑ i = 1 L ∣ ∣ W i ∣ ∣ W i ∣ ∣ 2 2 ∣ ∣ 1 1 \Omega(N) = \lambda_1{\prod_{i=1}^L||W_i||_2^2} + \lambda_2\sum_{i=1}^L{||{\frac{ W_i}{||W_i||_2^2}}||_1^1} Ω(N)=λ1∏i=1L∣∣Wi∣∣22+λ2∑i=1L∣∣∣∣Wi∣∣22Wi∣∣11。
提出方法的效果
1.该正则化方法对权重规模转移具有不变性,即可以有效地控制网络的复杂度以提升网络的泛化性能。
2.该正则化方法可以提升网络的对抗鲁棒性。
本人的一点见解
虽然论文的作者是在假设网络的输入输出映射函数保持不变的情况下提出权重规模转移问题,但是其已经用实验证明了无论网络函数是否变化,提出的方法在泛化性能和对抗性能上都优于weight decay。