简单理解深度学习中的多种归一化方法

0 阅读6分钟

在这里插入图片描述

图源网络

  • Mini-Batch Samples (N 轴):代表一个批次中的不同样本(比如,批次里有N张不同的图片)。
  • Channels (C 轴):代表特征图的通道(比如,RGB图像有3个通道,卷积后的特征图可能有64、128个通道)。
  • Merged Spatial Dimensions (H,W 轴):代表一张特征图的高度(H)和宽度(W)上所有的像素点。图中为了方便,把二维的 H x W 展平成了一维。

核心关键:图中蓝色(或绿色)高亮区域代表的是用来计算一组均值和方差的数据范围。也就是说,系统会把这个蓝色区域里所有的数值加起来求平均,再计算它们的方差。然后,用这对均值和方差去归一化这个蓝色区域内的所有数值。

现在,我们来看每一种方法:

1. Batch Normalization (BN) - “跨样本的同频道归一化”

  • 看图说话:蓝色区域像一片“吐司”。它贯穿了整个 N 轴,也覆盖了整个 H,W 轴,但它在 C 轴上只占据了一个位置
  • 含义解读:BN 为每一个通道(Channel)单独计算一对均值和方差。为了计算这个均值和方差,它会使用批次中所有样本在这个通道上的所有像素值。
  • 简单比喻:假设一个班级(Batch)的学生都在考数学(一个 Channel)。BN 就是计算全班所有学生的数学平均分和方差,然后用这个班级的统计数据来标准化每个学生的数学成绩。它对语文、英语等其他科目(其他 Channels)会分别计算各自的平均分和方差。
  • 问题:非常依赖批次大小(Batch Size)。如果批次太小(比如只有1-2个学生),算出来的平均分和方差就没什么代表性,效果会很差。

2. Layer Normalization (LN) - “单个样本的全频道归一化”

  • 看图说话:蓝色区域像一个“平板”。它贯穿了整个 C 轴和整个 H,W 轴,但在 N 轴上只占据了一个位置
  • 含义解读:LN 为每一个样本(Sample)单独计算一对均值和方差。为了计算,它会使用这个样本自己的所有通道和所有像素值。它完全不关心批次里的其他样本是什么样的。
  • 简单比喻:LN 不再看全班成绩。它只看一个学生(一个 Sample),把他自己的所有科目(所有 Channels)的成绩放在一起,计算一个他自己的“综合平均分”和方差,然后用这个“个人数据”来标准化他自己的各科成绩。每个学生都只跟自己比。
  • 优势:与批次大小无关,因此在 RNN、Transformer 以及批次大小很小的场景下表现优异。

3. Instance Normalization (IN) - “单个样本的单频道归一化”

  • 看图说话:蓝色区域是图中最小的单位,像一根“铅笔”或“细棍”。它在 N 轴和 C 轴上都只占据了一个位置,只贯穿了 H,W 轴。
  • 含义解读:IN 为每一个样本的每一个通道都独立计算一对均值和方差。
  • 简单比喻:这比 LN 更极端。它只看一个学生某一门科目(比如一个学生的数学卷子),计算这张卷子所有题目得分的均值和方差。它既不看这个学生的其他科目,也不看其他学生的数学成绩。
  • 应用:这种操作会抹除单个特征图的对比度、亮度等风格信息,但保留内容结构。因此,它在风格迁移领域是绝对的核心,用于将一张图的“风格”(由均值和方差代表)换成另一张图的风格。

4. Group Normalization (GN) - “单个样本的分组频道归一化”

  • 看图说话:GN 像是 LN 和 IN 的折中。和 LN 一样,它在 N 轴上只占据一个位置(只看单个样本)。但和 LN 不同,它不使用所有的 C 通道,而是将通道分成几组(Group)(图中的蓝色和绿色各代表一个组),然后在每个组内进行归一化。
  • 含义解读:GN 为每一个样本计算均值和方差,但是计算范围是一组通道(a group of channels)
  • 简单比喻:还是看一个学生。GN 不会把他所有的科目混在一起算平均分(像LN那样),也不会每科单独算(像IN那样)。它会把科目分成“理科组”(物理、化学)和“文科组”(历史、地理),然后分别计算“理科平均分”和“文科平均分”,再用它们来标准化组内的科目成绩。
  • 优势:它是对 BN 在小批次下性能不佳问题的一个优秀解决方案。它既不完全依赖批次,又不像 LN 那样假设所有通道同等重要,是 CNN 中一个非常实用的替代方案。

总结表格

名称归一化范围计算均值/方差的数据池BATCH依赖
Batch Norm通道整个批次,单个通道
Layer Norm样本单个样本,所有通道
Instance Norm样本+通道单个样本,单个通道
Group Norm样本+通道组单个样本,一组通道
维度Batch NormalizationLayer NormalizationInstance NormalizationGroup NormalizationRMSNorm
归一化维度沿 Batch 维度 (对每个通道单独归一化)沿 特征维度 (对每个样本单独归一化)对每个样本的每个通道单独归一化沿通道组维度 (对每个样本的通道分组后归一化)沿 特征维度 (无均值中心化
计算开销 (需统计Batch维度均值/方差并同步) (需统计特征维度均值/方差) (统计量最多,但计算域小) (介于LN和IN之间) (仅统计特征维度二阶矩/RMS)
Batch依赖 (Batch Size小效果差)
优点CNN中的标准组件,加速训练,提升泛化能力与Batch Size无关,对RNN/Transformer等变长序列友好完美解耦内容与风格,是风格迁移的核心小Batch下的稳定替代方案,性能优于LN计算高效,作为LN的轻量替代品,在LLM中广泛应用
缺点依赖Batch Size,对动态网络不友好计算开销相对较高,可能抑制部分模型表达能力移除实例特有信息,不适合分类等辨别式任务需额外设置超参数(分组数量G),性能对G敏感无均值中心化,理论上可能损失部分信息(但实践中影响甚微)