一句话定义:层归一化(Layer Normalization,LayerNorm)是把同一个样本内部的特征值统一拉到均值 0、方差 1 附近,再用两个可学习参数做缩放和平移的操作。
它到底在归一化什么
以 Transformer 为例,一层激活通常形如“批量 × 序列长度 × 隐藏维度”。LayerNorm 不跨样本、不跨时间步,而是对每个 token 的隐藏向量单独计算均值和方差,再归一化。公式可写成:先做 (x - 均值) / 根号(方差 + 极小值),再乘缩放参数、加平移参数。
打个比方:一个学生有语数英多科成绩,LayerNorm 是只看这名学生自己的各科分数,算出个人平均分和波动,把每科换成标准分;BatchNorm 则像全班每科统一调分,会受同班同学影响。
和相邻概念的区别
| 方法 | 统计范围 | 依赖批量大小 | 常见场景 |
|---|---|---|---|
| BatchNorm | 跨样本,对每个通道统计 | 强依赖 | CNN、大 batch |
| LayerNorm | 单样本内跨特征统计 | 几乎不依赖 | Transformer、NLP、RNN |
| AI 词典:RMSNorm">RMSNorm | 单样本内按均方根缩放,不减均值 | 几乎不依赖 | 部分大模型结构 |
因此,变长序列、小批量、在线推理时,LayerNorm 通常比 BatchNorm 更省心:推理不需要保存训练期的批量统计,行为不会因为 batch 组成而漂移。
为什么说它是隐形功臣
网络变深后,激活值可能越来越大或越来越偏,梯度跟着不稳定,训练容易发散或收敛很慢。LayerNorm 把每层输入拉回相对稳定的范围,让梯度尺度更可控,于是可以使用更大的学习率,收敛更顺。Transformer 里层归一化的位置也有讲究:放在子层前还是子层后,会影响训练稳定性;具体采用哪种,以模型官方实现为准。
对从业者和普通人的意义
调模型时,如果遇到小 batch 不稳、序列长度变化大、loss 尖刺,先检查归一化位置、eps 和可学习参数初始化,往往比盲目加数据更有效。对普通人,它像一个“个人基线标准化”规则:不拿你和别人直接比,而是先看你自己各项指标的相对高低,再交给后续决策。它不直接让模型更聪明,却是训练能稳定跑完的幕后功臣。
