ReZero is All You Need: Fast Convergence at Large Depth

深度学习/神经网络虽然在各个领域取得了很大进展,但经常面临梯度爆炸和梯度消失问题。对于Transformer这种大型网络更是。ReZero是本文提出的用于训练更深神经网络的框架。总的来说,ReZero能够使网络具有更深的层次以及更快的收敛速度。

ReZero

研究者们通常通过三项技术解决梯度消失与梯度爆炸问题:1)精心初始化;2)正则化,即BatchNorm或者LayerNorm;3)残差连接。但是这些技术增加了计算开销,同时也具有局限性。其中,一些典型的方法如下表所示:

其中,F表示任意的神经网络层,Norm表示正则化,比如BatchNorm或者LayerNorm。

水平有限,理论证明部分就不做讲解,这里简单介绍ReZero的做法。ReZero全称是Residual with Zero initialization,它是对深层残差网络的体系结构的简单更改,有利于动态等距(dynamical isometry)并实现对极深网络的有效训练。它不是在初始化时通过每个非平凡函数\(F[W_i]\)传播信号,而是添加skip连接,然后通过一个可学习的参数缩放该函数,这个参数称为残差权重,并且一开始初始化为0。因此在ReZero中信号传播方式如下:

\[\mathbf{x}_{i+1} = \mathbf{x}_i + \alpha_i F[W_i](\mathbf{x}_i) \]

在初始时,所有的\(\alpha_i\)都等于0,因此网络表示恒等函数,此时直接满足动态等距。然后模型逐渐学习到正确的权重。

实验

论文对于全连接层,Transformer和残差网络均进行了实验,并证明ReZero可以更快更深。

思考

看起来论文的做法非常简单,对模型的改动也非常小,而且也是模型独立的。如果真的有效,确实是一个比较有用的发现。

论文地址
代码地址

posted @ 2020-03-16 16:03  WeilongHu  阅读(1141)  评论(0编辑  收藏  举报