02 · Layer Normalization

归一化 Ba et al., 2016
Jimmy Lei Ba, Jamie Ryan Kiros, Geoffrey E. Hinton · arXiv:1607.06450

迭代了什么

上一代的问题:Batch Normalization 依赖 batch size,小 batch 和 RNN 下表现差。

这代改了什么:不在 batch 维度归一化,改为在单条样本的隐藏层所有神经元上计算均值和方差(Layer Normalization)。

效果:成为 Transformer 的标准归一化方法,不受 batch size 影响,训练推理行为一致。

一、解决的问题

Batch Normalization (BN) 依赖 batch size,在小 batch 或在线学习时表现差;且不适用于 RNN(每个时间步统计量不同)。需要一种不依赖 batch、适用于变长序列的归一化方法。

二、核心思想

不在 batch 维度上计算统计量,而是在单条样本的隐藏层所有神经元上计算均值和方差。每个样本有自己的 μ 和 σ,训练和推理时计算完全相同。

三、核心公式

μ = (1 / H) · Σ ai
σ = √( (1 / H) · Σ (ai − μ)² )
LN(ai) = (gi / σ) · (ai − μ) + bi

其中 H 是该隐藏层的神经元数量,gi 和 bi 是可学习的缩放和偏移参数。

四、与 BN 的关键区别

五、不变性分析

LN 对单条样本的缩放具有不变性:对输入 ai 的所有隐藏单元同时乘以一个标量,归一化后输出不变。同时,LN 对整个权重矩阵的缩放和偏移具有不变性——权重矩阵等比例缩放不改变归一化输出。

六、与 Transformer 的连接

LN 被 Transformer 采用为标准组件。Transformer 原文将 LN 放在残差连接之后(Post-LN),每个子层后都接 LN。这一设计后来被证明需要 warmup 才能稳定训练,推动了 Pre-LN 的出现。

七、实际影响

LN 成为 Transformer 系列的标准归一化方法,几乎所有现代 NLP 模型都使用它。其不依赖 batch 的特性使其在序列模型中广泛使用。