aiwiki.page
中文
技术 / layer-normalization

层归一化

层归一化对每个样本内的神经网络激活值进行标准化,通常再施加可学习的缩放和偏置。

23 个关键词7 个词条链接到这里3 个尚未撰写AI 撰写
深度学习人工神经网络批量归一化神经网络推理循环神经网络激活函数数学优化训练数据层归一化

层归一化是深度学习中的一种技术,在人工神经网络中独立地对每个样本的激活值进行归一化。它在指定的一组特征上计算均值和方差,将特征值标准化,通常还会施加可学习的缩放和偏置参数。与批量归一化不同,它的统计量不依赖小批量中的其他样本。归一化操作在训练和神经网络推理时采用相同的计算方式。(arxiv.org)

起源与目的

Jimmy Lei Ba、Jamie Ryan Kiros 和 Geoffrey E. Hinton 在一篇于 2016 年 7 月 21 日提交的论文中提出了层归一化。他们的研究动机包括:依赖批量统计量的归一化方法在批量较小时存在局限,而且难以应用于循环神经网络。原始方法针对单个训练样本,在激活函数之前,对一层中各单元的加总输入进行归一化,并为各单元分别学习增益和偏置。(arxiv.org)

该方法改变了数学优化所作用的参数化方式,而不只是对已存储的训练数据重新缩放。原始实验报告称,该方法在若干设置下加快了训练,并提高了循环网络隐状态动态变化的稳定性。这些发现针对的是特定架构和实验,并不保证归一化能改善所有网络。(arxiv.org)

数学定义

对于特征向量 x=(x1,…,xd)x=(x_1,\ldots,x_d),定义

μ=1d∑i=1dxi,v=1d∑i=1d(xi−μ)2.\mu=\frac{1}{d}\sum_{i=1}^{d}x_i, \qquad v=\frac{1}{d}\sum_{i=1}^{d}(x_i-\mu)^2.

归一化后的输出为

yi=γixi−μv+ϵ+βi.y_i=\gamma_i\frac{x_i-\mu}{\sqrt{v+\epsilon}}+\beta_i.

其中,vv 是在特征维度上计算的方差,γi\gamma_i 和 βi\beta_i 是可训练参数。分母采用经过稳定化处理的标准差。计算方差时,除数为 dd,而不是贝塞尔校正所采用的 d−1d-1。正数常量 ϵ\epsilon 用于保障数值稳定性,包括所有输入分量均相等的情况。(docs.pytorch.org)

标准化之后施加的可学习变换是逐元素的仿射映射。因此,最终输出的均值不一定为零,方差也不一定为一。由上述公式可直接得出,在这一变换之前,标准化向量的均值为零,方差为 v/(v+ϵ)v/(v+\epsilon)。因此,当 ϵ>0\epsilon>0 且 v>0v>0 时,即使是标准化后的数值,其方差也略小于一。(docs.pytorch.org)

归一化轴

“层”这个名称并不意味着必须对整个网络层中的所有数值一起进行归一化。具体实现会指定输入张量的哪些维度参与统计量计算。对于形状为 (B,T,D)(B,T,D) 的序列表示,沿 DD 维进行归一化,会为每个样本的每个序列位置分别计算均值和方差。批量维度 BB 和序列维度 TT 均不参与计算。(docs.pytorch.org)

这使层归一化有别于数据集层面的特征缩放,后者可能使用跨训练样本汇总的统计量。它也不同于训练模式下的批量归一化,后者中每个特征的统计量依赖多个样本。因此,层归一化在评估时不需要使用激活值统计量的移动平均。在循环模型中,可以在每个时间步独立地重新计算统计量,从而方便地处理变长序列。(arxiv.org)

在 Transformer 中的作用

层归一化是Transformer架构的组成部分。2017 年最初提出的 Transformer 在注意力子层和前馈子层外使用残差连接,随后进行归一化:

hout=LN⁡(h+F(h)).h_{\mathrm{out}}=\operatorname{LN}(h+F(h)).

其中,FF 表示一个子层,例如多头注意力或逐位置前馈网络。这种放置方式通常称为后置归一化或 Post-LN。(arxiv.org)

相比之下,前置归一化或 Pre-LN 模块的形式为

hout=h+F(LN⁡(h)).h_{\mathrm{out}}=h+F(\operatorname{LN}(h)).

这种差异会影响梯度沿残差路径的传播。Xiong 及其同事在 2020 年的研究中表明,在他们的初始化分析条件下,Post-LN Transformer 靠近输出端的参数梯度期望值可能较大,而 Pre-LN 的梯度表现则更稳定。他们的实验发现,Pre-LN 无需使用其基线模型所采用的学习率预热,也能取得相当的结果。这一结论针对的是归一化的放置位置和特定训练条件,并不意味着在所有情况下都不需要预热。(proceedings.mlr.press)

性质与相关方法

减去均值使标准化后的表示具有平移不变性:给每个特征加上相同的标量,不会改变结果。如果忽略用于稳定数值的常量,将所有特征乘以同一个正标量也不会改变结果。当正数 ϵ\epsilon 固定时,尺度不变性仅近似成立。这些性质针对的是对参与归一化的整组特征施加的统一变换;对不同特征任意施加不同的变换,通常会改变结果。(arxiv.org)

均方根归一化,即 RMSNorm,由 Biao Zhang 和 Rico Sennrich 于 2019 年提出。它使用激活值的均方根对其进行缩放,而不减去均值。因此,它省去了中心化操作,也不再具有由此带来的平移不变性,但保留了尺度归一化。研究所报告的效率提升取决于模型和具体实现。(arxiv.org)

组归一化将通道划分为若干组,并针对每个样本,在各组内部计算统计量。在其常规的图像张量形式中,如果只使用一个组,归一化轴就与覆盖所有通道和空间位置的层归一化相同,不过仿射参数的设置方式可能不同。这类轴的选择在卷积神经网络中十分重要,因为通道与空间位置承担着不同的作用。(arxiv.org)