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


基础归一化方法: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

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

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

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

条件归一化方法对比

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值