type
Post
status
Published
date
Mar 11, 2026
slug
summary
tags
深度学习
category
学习路径
icon
password
归一化与Transformer架构选择的LN

归一化方法 | 原理 | 适用场景 | 优点 | 缺点 |
批归一化(BN) | 对一个批量中的所有样本的同一通道进行归一化,基于批次的均值和方差调整 | 卷积网络、全连接网络 | 加快收敛,正则化,适应大批量训练 | 对小批次敏感,序列任务效果差 |
层归一化(LN) | 对单个样本的所有通道进行归一化,不依赖批量,计算层内均值和方差 | RNN、Transformer、序列任务 | 适应小批次训练,不依赖批次大小 | 计算量较大,收敛可能稍慢 |
实例归一化(IN) | 对单张图像的每个通道分别独立进行归一化,计算每个样本的通道内均值和方差 | 图像生成、风格迁移 | 对风格敏感,适用于生成任务 | 不适合分类任务,无法捕捉全局信息 |
组归一化(GN) | 将单个样本的特征通道分组,对每一组进行归一化,计算组内均值和方差 | 小批次训练,卷积网络 | 适合小批次,不依赖批次大小 | 对卷积核大小和通道数较敏感 |
权重归一化(WN) | 对神经元的权重向量进行归一化,将方向和长度分开重新参数化 | 卷积网络、全连接网络、生成模型 | 加速收敛,提高稳定性 | 效果不一定显著,某些任务中不如BN |
虽然他们是叫做归一化(批归一化、层归一化、实例归一化),是将多个输入特征归一化为均值为 0、方差为 1 的分布,使得网络的各层输入保持在较为稳定的范围内。本质上是进行标准化。再进行引入两个可学习参数 γ 和 𝛽,分别表示缩放和平移操作。
BN、LN、IN、GN 等归一化方法都包含了标准化的步骤,即它们都会将激活值调整为均值为 0、方差为 1 的分布,关键区别在于这些方法在不同的范围内计算均值和方差,以适应不同的训练场景和模型结构:
Transformer模型选择Layer Normalization而不是Batch Normalization的主要原因在于以下几点: 处理变长序列:Batch Normalization要求固定大小的batch,从而成功计算均值和方差。这在变长序列中难以实现。而Layer Normalization则是对每一个实例进行归一化,适用于变长序列的输入。 训练稳定性:Batch Normalization在RNN和Transformer这样的序列模型中可能会导致训练过程不稳定,因为它依赖于整个batch的数据进行归一化,而序列之间有时会有较大的差异。 在线推断:在推断阶段,Transformer有时会逐步生成序列,在这种情况下,无法利用整个batch的信息。Layer Normalization在这种单一实例情况下表现更好。
adaLN与adaLN-Zero
常规的LN:
adaLN
AdaLN的核心思想是根据输入的不同条件信息,自适应地调整Layer Normalization的缩放参数 γ 和偏移参数 β

AdaLN的核心步骤 AdaLN的核心步骤包括以下三步: 1.提取条件信息 从输入的条件(如Text Embeddings、标签等)中提取信息,一般来说会专门使用一个神经网络模块(比如全连接层等)来处理输入条件,并生成与输入数据相对应的缩放参数 γ 和偏移参数β。 2.生成自适应的缩放和偏移参数 利用提取的条件信息,生成自适应的缩放和偏移参数。假设输入条件为c,经过一个神经网络模块(比如全连接层等)生成缩放参数和偏移参数: 3.使用自适应参数 使用这些自适应参数对输入权重进行 Layer Normalization 处理
adaLN-Zero
AdaLN-Zero 在 AdaLN 的基础上新增了残差缩放参数α,用于动态控制残差路径的影响。通过将α初始化为零,模型的初始状态被设置为恒等函数,从而确保输出在训练初期的稳定性。这种设计显著提升了模型的训练稳定性和收敛速度。

AdaLN 有 4 个参数: ,分别用于自注意力和 MLP 模块的归一化操作,不包含残差缩放参数。
AdaLN-Zero在此基础上增加了2个参数: ,用于控制残差路径的输出,从而显著提升训练稳定性与适应性,因此总计6个参数。
如果任务需要更强的稳定性(如深层Transformer模型或大规模扩散模型训练),AdaLN-Zero通常是更优的选择。adaLN-Zero的核心步骤包括以下三步。
提取条件信息:从输入的条件(如Text Embeddings、标签等)中提取信息,一般来说会专门使用一个神经网络模块(比如全连接层等)来处理输入条件,并生成与输入数据相对应的缩放和偏移参数。
在DiT的官方实现中,使用了一个全连接层+SiLU激活函数来实现这样一个输入条件的特征提取网络:
我们可以看到,adaLN_modulation 计算了 6 个变量 shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp,这 6 个变量分别对应了多头自注意力机制(MSA)的 AdaLN 的归一化参数与缩放参数 以及 MLP 模块的 AdaLN 的归一化参数与缩放参数
生成自适应的缩放和偏移参数、缩放参数α:
使用自适应参数、缩放参数α对残差路径进行缩放控制:
DiT论文中对四种方案进行了对比试验,发现采用AdaLN-Zero效果是最好的,所以DiT默认都采用这种方式来嵌入条件Embeddings。与此同时,AdaLN-Zero也成为了基于DiT架构的AI绘画大模型的必备策略。
- 作者:CreamGreen.
- 链接:www.creamgreen.com/article/320555f7-8779-80c5-b3df-ce76b0f9fcf9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。


.png?table=block&id=350555f7-8779-8035-9cc3-d4f1926e71e2&t=350555f7-8779-8035-9cc3-d4f1926e71e2)
.png?table=block&id=34f555f7-8779-808b-8fce-e6c88a929659&t=34f555f7-8779-808b-8fce-e6c88a929659)


