LayerNorm(层归一化)
一种归一化技术,对单个样本的特征维度做标准化(均值为0、方差为1),再通过可学习参数缩放和平移。在Transformer中紧跟每个子层之后,稳定训练过程,加速收敛。
LayerNorm(层归一化)
一句话理解
对每个 token 的特征向量做标准化——拉到均值 0、方差 1,再用可学习参数缩放和平移,让训练更稳定。
公式
LayerNorm(x)=γ⋅σ2+ϵx−μ+β- μ,σ2:在特征维度上计算的均值和方差
- γ,β:可学习的缩放和偏移参数
- ϵ:防止除零的小常数
为什么需要归一化
深层网络训练时,每层的输入分布会随着训练不断变化(内部协变量偏移)。如果不做归一化,某些维度的值可能爆炸式增长或缩小到接近零,导致梯度不稳定、训练难以收敛。
在 Transformer 中的位置
text
Self-Attention → Add(残差) → LayerNorm → FFN → Add(残差) → LayerNorm
每个子层之后都有一次 LayerNorm,与残差连接配合使用。
LayerNorm vs BatchNorm
| 维度 | LayerNorm | BatchNorm |
|---|---|---|
| 归一化方向 | 单个样本的所有特征 | 一个 batch 内同一特征 |
| 对 batch 大小敏感 | 否 | 是 |
| 主要用于 | Transformer / NLP | CNN / CV |
Transformer 选择 LayerNorm 是因为序列长度不固定,且不希望依赖 batch 统计量。
引用本术语的文章