🗒️BN和LN的区别
2024-9-3
| 2024-9-4
0  |  Read Time 0 min
type
status
date
slug
summary
tags
category
icon
password
comment
😀
Layer Normalization (LN) 和 Batch Normalization (BN) 都是深度学习中常用的归一化技术,但它们在实现和应用上有一些重要的区别。

归一化维度:

  • BN: 对每个特征在batch维度上进行归一化。如下所示,batch size为4,通道为3,图片大小为240x240.BN对每个通道的数据进行归一化,总共进行了3次。
    • notion image
  • LN: 对每个样本在特征维度上进行归一化。如下所示,LN对每个样本进行了归一化,总共进行了4次。
    • notion image

计算方式:

  • BN: 计算每个特征在整个batch中的均值和方差。
  • LN: 计算每个样本的所有特征的均值和方差。

适用场景:

  • BN: 更适合固定大小的batch和CNN。
  • LN: 更适合RNN和Transformer等序列模型,以及batch size较小的情况。

Batch size依赖性:

  • BN: 性能强烈依赖于batch size,小batch size可能导致性能下降。
  • LN: 不依赖batch size,对batch size的变化不敏感。

特征独立性:

  • BN: 假设特征之间是独立的。
  • LN: 不假设特征之间的独立性。

训练和推理一致性:

  • BN: 训练和推理阶段的行为可能不同,需要额外的操作来处理。
  • LN: 训练和推理阶段的行为一致。

参数共享:

  • BN: 在同一层的不同通道间共享参数。
  • LN: 在同一层的所有神经元间共享参数。

计算复杂度:

  • BN: 在batch维度上计算,计算复杂度较高。
  • LN: 在特征维度上计算,计算复杂度相对较低。

适应性:

  • BN: 在处理输入分布变化时可能更有效。
  • LN: 对输入分布的变化不太敏感。

模型泛化能力:

  • BN: 可能会引入一些噪声,有助于提高模型的泛化能力。
  • LN: 不引入额外噪声,但可能在某些情况下泛化能力略逊于BN。

总结:

选择使用LN还是BN主要取决于具体的应用场景和模型结构。在序列模型和Transformer中,LN通常是更好的选择;而在CNN中,BN仍然是常用的选择。
  • 深度学习
  • 优秀的AI算法研究员是如何炼成的?Diffusion模型中的Unet介绍
    Loading...
    Catalog