Ch06 神经网络基础

批归一化 (Batch Normalization) 与归一化家族

概述

批归一化(Batch Normalization,BN)由 Sergey Ioffe 和 Christian Szegedy 于 2015 年提出,是深度学习训练中的一项里程碑式技术。BN 通过对每个 mini-batch 的激活值进行归一化(均值为 0,方差为 1),然后进行可学习的缩放和平移变换,解决了深层网络训练中的内部协变量偏移(Internal Covariate Shift)问题。BN 的出现使得训练数十甚至上百层的网络成为可能,极大加速了深度学习的发展。此后,LayerNorm、InstanceNorm、GroupNorm、RMSNorm 等归一化方法相继提出,形成了一个完整的归一化家族。

为什么需要归一化

深层网络训练中面临的核心问题:

  1. 内部协变量偏移:各层输入分布随前层参数更新而变化,迫使后续层不断适应
  2. 梯度消失/爆炸:深层网络中,激活值分布偏移导致梯度消失或爆炸
  3. 对初始化和学习率敏感:不合适的参数可能导致训练发散

主要归一化方法对比

归一化方法归一化维度计算范围适用场景代表模型依赖 Batch Size
BatchNorm (BN)沿 Batch 维度,对每个通道(N, H, W) 或 (N, L)CNN、图像分类ResNet, VGG是(严重)
LayerNorm (LN)沿 Feature 维度,对每个样本(C, H, W) 或 (D)Transformer、NLPBERT, GPT, LLaMA否
InstanceNorm (IN)沿空间维度,对每个样本每个通道(H, W)风格迁移、GANPix2Pix, StyleGAN否
GroupNorm (GN)通道分组,对每组归一化(G, H, W)小 batch 的 CNNMask R-CNN, Detectron2否
RMSNorm仅除以 RMS(无中心化),每样本(D)LLM 训练LLaMA, T5否
DeepNorm改进的 LN + 残差缩放(D)极深 TransformerDeepNet否

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 / TransformerLayerNorm / RMSNorm序列建模的标准选择
风格迁移 / 图像生成InstanceNorm保持每个样本的风格独立性
LLM 训练RMSNorm计算效率高,效果与 LN 相当
极深网络 (>100 层)DeepNorm改进的残差连接 + LN

2026 年趋势

  1. RMSNorm 主导 LLM:几乎所有新 LLM 使用 RMSNorm
  2. Pre-Norm vs Post-Norm:Pre-Norm(注意力前归一化)成为默认选择,训练更稳定
  3. 免归一化架构:部分研究探索完全去除归一化层的可能性(如通过改进的初始化)
  4. 动态归一化:根据输入动态调整归一化参数

相关笔记

来源

关联10

知识图谱

局部图谱 · 点节点跳转