A05 · 第 3 章 · 第二编 训练稳定性
归一化方法与尺度控制
区分输入标准化与网络内部归一化,统一写出标准化和可学习仿射变换,比较 BatchNorm、LayerNorm 与 GroupNorm 的统计轴、运行统计和训练推理状态,并处理小批量与 epsilon 边界。
报告页面错误本章目标
- 区分由训练集冻结的输入标准化和随网络层计算的表示归一化。
- 根据张量轴写出 BatchNorm、LayerNorm 与 GroupNorm 的统计集合和输出形状。
- 解释 BatchNorm 训练批统计、运行统计与推理模式的不同路径。
- 分析小批量、相关样本、近常数特征和 epsilon 对输出及梯度的影响。
- 用固定张量、模式切换和统计日志核验归一化实现。
本页目录
输入标准化与内部归一化解决不同问题
输入标准化使用训练数据估计每个原始特征或图像通道的均值与尺度,再把同一固定变换应用到验证、测试和部署。它统一单位、改善优化条件,并定义模型接受的输入合同。网络内部归一化则在某层激活上按指定轴计算统计量,通常还带可学习缩放和平移;它改变网络函数和梯度耦合,不是简单的数据清洗。
两类操作都不能看见测试分布后重估参数。输入训练均值、标准差、裁剪范围属于模型状态;若部署时逐批重新标准化,单个样本预测会依赖同批其他样本,语义已经改变。对时间数据还要按可用历史滚动估计,不能用未来均值修正过去。
训练特征取值为 ,均值三;用总体式分母三得到方差 、标准差约一点六三三。训练标准化后约为 。验证值七必须使用训练统计,得到 。
若把验证值七也加入后重算均值和标准差,验证信息改变了训练变换,且线上每来一个样本都可能改变历史预测。正确工件应保存均值三、方差八除以三、epsilon 与特征顺序,并对缺失和常数特征给冻结规则。
一个通用标准化模板
对某个统计集合 中的值,先算
再输出
差异主要在集合 由哪些轴组成,以及训练和推理用哪组统计。 恢复模型按任务选择尺度和中心的能力;归一化没有强迫每层最终输出永远均值零、方差一。方差分母、epsilon 放在根号内还是外、数据类型和运行统计更新方式都属于实现合同。
若方差接近零,epsilon 防止除零并限制放大。epsilon 过小在低精度中仍可能下溢,过大则让标准化更像除以固定常数,输出方差小于一。它不是无关紧要的小数。
BatchNorm 跨批次统计每个通道
全连接激活形状为 时,BatchNorm 对每个通道跨 个样本计算均值和方差。卷积激活常为 ,则对固定通道 ,统计轴通常是 ,共有 个值; 只沿通道变化并广播到其他轴。
训练模式使用当前小批统计,因此一个样本的输出依赖同批其他样本,反向梯度也通过均值和方差耦合整批。BatchNorm 不是对每个元素独立执行的固定仿射层。批次组成改变可引入噪声,这有时产生正则效果,有时破坏时间、群组或小批任务。
某通道在一个批次只有四个值 。批均值为四,按分母四的批方差为五。若 暂忽略、,标准化值为 ,输出约为 。
四个输出的批均值是负一,正是 ;输出方差约为四,正是 。若只改变第一个输入,均值和方差也变,四个输出都会变化。实际 epsilon 使方差略小于理想值,应使用库定义精确复算。
训练与推理使用两条统计路径
部署单样本时不能依赖临时批组成,BatchNorm 推理模式通常使用训练期间累积的运行均值和运行方差。常见指数更新可写成
方差类似。但不同库把参数称作 momentum 时可能用相反约定,批方差与运行方差还可能采用不同分母修正;复现应看公式而不是只抄参数名。
运行统计不是普通可训练参数,通常不由梯度更新,却必须保存进检查点。验证和测试要切换推理模式;若忘记切换,结果依赖验证批大小和顺序。反过来,恢复训练却保持推理模式,统计不更新且前向使用旧值,也会改变优化。
运行均值初始为零,更新权重 。连续两个训练批均值为四和六,则第一次后 ,第二次后 。它并不是两个批均值的简单平均五,因为指数权重和初始状态不同。
若此时推理输入为七,归一化中心使用运行均值零点九六,而不是单样本均值七,也不是最后一批均值六。要完整求输出还需同步保存运行方差、epsilon、。模型参数正确但运行统计丢失,预测仍会错误。
训练结束后的运行统计可能不匹配最终权重,尤其批次很小、学习率大或微调数据少时。可在冻结权重后,用代表性训练数据无梯度地重估统计,但流程必须预先定义且不得使用测试标签或测试分布偷调。若部署域变化,重新估统计属于模型更新,需要独立验证。
小批量会让 BatchNorm 统计不稳定
小 并不总等于统计样本少:卷积 BatchNorm 还跨空间位置,但这些位置高度相关,不能按 当独立证据。检测与分割常因高分辨率只能使用很小批量,批统计随图像内容剧烈变化。若一个批次全来自同一视频或同一患者,相关性更强。
可选策略包括累积更大同步批统计、冻结预训练运行统计、使用 GroupNorm 或 LayerNorm,或重新设计批采样。同步 BatchNorm 在设备间汇总和、平方和,增加有效批量但有通信成本,且仍要避免相关样本。梯度累积不会自动扩大每次 BatchNorm 的统计批,因为各微批前向已分别归一化。
LayerNorm 在单个样本内部归一
LayerNorm 对每个样本独立,在指定特征轴计算均值和方差,不使用跨样本运行统计。对序列张量 ,常对每个样本、每个位置的最后维 归一, 形状为 ;批大小和序列中其他位置通常不进入该统计集合。
训练与推理都使用当前样本的相同计算,因此没有 BatchNorm 式运行均值。它适合可变批量和序列模型,但仍让同一特征向量各维耦合。若隐藏维很小或多数维常数,方差估计与 epsilon 会主导。归一化轴选错为包含时间轴,会让一个 token 输出依赖未来 token,可能破坏自回归语义。
两个样本的三维表示分别为 与 。每个样本均值分别为二和二十,标准差分别为 与 。忽略 epsilon 后,两者标准化结果都为约 。
第一样本如何变化不会改变第二样本的统计。若 ,第二维输出均为一,其余维保持相应标准化值。LayerNorm 消除了整体平移和正尺度,却由可学习仿射重新引入逐维表达能力。
GroupNorm 在通道组内取统计
对卷积张量 ,GroupNorm 把每个样本的 个通道分成 组,在每组的通道与空间轴上计算统计。它不跨样本,因此训练推理路径一致,对小批更稳定。 必须整除或按实现规则分配通道。
时每组一个通道,接近实例归一化; 时对单样本全部通道和空间归一,是一种卷积语境的层式归一化,但与只归一最后特征维的 LayerNorm 轴不必相同。方法名称不能代替轴说明。
单样本有四个通道,每通道只有两个空间值:通道一 、二 、三 、四 。取两组,则第一组统计四个值 ,均值四;第二组统计 ,均值十三。
每组分别标准化,第一组不会受第三、四通道影响。若改为一组,八个值共同决定均值;若改为四组,每通道单独用两个空间值。组数改变了被消除的尺度与可表达关系,应在验证协议内选择,而不是把小批稳定性当唯一标准。
epsilon、精度和方差算法必须核对
低精度训练中,均值和平方差若直接用低精度累积,可能因抵消或范围不足得到负的舍入方差、零方差或溢出。常在更高精度累积统计,再把标准化结果转回计算精度。稳定的在线方差算法与简单的“平方均值减均值平方”在大均值小波动时差异明显。
epsilon 放在 内与放在 外不等价。迁移模型或重写内核时,要保存具体公式。近常数组中输出主要由 决定,epsilon 也影响梯度上界;调整它需要重新验证而非只看训练是否有限。
归一化放在仿射、激活或残差加法的哪一侧也会改变函数。前归一化让后续子层接收受控输入,后归一化则改变残差相加后的尺度;二者的梯度路径和推理状态不同。迁移权重时不能只看层名相同,还要核对运算顺序、是否有偏置以及 的初值。把位置改变当成普通超参数,需要重新训练并独立比较。
归一化核验清单
用一个可手算小张量检查统计轴、方差分母、epsilon 和仿射形状;分别在训练与推理模式重复同一输入,确认 BatchNorm 路径有预期差异、LayerNorm 与 GroupNorm 路径一致。保存并恢复检查点,比较运行统计和输出。改变批大小与样本顺序,观察 BatchNorm 敏感性。
训练日志记录每层输入输出均方根、方差接近零比例、 范数、运行均值方差和非有限值。验证失败时区分数据输入标准化、层统计、运行状态和部署分布变化,不能一概称为“归一化问题”。
练习
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
查看提示
查看解答
关系与资源
- 参数初始化与梯度流 提供尺度传播与逐层诊断。
- 期望、方差与协方差 支持统计量与相关性解释。
- 批归一化 延伸批统计与反向耦合。
- 正则化、数据增强与早停 区分尺度控制和泛化控制。
- 混合精度、分布式训练与检查点 连接统计精度和同步批归一化。
- 调试、复现实验与工程方法综合复习 汇总模式与状态核验。
Deep Learning
Ian Goodfellow, Yoshua Bengio, Aaron Courville
适合作为反向传播和优化章节的完整参考。
打开官方来源