链接: https://arxiv.org/abs/1911.13173v1
深度卷积网络在较高的学习率下训练不够稳定, 使用归一化技术可以改善这一情况, 加快收敛. 批归一化 (Batch Normalization) 需要一定量的样本进行归一化计算, 这增加了额外的计算和内存消耗, 对于分布式计算, 也产生了通信的瓶颈. 本文给出了一种新的训练不稳定的解释, 认为是一种均值偏移的积累导致训练不稳定, 并且提出几种技巧来改进.
相近的工作
尽管批归一化有性能上的劣势, 但仍是常用的一种技巧. Filter Response Normalization [26] 提出了一种方法避免使用批归一化, 并且提高了性能. 然而这种方法需要在单个样本内进行激活幅度归一化 (activation magnitude normalization), 所以还是没有完全避免归一化计算. 权重归一化 (Weight Normalization) [18] 将权重的方向和大小分离出来, 分别进行优化, 没有引入新的参数, 计算量也相对小, 但是性能上不如批归一化.
作者认为训练不稳定的原因是由于 common mode signal 引起的(个人认为是一种均值偏移), 如果不加以控制, 该信号会加大进而影响训练过程. 以前的方法通过应用均值减法或添加其他偏置参数来补偿均值偏移[25] [26]. 而在本文中, 初始化模型以使所有滤波器(卷积核)都位于通道方向的零均值等值线, 并通过应用加权通道方向的零均值来修改梯度更新.
改进的方法
第一项改进是关于权重归一化的形式. 权重归一化是指将网络权重
W
W
W 分解为大小和方向两个部分:
W
=
g
∥
V
∥
V
W=\frac{g}{\| V \|} V
W=∥V∥gV
这两部分分别进行优化. 本文将权重的大小改进为指数形式
W
=
e
g
⋅
V
W=e^{g} \cdot V
W=eg⋅V
这可以避免向量的大小变为负值, 并且随着缩放尺寸 (
e
g
e^g
eg) 的减小, 梯度也会减小, 这在训练过程中具有很强的正则化作用, 以防止其大小快速减小, 因此具有稳定训练的作用.
第二项改进是对初始化权重做中心化处理. 对于卷积神经网络, 首先从
U
(
−
1
,
1
)
U(-1,1)
U(−1,1) 中随机采样网络权重, 然后对每一个卷积核的单个通道做归一化处理, 得到初始的网络权重. 表达为:
X
=
U
(
−
1
,
1
)
X
′
=
X
−
E
(
X
:
d
i
m
=
1
,
2
)
V
=
X
′
∥
X
′
∥
\begin{aligned} &X=U(-1,1) \\ &X^{\prime}=X-E(X:dim=1,2)\\ &V=\frac{X^{\prime}}{\|X^{\prime}\|} \end{aligned}
X=U(−1,1)X′=X−E(X:dim=1,2)V=∥X′∥X′
V
V
V 即是最终的初始化网络权重.
d
i
m
=
1
,
2
dim=1,2
dim=1,2 指对卷积核的某一通道(即矩阵)做均值处理.
第三项改进是对训练过程中的梯度的中心化处理. 将卷积核的某一通道的权重梯度减去这一通道中的梯度均值, 即
∇
V
′
=
∇
V
−
E
(
∇
V
:
d
i
m
=
1
,
2
)
⋅
z
\nabla V^{\prime}=\nabla V-E(\nabla V: d i m=1,2) \cdot z
∇V′=∇V−E(∇V:dim=1,2)⋅z
其中
z
z
z 是一个超参数.
第四项改进是关于权重衰减, 一般的正则化项是将权重衰减到 0, 改进为 1, 即
L
L
U
M
A
(
V
)
=
(
∑
V
i
2
−
1
)
2
⋅
λ
L_{L U M A}(V)=(\sqrt{\sum V_{i}^{2}}-1)^{2} \cdot \lambda
LLUMA(V)=(∑Vi2−1)2⋅λ
参考
[18] T. Salimans and D.P. Kingma. Weight normalization: A simple reparameterization to accelerate training of deep neural networks. NIPS 2016: 901-909.
[25] H. Zhang, Y. N. Dauphin and T. Ma. Fixup Initialization: Residual Learning Without Normalization. arXiv:1901.09321v2 (2019).
[26] Saurabh Singh and Shankar Krishnan. Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks. arXiv:1911.09737v1 (2019).
补充
(annealing) 退火机制
在文中使用退火机制, 极大地提高了训练精度.
在迭代更新可行解时,以一定的概率来接受一个比当前解要差的解,因此有可能会跳出这个局部的最优解,达到全局的最优解。
https://blog.csdn.net/huahua19891221/article/details/81737053