归一化与残差连接
让上百层的网络真正训得动:一条恒等捷径,加一次每层的重新标定
定义
归一化(BatchNorm/LayerNorm/RMSNorm)在每一层对激活做重新标定,稳定各层输入的分布;残差连接让每层只需学习“在输入基础上改多少”(H(x) = F(x) + x),为梯度提供一条恒等捷径。两者配合,使原本会退化或无法收敛的深层网络变得可训练。
直观理解
残差连接像给长途接力加了一条“直达通道”:即便中途有几棒传丢,信号也能沿捷径原样抵达,梯度不必穿越每一层。归一化则像每层开工前先把原料归到统一量纲——否则层数越深,数值越容易漂移,训练就像用两把不匹配的尺子去量东西。两者解决的是同一个问题的两面:信号如何在很深的网络里,既不衰减也不漂移地流动。
普通堆叠与残差连接的分野:前者要求梯度穿越每一层,后者提供一条恒等捷径,使百层以上仍可训练
在 ImageNet 上,加深网络的两种命运:只堆深度会退化(更深反而更差),加上归一化与残差连接后越深越准。数值为 top-1 准确率(%),取自 ResNet 论文量级
工作原理
- 01
内部协变量偏移
每更新一层,后面所有层的输入分布就跟着改变,它们不得不反复适应。归一化把每层的激活重新拉到稳定的均值与方差,缓解这种“追着移动目标跑”的问题。
- 02
BatchNorm / LayerNorm / RMSNorm
BatchNorm 沿批量维度归一化,对 CNN 有效但依赖批量大小、不适合变长序列;LayerNorm 对每个样本的特征维归一化,与批量无关,是 Transformer 的基础;RMSNorm 去掉均值、只做均方根缩放,更快更省。
- 03
残差连接与退化问题
更深的普通网络反而训练误差更高,这不是过拟合,而是“退化”。残差让恒等映射变得平凡(把 F 学成 0 即可),于是加深至少不会让结果变差。
- 04
He 初始化与梯度尺度
针对 ReLU,He 初始化把权重方差设为 2/n(n 为输入维度),使前向激活与反向梯度的方差在层间保持稳定,是残差网络能叠加很多块的必要配套。
应用场景
- 残差 + 归一化是 ResNet 及几乎所有深层 CNN 的标配
- LayerNorm / RMSNorm 是 Transformer 与大语言模型的基础组件
- 稳定大规模分布式训练:加快收敛、允许更大的学习率
- 配合 He 初始化与预激活(pre-activation)结构进一步提升稳定性
常见误区
- BatchNorm 在批量很小时统计量很不稳定,推理阶段必须改用训练期累积的滑动平均,否则结果会随批量大小剧烈波动。
- LayerNorm/RMSNorm 与 BatchNorm 不能随意互换:前者适合序列与变长数据,后者在卷积与大批量图像任务上往往更有效。
- 残差能缓解退化,却不能替代正则化;极深的模型依然需要仔细調参,否则仍可能不稳定。
关键术语
- 内部协变量偏移
- 训练中后续层输入分布不断变化的现象
- 退化问题
- 更深的网络训练误差反而更高,且非过拟合
- 恒等捷径
- 残差连接中把输入直接加回输出的那条通路
- 预激活
- 把归一化放在卷积之前的结构,训练更稳