Gradient Centralization: A New Optimization Technique for Deep Neural Networks
文章信息
题目:Gradient Centralization: A New Optimization Technique for Deep Neural Networks
发表: ECCV, 2020
作者:Hongwei Yong 1,2 , Jianqiang Huang 2 , Xiansheng Hua 2 , and Lei Zhang
动机
当前的优化技巧比如Batch Normalization (BN) 和Weights Normalization (WN)主要是利用一阶和二阶统计信息来更新输出或者是参数. 具体来说, BN是通过对每个层激活后的输出进行Z-Score standardization, WN是通过对权重向量进行Z-Score standardization. 这两种方式实际上都可以看作是间接地调整权重更新时的梯度, 那么是否可以直接对梯度进行操作从而来提升训练的效果和稳定性?
与上述两种方式不同, 这篇文章提出一种优化方法直接对梯度进行操作, 具体来说: 对求解之后的梯度首先进行中心化然后再结合其他优化算法进行参数更新.
方法
提出了梯度中心化Gradient Centralization (GC)的方法来对计算出的梯度进行中心化.
如上图所示,直观的看,所谓的Gradient Centralization实际上就是逐列(针对全连接)或者逐片(针对卷积核)进行中心化.
GC的形式化定义
下面给出GC操作的形式化定义,
首先来一波定义:
对于全连接层,对应的参数
W
f
c
∈
R
C
i
n
×
C
o
u
t
W_{fc} \in R^{C_{in} \times C_{out}}
Wfc∈RCin×Cout, 对于卷积层,对应的参数
W
c
o
n
v
∈
R
C
i
n
×
C
o
u
t
×
(
k
1
k
2
)
W_{conv} \in R^{C_{in} \times C_{out} \times (k_{1}k_{2})}
Wconv∈RCin×Cout×(k1k2), 其中
C
i
n
,
C
o
u
t
C_{in}, C_{out}
Cin,Cout分别为输入和输出的dimensions/channels,
k
1
,
k
2
k_{1}, k_{2}
k1,k2为卷积核的尺寸.
为了将上述两种操作的形式统一起来, 将其参数全部表示为
W
∈
R
M
×
N
W \in R^{M \times N}
W∈RM×N的形式:
对于全连接层:
W
∈
R
M
×
N
W \in R^{M \times N}
W∈RM×N
对于卷积层:
W
c
o
n
v
∈
R
(
C
i
n
(
k
1
k
2
)
)
×
C
o
u
t
W_{conv} \in R^{ (C_{in} (k_{1}k_{2})) \times C_{out} }
Wconv∈R(Cin(k1k2))×Cout
为了方便操作,再将 W W W定义为列向量的集合 { w i } , i ∈ 1 , . . . , N \{w_{i}\}, i \in {1,...,N} {wi},i∈1,...,N, 其中 w i ∈ R M w_{i} \in R^{M} wi∈RM,
GC的定义如下:
对于
w
i
w_{i}
wi,中心化之后的梯度,
其中
μ
▽
w
i
L
\mu_{\bigtriangledown_{w_{i}L}}
μ▽wiL为第
i
i
i列的平均值, 定义如下:进一步,用矩阵形式来表示, 对于
W
W
W,
其中
I
{\rm I}
I为M阶的单位矩阵,
e
e
e为M维的单位向量,
e
=
1
M
1
e=\frac{1}{\sqrt{M}}1
e=M11.
GC在不同优化方法中的应用
GC与随机梯度下降算法SGD的结合
可以看到实际上只是增加了第3步.
GC与ADam算法的结合
可以看到实际上只是增加了第3步.
GC的理论分析
GC能够加速训练,并且能够提升范化能力, 作者从理论层面进行了证实.
GC能够提升泛化能力的原因是因为GC实际上提到了同时在权重空间和输出特征空间进行正则化的作用, 示意图如下:
不说了,有点晦涩, 一堆证明.
思考
1.方法简单, 有效.
2.为什么只对梯度进行中心化,而不是像以往的操作那样进行标准化呢? 作者有提到他们通过实验发现标准化不能提升训练的稳定性, 故而改用了中心化操作, 神奇!
References
- Yong H, Huang J, Hua X, et al. Gradient centralization: A new optimization technique for deep neural networks[C]//European Conference on Computer Vision. Springer, Cham, 2020: 635-652.