Layer Normalization

2022-05-11 17:01:16 浏览数 (1)

在学习Layer Normalization之前建议大家先自行学习Batch Normalization.

鉴于BN存在一些问题,LayerNormalzation才得以提出,并且LayerNormalization可以直接应用于recurrent neural networks,并且也解决了BN当batch size=1不能进行在线学习,在线预测的问题。

layer normalization和BN的整个思想是相近的,不同的是应用场景和计算均值、方差的方法是不同,但是总体而言都是通过归一化来加快训练速度,找到更佳的优化点来提升效果的。

无论是BN还是LN都是基于“covariate shift”的问题而设计的。不同于BN,LN进行normalization的数据,均值和方差的计算集合是同一层所有隐节点,公式如下:

其中,H为隐层l的节点数量,

为均值,

为方差,

 为隐层l的节点i的未经过激活函数的初始值,在RNN中,

可以表示如下:

其中, 

为当前时刻的输入,

为上一时刻的隐层输出。

在RNN中随着t的增长,通常会出现梯度消失和梯度爆炸的问题,这是由于时间维展开,梯度不稳定,或者出现小于1的情况,或者出现大于1的情况,在链式法则的作用下而导致的。而如果采用layer normalized RNN,归一化项会re-scaling inputs to a layer, 使得隐层和隐层之间的梯度计算更稳定。

0 人点赞