跳到主内容

什么是批归一化?它和层归一化差在哪

2026-10-06 发布 来源:我告诉你AI导航 阅读

训练一个几十层的 AI 网络时,常会遇到一种说不清的现象:结构没动、数据没换,只是把层数加深,损失就开始在早期剧烈跳动,怎么调都稳不下来。批归一化就是为这类不稳定设计的,它把每层收到的数值重新拉回统一尺度,让后面的层不必追赶前面不断...

训练一个几十层的 AI 网络时,常会遇到一种说不清的现象:结构没动、数据没换,只是把层数加深,损失就开始在早期剧烈跳动,怎么调都稳不下来。批归一化就是为这类不稳定设计的,它把每层收到的数值重新拉回统一尺度,让后面的层不必追赶前面不断变化的分布。它和层归一化经常被并列提起,两者的差别看着只是一个统计维度,实际决定了能不能互换。

它压住的是数值尺度的漂移

网络里每一层的输出都要经过下一层的权重相乘。前一层参数一更新,输出的均值和方差就跟着变,后一层相当于每次都在适应一个新的输入分布,层数越多,这种变化被放大的次数越多。批归一化在每层的线性变换之后、激活之前插一步:对当前这批样本,按每个特征维度算出均值和方差,把数值标准化成零均值、单位方差,再用两个可学习参数缩放和平移,把表达能力还回去。关键在于按特征维度、跨样本统计——同一批里不同样本的数据被放在一起算,这是它后面所有优点和缺点的源头。

和层归一化的差别不止统计维度

对比项批归一化层归一化
统计范围跨样本,对每个特征维度单独算跨特征,对每个样本单独算
对批大小的依赖强依赖,批太小则均值方差估不准无依赖,批大小为 1 也能算
推理时怎么算用训练期累计的滑动统计量,与当前批无关与训练时完全一致,逐样本现算
变长序列要处理填充位,否则统计被无效值污染天然适配,逐样本逐位置计算
常见落点图像分类的卷积网络Transformer、循环网络、语音

第三行最容易出问题。批归一化在训练和推理时走的不是同一套计算,训练用它自己这批数据的真实统计量,推理用训练期攒下来的滑动平均。两套数值对不上,模型上线后的表现就会和验证时不一致,这类问题在 训练与推理的差异 里属于典型代表。

为什么它不能随手换成层归一化

反过来也一样。有人以为把批归一化换成层归一化只是换个函数调用,实际会改掉三件事。统计口径变了,等于给每层换了一套输入分布,原来调好的学习率和权重衰减不再匹配。批归一化的正则效应消失了——它按批统计,等于给每个样本的表示注入了依赖同批其他样本的噪声,这种噪声有轻微的正则作用,换掉之后小数据集上更容易过拟合。卷积网络里还有一层空间结构:批归一化对每个通道跨样本跨位置统计,层归一化若按整张特征图统计,会把不同通道的尺度混在一起。想细看层归一化的统计方式,可参考 层归一化怎么逐样本归一。

Transformer 为什么几乎不用它

文本训练有两个特点,正好踩在批归一化的短板上。一是序列长度不齐,一个批里短句要补到最长句的长度,填充位会把统计量拉偏,得额外写掩码逻辑,实现容易出错。二是批大小经常被迫调小,长序列显存吃紧时一个批可能只有几条样本,这时候算出来的均值和方差噪声极大,归一化本身反而成了不稳定源。层归一化只依赖单个样本,批怎么变、序列多长,行为都一样,这种一致性对深层堆叠很重要。所以这个选择跟风格偏好无关,是数据结构逼出来的。

小 batch 下它会失准

批归一化的失效条件很明确。批大小低于一定规模时统计不可靠,业界常见做法是批小于某个阈值就改用其他归一化,或者用跨卡同步统计把有效批做大,代价是通信开销。批内样本如果高度相关,比如按类别排序采样导致一个批里全是同一类,统计量会系统性偏移,训练看起来正常但泛化变差。它也不解决初始化问题,只是把对初值的敏感度降低了一部分;网络里如果有数值溢出,归一化只能掩盖,修不好根因。还有一点常被误解:早期论文把它的作用归功于消除内部协变量偏移,后续研究对这个解释有争议,更被接受的看法是它让损失曲面更平滑、允许更大的步长。成因的差异会影响你怎么用它——若它主要在平滑优化,那它和 梯度下降 的步长设置就该一起调,而不是当成独立的稳定器。

怎么判断该用哪个

看数据的组织方式就够了。图像、批大小能开到几十以上、每张图尺寸固定,批归一化通常更合适,它的正则效应和卷积结构配合得好。文本、语音、变长序列,或者批大小被迫压到个位数,层归一化几乎是默认答案。混合结构里也有折中方案,比如视觉 Transformer 用层归一化、检测头的卷积部分保留批归一化。判断标准只有一条:统计范围要和数据的自然分组对齐,样本之间可以互相参考就用批,样本必须独立处理就用层。选错了不会立刻报错,只会表现为训练不稳、验证与线上不一致,这类问题排查起来比崩溃更费时间。

速查:批归一化与层归一化

  • 批归一化跨样本统计,依赖批大小;层归一化跨特征统计,逐样本独立
  • 批归一化训练用批统计、推理用滑动平均,两套数值必须对齐
  • 批太小、序列变长、批内样本相关,都是批归一化的失效条件
  • 选择依据是数据的分组方式,与新旧无关

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]