梯度中心化GC对权值梯度进行零均值化,可能使得网络的训练更加稳固,并且能进步网络的泛化能力,算法思路简略,论文的实践剖析非常充沛,可能很好地解释GC的作用原理
起源:晓飞的算法工程笔记 公众号
论文: Gradient Centralization: A New Optimization Technique for Deep Neural Networks
- 论文地址:https://arxiv.org/abs/2004.01461
- 论文代码:https://github.com/Yonghongwei/Gradient-Centralization
Introduction
优化器(Optimizer)对于深度神经网络在大型数据集上的训练是非常重要的,如SGD和SGDM,优化器的指标有两个:减速训练过程和进步模型的泛化能力。目前,很多工作钻研如何进步如SGD等优化器的性能,如克服训练中的梯度隐没和梯度爆炸问题,无效的trick有权值初始化、激活函数、梯度裁剪以及自适应学习率等。而一些工作则从统计的角度对权值和特征值进行标准化来让训练更稳固,比方特色图标准化办法BN以及权值标准化办法WN。。
与在权值和特征值进行标准化办法不同,论文提出作用于权值梯度的高性能网络优化算法梯度中心化(GC, gradient centralization),可能减速网络训练,进步泛化能力以及兼容模型fine-tune。如图a所示,GC的思维很简略,零均值化梯度向量,可能轻松地嵌入各种优化器中。论文次要奉献如下:
- 提出新的通用网络优化办法,梯度中心化(GC),不仅能平滑和减速训练过程,还能进步模型的泛化能力。
- 剖析了GC的实践属性,表明GC可能束缚损失函数,标准化权值空间和特征值空间,晋升模型的泛化能力。另外,束缚的损失函数有更好的Lipschitzness(抗扰动能力,函数斜率恒定小于一个Lipschitze常数),让训练更稳固、更高效。
Gradient Centralization
Motivation
BN和WS应用Z-score标准化别离操作于特征值和权重,理论是间接地对权值的梯度进行束缚,从而进步优化时损失函数的Lipschitz属性。受此启发,论文间接对梯度操作,首先尝试了Z-score标准化,但试验发现并没有晋升训练的稳定性。之后,尝试计算梯度向量的均值,对梯度向量进行零均值化,试验发现可能无效地进步损失函数的Lipschitz属性,使网络训练更稳固、更具泛化能力,失去梯度中心化(GC)算法。
Notations
定义一些根底符号,应用$W \in \mathbb{R}^{M \times N}$对立示意全连贯层的权值矩阵$W_{fc} \in \mathbb{R}^{C_{in}\times C_{out}}$和卷积层的权值张量$W_{conv} \in \mathbb{R}^{(C_{in} k_1 k_2)\times C_{out}}$,$w_i \in \mathbb{R}^M$为权值矩阵$W$的第$i$列,$\mathcal{L}$为指标函数,$\nabla_{W}\mathcal{L}$和$\nabla_{w_i}\mathcal{L}$为$\mathcal{L}$对$W$和$w_i$的梯度,$W$与$\nabla_{W}\mathcal{L}$的大小一样。定义$X$为输出特色图,则$W^T X$为输入特色图,$e=\frac{1}{\sqrt{M}}1$为$M$位单位向量(unit vector),$I\in\mathbb{R}^{M\times M}$为单位矩阵(identity matrix)。
Formulation of GC
对于卷积层或全连贯层的权值向量$w_i$,通过反向流传失去其梯度$\nabla_{w_i}\mathcal{L}$,而后如图b所示计算其均值$\mu\nabla_{w_i}\mathcal{L}=\frac{1}{M}{\sum}^M_{j=1} \nabla_{w_{i,j}\mathcal{L}}$,GC操作$\Phi$定义如下:
也能够将公式1转换为矩阵模式:
$P$由单位矩阵以及单位向量造成矩阵形成,别离负责保留原值以及求均值。
Embedding of GC to SGDM/Adam
GC可能简略地嵌入以后的支流网络优化算法中,如SGDM和Adam,间接应用零均值化的梯度$\Phi_{GC}(\nabla_w \mathcal{L})$进行权值的更新。
算法1和算法2别离展现了将GC嵌入到SGDM和Adam中,基本上不须要对原优化器算法进行批改,仅需退出一行梯度零均值化计算即可,大概仅需0.6sec。
Properties of GC
上面从实践的角度剖析GC为何能进步模型的泛化能力以及减速训练。
Improving Generalization Performance
GC有一个很重要的长处是进步模型的泛化能力,次要得益于权值空间正则化和特征值空间正则化。
Weight space regularization
首先介绍$P$的物理意义,通过推算能够失去:
即$P$能够看作映射矩阵,将$\nabla_W \mathcal{L}$映射到空间向量中法向量为$e$的超平面,$P\nabla_W \mathcal{L}$为映射梯度。
以SGD优化为例,权值梯度的映射可能将权值空间束缚在一个超平面或黎曼流形(Riemannian manifold)中,如图2所示,梯度首先映射到$e^T(w-w^t)=0$的超平面中,而后追随映射梯度$-P\nabla_{w^t}\mathcal{L}$的方向进行更新。从$e^T(w-w^t)=0$能够失去$e^Tw^{t+1}=e^Tw^t=\cdots=e^Tw^0$,指标函数理论变为:
这是一个权值空间$w$的束缚优化问题,正则化$w$的解空间,升高了过拟合的可能性(过拟合通常是学习了简单的权值来适应训练数据),可能晋升网络的泛化能力,特地是当训练样本较少的状况下。
WS对权值进行$e^Tw=0$的束缚,当初始权值不满足束缚时,会间接修改权值来满足约束条件。假如进行fine-tune训练,WS则会齐全抛弃预训练模型的劣势,而GC能够适应任何初始权值$e^T(w^0-w^0)=0$。
Output feature space regularization
以SGD优化办法为例,权值更新$w^{t+1}=w^t-\alpha^tP\nabla_{w_t}\mathcal{L}$,能够推导失去$w^t=w^0-P{\sum}^{t-1}_{i=0}\alpha^{(i)}\nabla_{w^{(i)}}\mathcal{L}$。对于任何输出特征向量$x$,有以下定理:
相干证实能够看原文附录,定理4.1表明输出特色的常量变动会造成输入的变动,而输入的变动量仅与标量$\gamma$和$1^Tw^0$相干,与以后权值$w^t$无关。$\gamma1^Tw^0$为初始化权值向量缩放后的均值,假如$w^0$靠近0,则输出特征值的常量变动将简直不会扭转输入特征值,意味着输入特色空间对训练样本的变动更鲁棒。
对ResNet50的不同初始权值进行可视化,能够看到权值都十分小(小于$e^{-7}$),这阐明如果应用GC来训练,输入特色不会对输出特色的变动过于敏感。这个属性正则化输入特色空间,并且晋升网络训练的泛化能力。
Accelerating Training Process
Optimization landscape smoothing
后面提到BN和WS都间接地对权值梯度进行束缚,使损失函数满足Lipschitz属性,$||\nabla_w\mathcal{L}||_2$和$||\nabla^2_w\mathcal{L}||_2$($w$的Hessian矩阵)都有上界。GC间接对梯度进行束缚,也有相似于BN和WS的属性,比照原损失函数满足以下定理:
相干证实能够看原文附录,定理4.2表明GC比原函数有更好的Lipschitzness,更好的Lipschitzness意味着梯度更加稳固,优化过程也更加平滑,可能相似于BN和WS那样减速训练过程。
Gradient explosion suppression
GC的另一个长处是避免梯度爆炸,使得训练更加稳固,作用原理相似于梯度裁剪。过大的梯度会导致损失重大震荡,难以收敛,而梯度裁剪可能克制大梯度,使得训练更稳固、更快。
对梯度的$L_2$ norm和最大值进行了可视化,能够看到应用GC后的值均比原函数要小,这也与定理4.2统一,GC可能让训练过程更平滑、更快。
Experiment
与BN和WS联合的性能比照。
Mini-ImageNet上的比照试验。
CIFAR100上的比照试验。
ImageNet上的比照试验。
细粒度数据集上的性能比照。
检测与宰割工作上的性能比照。
Conclustion
梯度中心化GC对权值梯度进行零均值化,可能使得网络的训练更加稳固,并且能进步网络的泛化能力,算法思路简略,论文的实践剖析非常充沛,可能很好地解释GC的作用原理。
如果本文对你有帮忙,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】