Batch Normalization

Batch Normalization

让训练更稳

批归一化(Batch Normalization,简称 BN)是深度神经网络训练中对 mini-batch 各特征维度做标准化的技术,由 Google 研究员 Sergey Ioffe 与 Christian Szegedy 于 2015 年提出,能显著加速收敛并提升训练稳定性,成为现代 CNN 的标配组件。

概述

批归一化的核心目标是稳定每层的输入分布,使深层网络可用更大学习率更快收敛。

  • 归一化位置:通常插在线性变换之后、激活函数之前(也有放激活后的变体)
  • 可学习参数:每个特征维度各有一对 γ(缩放)和 β(偏移),确保归一化不限制模型表达能力
  • 官方动机:论文将 BN 归因于缓解「内部协变量偏移」(Internal Covariate Shift),即前层参数更新导致后层输入分布持续漂移
  • 后续质疑:Santurkar 等(2018)研究表明 BN 的收益更可能来自对损失曲面的平滑效果,而非直接消除分布偏移
  • 实测效果:原论文报告在 ImageNet 分类任务上以约 1/14 的训练步数达到相同精度

工作原理

BN 在训练与推理两个阶段行为不同,需明确区分。

  • 训练阶段:对当前 mini-batch 计算每个特征维度的均值 μ 和方差 σ²,标准化公式为 x̂ = (x − μ) / √(σ² + ε)
  • 仿射变换:标准化后经 y = γx̂ + β 恢复任意分布,γβ 均通过反向传播学习
  • 推理阶段:使用训练时以滑动平均方式积累的全局运行均值与方差,推理结果与 batch 大小无关
  • 卷积网络中的统计维度:在批次和空间(H×W)维度共同统计,每个通道各有独立的 (γ, β)
  • ε 的作用:分母加极小常数(如 1e-5)防止方差为零时除零崩溃

主要归一化变体

BN 沿批次维度统计,由此衍生出多种针对不同场景的归一化方案。

  • Layer Normalization(LN):在单样本的特征维度上归一化,与 batch 大小无关,是 Transformer / BERT / GPT 系列的标配
  • Instance Normalization(IN):在单样本单通道内归一化,常用于风格迁移任务
  • Group Normalization(GN):将通道分组后在组内归一化,专为小 batch 场景设计,在目标检测(Mask R-CNN 等)中广泛使用
  • RMSNorm:去掉均值中心化步骤,只做方差归一化,LLaMA 系列采用此方案以降低计算开销

应用场景

BN 在图像视觉任务中是标准配置,但在序列模型中已被 LN 广泛取代。

  • 图像分类:ResNet、InceptionV3、EfficientNet 等主流骨干网络均大量使用 BN
  • 目标检测与分割:Faster R-CNN、YOLO 系列训练时依赖 BN;小 batch 场景(如 2 张图/GPU)改用 GN
  • 生成对抗网络:DCGAN 的生成器中使用 BN;判别器一般改用 Spectral Normalization 以提升稳定性
  • 不适用场景:Transformer 类语言模型(BERT、GPT 全系列)和 RNN 默认使用 LN 而非 BN

局限与常见误区

BN 存在若干实践中易踩坑的限制。

  • 小 batch 失效:batch size 过小(如 ≤ 4)时单批统计噪声极大,训练不稳定,应换用 GN 或 LN
  • 不适合 RNN:不同时间步特性差异大,BN 在时间维度统计意义不明确,序列模型通常用 LN
  • 训练/推理模式切换:推理时必须切换到 eval 模式使用全局统计量,否则结果随 batch 构成抖动
  • 误区——BN 即正则化:BN 的正则化副作用(可减少对 Dropout 的依赖)只是副产物,不能替代专用正则化策略
  • 误区——BN 越多越好:在 Transformer 中强插 BN 往往损害性能,归一化方式须与架构匹配

发展脉络

BN 提出后迅速成为深度学习标配,并持续催生新的归一化研究。

  • 2015:Ioffe 与 Szegedy 在 arXiv 发布 BN 论文(1502.03167),同年于 ICML 2015 正式发表;ResNet 将 BN 纳入标准残差块
  • 2016:Ba 等人提出 Layer Normalization,为 Transformer 类模型铺路
  • 2017:Transformer(「Attention Is All You Need」)采用 LN,BN 在 NLP 领域开始淡出
  • 2018:Wu 与 He 提出 Group Normalization,解决小 batch 目标检测场景的局限;Santurkar 等质疑内部协变量偏移理论,提出平滑损失曲面才是关键
  • 2020 年后:LLaMA 等大语言模型普遍采用 RMSNorm,BN 在 CNN 图像任务中仍是主流

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「让训练更稳」
  • 「深度学习必修课」
  • 「跟 Batch Normalization 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    正则化:BatchNorm, LayerNorm, Dropout

    从 Dropout 到 LayerNorm,掌握防止过拟合的核心技术

  2. 2

    神经网络基础:从感知机到多层网络

    理解神经元、激活函数、反向传播和梯度消失问题

外部参考

维基百科:查看「Batch Normalization」词条

本页内容为本站原创撰写;维基百科链接仅作延伸参考。