【归一化总结】BatchNorm(BN)、InstanceNorm(IN)、LayerNorm(LN) 和 GroupNorm(GN)

文章目录

    • 基础归一化方法:LayerNorm、InstanceNorm、BatchNorm 对比
    • **1. BatchNorm(BN - Batch Normalization)**
      • **原理**
      • **特点**
    • **2. InstanceNorm(IN - Instance Normalization)**
      • **原理**
      • **特点**
    • **3. LayerNorm(LN - Layer Normalization)**
      • **原理**
      • **特点**
    • **4. GroupNorm(GN - Group Normalization)**
      • **原理**
      • **特点**
    • **对比总结:BN、IN、LN、GN**
    • **条件归一化方法对比:AdaLN 和 AdaIN**
      • 1. **AdaIN(Adaptive Instance Normalization)**
      • 2. **AdaLN(Adaptive Layer Normalization)**
      • **对比总结:AdaLN 和 AdaIN**
    • **AdaLN-Zero 与 AdaLN 的对比**
      • 1. **AdaLN-Zero**
      • **对比总结:AdaLN 和 AdaLN-Zero**
      • **条件归一化方法对比**


基础归一化方法:LayerNorm、InstanceNorm、BatchNorm 对比


1. BatchNorm(BN - Batch Normalization)

原理

Batch Normalization 基于 mini-batch 的统计信息(均值和方差)对输入特征进行归一化。公式如下:

BN ( x ) = x − μ B σ B 2 + ϵ ⋅ γ + β \text{BN}(x) = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} \cdot \gamma + \beta BN(x)=σB2+ϵ xμBγ+β

  • x x x: 输入特征。
  • μ B \mu_B μB, σ B 2 \sigma_B^2 σB2: 当前 mini-batch 的均值和方差(逐通道计算)。
  • γ \gamma γ, β \beta β: 可学习的缩放和平移参数。
  • ϵ \epsilon ϵ: 防止除零的小值。

特点

  • 归一化范围: mini-batch 的每个通道。
  • 依赖全局统计信息: 在推理阶段,使用全局均值和方差(通过滑动平均计算)。
  • 优点:
    • 加速训练,稳定梯度。
    • 减轻梯度消失和梯度爆炸问题。
  • 缺点:
    • 对小批量数据性能较差,因为统计信息可能不准确。
    • 对序列建模(如 RNN)或生成任务效果有限。
    • 依赖 batch size,过小的 batch size 会使其效果变差。

2. InstanceNorm(IN - Instance Normalization)

原理

Instance Normalization 对每个样本的每个通道分别计算均值和方差进行归一化。公式如下:

IN ( x ) = x − μ C σ C 2 + ϵ ⋅ γ + β \text{IN}(x) = \frac{x - \mu_C}{\sqrt{\sigma_C^2 + \epsilon}} \cdot \gamma + \beta IN(x)=σC2+ϵ xμCγ+β

  • μ C \mu_C μC, σ C 2 \sigma_C^2 σC2: 单个样本的每个通道的均值和方差。
  • γ \gamma γ, β \beta β: 可学习的缩放和平移参数。

特点

  • 归一化范围: 单个样本的每个通道。
  • 优点:
    • 更适合图像生成任务(如风格迁移),因为它能移除样本间的风格差异。
    • 不依赖 batch size。
  • 缺点:
    • 忽略了 batch 和全局统计信息。
    • 对分类任务或需要捕获样本间关系的任务效果不佳。

3. LayerNorm(LN - Layer Normalization)

原理

Layer Normalization 对每个样本的所有特征维度进行归一化。公式如下:

LN ( x ) = x − μ σ 2 + ϵ ⋅ γ + β \text{LN}(x) = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} \cdot \gamma + \beta LN(x)=σ2+ϵ xμγ+β

  • μ \mu μ, σ 2 \sigma^2 σ2: 对一个样本的所有特征维度计算均值和方差。
  • γ \gamma γ, β \beta β: 可学习的缩放和平移参数。

特点

  • 归一化范围: 单个样本的所有特征维度。
  • 优点:
    • 不依赖 batch size,非常适合小批量任务。
    • 对序列建模任务(如 NLP、RNN 和 Transformer)效果显著,因为它对每个样本单独归一化。
  • 缺点:
    • 忽略样本间的统计信息。
    • 不适合需要跨样本统计的任务。

4. GroupNorm(GN - Group Normalization)

原理

Group Normalization 是对通道分组后计算归一化。每组通道内的值共享均值和方差,公式如下:

GN ( x ) = x − μ G σ G 2 + ϵ ⋅ γ + β \text{GN}(x) = \frac{x - \mu_G}{\sqrt{\sigma_G^2 + \epsilon}} \cdot \gamma + \beta GN(x)=σG2+ϵ xμGγ+β

  • G G G: 分组数。
  • μ G \mu_G μG, σ G 2 \sigma_G^2 σG2: 每组通道的均值和方差。
  • γ \gamma γ, β \beta β: 可学习的缩放和平移参数。

特点

  • 归一化范围: 每个样本的每组通道。
  • 优点:
    • 不依赖 batch size,适合小批量任务。
    • 对分类任务和图像生成任务都表现较好。
  • 缺点:
    • 需要人为设置分组数 G G G,分组数选择不当可能影响性能。
    • 相比 BN,计算稍复杂。

