跳到主内容
快讯直播
AI智模界
AI 词典

批归一化:让神经网络训练不再忽快忽慢

一句话定义:Batch Normalization(批归一化,简称 BN)是在训练时,对每一个小批量(mini-batch)样本的同一个特征维度,统一做“减均值、除标准差”的标准化,再乘一个可学习的缩放、加一个可学习的偏移,把中间层的数值拉回稳定区间。

打个比方:把一个班学生的考试原始分换算成标准分。每个班自己算平均分和标准差,换算之后,不管卷子难易,分数都能放在同一把尺子上比较。关键也在这里:这个标准分依赖于“同班同学是谁”——班里换了一批人,换算结果就变了。BN 同样如此,它的统计量来自当前这个 batch。

它解决什么问题:深层网络里,前面一层的参数一更新,后面一层看到的输入分布就跟着漂移,后面的层得不停追赶新分布,训练容易震荡、收敛慢。BN 把每层输入稳定在均值 0、方差 1 附近,于是可以用更大的学习率、对参数初始化不那么挑,还因为每个 batch 的统计量自带噪声,顺带有轻微正则化效果。

AI 词典:LayerNorm">LayerNorm 的区别:两者都是归一化,区别在于“对谁求平均”。

对比项Batch NormalizationLayer Normalization
统计范围跨样本,在同一特征上算单个样本内部,跨特征算
依赖 batch是,batch 大小和组成影响结果否,单条样本即可算
常见场景CNN 图像任务、batch 较大RNN、Transformer、变长序列、小 batch
推理使用训练时累积的固定统计量每条样本现算,无此问题

为什么推理时必须固定统计量:训练时每个 batch 的均值和方差都在变;而推理时可能一次只来一条样本,根本凑不出“一个班”。所以训练过程中会用滑动平均把各 batch 的统计量累积下来,推理时统一用这套固定值,保证同一条输入永远得到同一个输出。这也是训练和推理结果偶有细微差异的来源之一。

对从业者的意义:BN 基本是 CNN 的默认组件,但它对 batch 大小敏感,batch 太小会不稳;多卡训练时通常需要跨卡同步统计量。做在线推理、边缘设备或变长序列时,往往改用 LayerNorm 或 GroupNorm。对普通人:这解释了为什么同一个模型换个批量大小表现会变,也解释了“批量大小”为什么是训练模型时要拧的旋钮之一。具体实现细节和推荐配置,以各框架官方文档为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。