Ch06 神经网络基础
批归一化 (Batch Normalization) 与归一化家族
概述
批归一化(Batch Normalization,BN)由 Sergey Ioffe 和 Christian Szegedy 于 2015 年提出,是深度学习训练中的一项里程碑式技术。BN 通过对每个 mini-batch 的激活值进行归一化(均值为 0,方差为 1),然后进行可学习的缩放和平移变换,解决了深层网络训练中的内部协变量偏移(Internal Covariate Shift)问题。BN 的出现使得训练数十甚至上百层的网络成为可能,极大加速了深度学习的发展。此后,LayerNorm、InstanceNorm、GroupNorm、RMSNorm 等归一化方法相继提出,形成了一个完整的归一化家族。
为什么需要归一化
深层网络训练中面临的核心问题:
- 内部协变量偏移:各层输入分布随前层参数更新而变化,迫使后续层不断适应
- 梯度消失/爆炸:深层网络中,激活值分布偏移导致梯度消失或爆炸
- 对初始化和学习率敏感:不合适的参数可能导致训练发散
主要归一化方法对比
| 归一化方法 | 归一化维度 | 计算范围 | 适用场景 | 代表模型 | 依赖 Batch Size |
|---|---|---|---|---|---|
| BatchNorm (BN) | 沿 Batch 维度,对每个通道 | (N, H, W) 或 (N, L) | CNN、图像分类 | ResNet, VGG | 是(严重) |
| LayerNorm (LN) | 沿 Feature 维度,对每个样本 | (C, H, W) 或 (D) | Transformer、NLP | BERT, GPT, LLaMA | 否 |
| InstanceNorm (IN) | 沿空间维度,对每个样本每个通道 | (H, W) | 风格迁移、GAN | Pix2Pix, StyleGAN | 否 |
| GroupNorm (GN) | 通道分组,对每组归一化 | (G, H, W) | 小 batch 的 CNN | Mask R-CNN, Detectron2 | 否 |
| RMSNorm | 仅除以 RMS(无中心化),每样本 | (D) | LLM 训练 | LLaMA, T5 | 否 |
| DeepNorm | 改进的 LN + 残差缩放 | (D) | 极深 Transformer | DeepNet | 否 |
BatchNorm 详解
数学公式
对于 mini-batch :
其中 和 是可学习的缩放和平移参数。
训练与推理的差异
| 阶段 | 均值/方差来源 | 影响 |
|---|---|---|
| 训练 | 当前 mini-batch 的统计量 | 引入随机性,有正则化效果 |
| 推理 | 训练期间的移动平均 (running mean/var) | 确定性计算,保证一致性 |
这个差异是 BN 的一个潜在问题:训练和推理行为不一致,在小 batch 时尤为明显。
LayerNorm 详解
LayerNorm 是 Transformer 架构的标准归一化方法,归一化维度是每个样本自身的特征维度:
为什么 Transformer 用 LayerNorm 而非 BatchNorm
| 原因 | 说明 |
|---|---|
| 序列长度可变 | BatchNorm 假设固定维度,NLP 序列长度不固定 |
| 小 batch 训练 | 大模型常用小 batch,BN 统计不准 |
| 自回归生成 | 推理时逐 token 生成,无 batch 可言 |
| 并行计算 | LN 在特征维度归一化,更适合 GPU 并行 |
RMSNorm 详解
RMSNorm 是 LayerNorm 的简化版本,省略了中心化(减去均值)步骤,仅做缩放:
- 优点:计算量减少约 1/3(无需计算均值),训练速度更快
- 应用:LLaMA、Mistral 等主流 LLM 使用 RMSNorm 替代 LayerNorm
归一化方法选择指南
| 场景 | 推荐方法 | 原因 |
|---|---|---|
| 图像分类 (CNN) | BatchNorm | 大 batch 下效果最好,历史最悠久 |
| 目标检测 / 分割 (小 batch) | GroupNorm | 不依赖 batch size |
| NLP / Transformer | LayerNorm / RMSNorm | 序列建模的标准选择 |
| 风格迁移 / 图像生成 | InstanceNorm | 保持每个样本的风格独立性 |
| LLM 训练 | RMSNorm | 计算效率高,效果与 LN 相当 |
| 极深网络 (>100 层) | DeepNorm | 改进的残差连接 + LN |
2026 年趋势
- RMSNorm 主导 LLM:几乎所有新 LLM 使用 RMSNorm
- Pre-Norm vs Post-Norm:Pre-Norm(注意力前归一化)成为默认选择,训练更稳定
- 免归一化架构:部分研究探索完全去除归一化层的可能性(如通过改进的初始化)
- 动态归一化:根据输入动态调整归一化参数
相关笔记
- 激活函数 (Activation Functions) - 归一化常与激活函数配合使用
- 梯度消失与梯度爆炸 (Vanishing/Exploding Gradient) - 归一化解决的核心问题
- Transformer 架构 - LayerNorm 在 Transformer 中的应用
- GELU (Gaussian Error Linear Unit) - GELU + LayerNorm 是 Transformer 的标配组合
来源
- Ioffe & Szegedy (2015) - “Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”: https://arxiv.org/abs/1502.03167
- Ba, Kiros & Hinton (2016) - “Layer Normalization”: https://arxiv.org/abs/1607.06450
- Zhang & Sennrich (2019) - “Root Mean Square Layer Normalization” (RMSNorm): https://arxiv.org/abs/1910.07467
- Wu & He (2018) - “Group Normalization”: https://arxiv.org/abs/1803.08494