当前位置: 首页 > article >正文

【归一化总结】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

特性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样本的所有特征维度条件输入(逐渐学习)条件输入弱的任务

http://www.kler.cn/a/610448.html

相关文章:

  • c++:封装红黑树实现map与set
  • 基于 mxgraph 实现流程图
  • Android 12系统源码_系统启动(二)Zygote进程
  • 如何优化 docker 镜像体积?
  • 掌握Linux项目自动化构建:从零入门make与Makefile
  • 34.[前端开发-JavaScript基础]Day11-王者轮播图-书籍购物车-BOM对象-JSON
  • AI 算力计算方式
  • Logback使用和常用配置
  • 李飞飞、吴佳俊团队新作:FlowMo如何以零卷积、零对抗损失实现ImageNet重构新巅峰
  • 基于Kubernetes部署Prometheus监控平台
  • 贪心算法(12))(java)坏了的计算器
  • 基于BERT的序列到序列(Seq2Seq)模型,生成文本摘要或标题
  • 系统分析师常考题目《论面向对象分析方法及其应用》
  • 类和对象cpp
  • 基于springboot+vue的北部湾地区助农平台
  • 深入解析 JVM 内存区域及核心概念
  • python中的面对对象
  • 鸿蒙开发:openCustomDialog关闭指定Dialog
  • docker中间件部署
  • 基于Flask的智能天气助手系统设计