对比总结:BN、IN、LN、GN

特性 BatchNorm (BN) InstanceNorm (IN) LayerNorm (LN) GroupNorm (GN)
归一化范围 mini-batch 的每个通道 样本的每个通道 样本的所有特征维度 样本的每组通道
依赖 batch size
动态性 基于 batch 统计 基于样本统计 基于样本统计 基于样本统计(分组归一化)
适用场景 大批量分类任务 图像生成,风格迁移 NLP、序列任务、小批量任务 小批量分类、检测、生成任务
优点 稳定训练,加速收敛 去除样本间风格差异 独立于 batch size 适合小批量任务,通用性强
缺点 小批量效果差,依赖 batch size 忽略全局统计信息 忽略样本间统计信息 需要手动调节分组数

条件归一化方法对比:AdaLN 和 AdaIN

1. AdaIN(Adaptive Instance Normalization)

AdaIN 是 InstanceNorm 的扩展,用于动态调整归一化后的特征分布。主要应用于风格迁移任务。

公式
AdaIN ( x , y ) = σ ( y ) ⋅ x − μ ( x ) σ ( x ) + μ ( y ) \text{AdaIN}(x, y) = \sigma(y) \cdot \frac{x - \mu(x)}{\sigma(x)} + \mu(y) AdaIN(x,y)=σ(y)σ(x)xμ(x)+μ(y)

  • x x x:输入特征(如内容图像的特征)。
  • y y y:风格编码(如风格图像的特征)。
  • μ ( x ) \mu(x) μ(x), σ ( x ) \sigma(x) σ(x):输入特征的均值和标准差(逐通道计算)。
  • μ ( y ) \mu(y) μ(y), σ ( y ) \sigma(y) σ(y):风格编码的均值和标准差。

特点

  • 归一化范围:单个样本的每个通道。
  • 动态性:通过风格编码动态调整均值( μ ( y ) \mu(y) μ(y))和标准差( σ ( y ) \sigma(y) σ(y))。
  • 适用场景:风格迁移、图像生成。

2. AdaLN(Adaptive Layer Normalization)

AdaLN 是 LayerNorm 的扩展,通过条件输入动态调整归一化参数。

公式
AdaLN ( x , z ) = x − μ σ 2 + ϵ ⋅ γ ( z ) + β ( z ) \text{AdaLN}(x, z) = \frac{x - \mu}{\sqrt{\sigma^2 + \epsilon}} \cdot \gamma(z) + \beta(z) AdaLN(x,z)=σ2+ϵ xμγ(z)+β(z)

  • x x x:输入特征。
  • z z z:条件输入(如任务编码)。
  • γ ( z ) \gamma(z) γ(z), β ( z ) \beta(z) β(z):由条件输入动态生成的缩放和平移参数。
  • μ \mu μ, σ 2 \sigma^2 σ2:对输入 x x x 的归一化(基于 LayerNorm)。

特点

  • 归一化范围:单个样本的所有特征维度(与 LayerNorm 相同)。
  • 动态性:条件输入控制归一化参数。
  • 适用场景:条件生成、多任务学习。

对比总结:AdaLN 和 AdaIN

特性 AdaIN AdaLN
归一化范围 样本的每个通道 样本的所有特征维度
动态性来源 风格编码(均值与方差) 条件输入生成缩放和平移参数
适用场景 风格迁移、图像生成 条件生成、多任务学习
复杂性 中等

AdaLN-Zero 与 AdaLN 的对比

1. AdaLN-Zero

AdaLN-Zero 是 AdaLN 的变体,最关键的区别在于初始化策略。为了更好地适应条件输入,AdaLN-Zero 的参数在初始化时设置为零,使得初始状态下归一化效果接近原始 LayerNorm。

  • γ ( z ) \gamma(z) γ(z) β ( z ) \beta(z) β(z) 的初始值为零。
  • 这样,初始模型的预测与标准 LayerNorm 一致,条件输入的影响逐渐被学习到。

优点

  • 提升了模型在初始阶段的稳定性。
  • 更适合多任务学习或生成任务中条件输入较弱的情况。

缺点

  • 与 AdaLN 相比,AdaLN-Zero 初始阶段的动态性被约束,需要更多的训练时间来学习条件输入的影响。

对比总结:AdaLN 和 AdaLN-Zero

特性 AdaLN AdaLN-Zero
动态性 条件输入即刻影响归一化参数 条件输入的影响逐渐学习
稳定性 初始阶段不如 AdaLN-Zero 稳定 初始阶段更稳定
适用场景 条件输入较强的任务 条件输入较弱的任务

条件归一化方法对比

方法 归一化范围 动态性来源 适用场景
AdaIN 样本的每个通道 风格编码 风格迁移、图像生成
AdaLN 样本的所有特征维度 条件输入 条件生成、多任务学习
AdaLN-Zero 样本的所有特征维度 条件输入(逐渐学习) 条件输入弱的任务

你可能感兴趣的:(编程学习,人工智能,AIGC,深度学习,python,计算机视觉)