type
Post
status
Published
date
Mar 11, 2026
slug
summary
tags
深度学习
category
学习路径
icon
password

归一化与Transformer架构选择的LN

notion image
归一化方法
原理
适用场景
优点
缺点
批归一化(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的缩放参数 γ 和偏移参数 β
notion image
AdaLN的核心步骤 AdaLN的核心步骤包括以下三步: 1.提取条件信息 从输入的条件(如Text Embeddings、标签等)中提取信息,一般来说会专门使用一个神经网络模块(比如全连接层等)来处理输入条件,并生成与输入数据相对应的缩放参数 γ 和偏移参数β。 2.生成自适应的缩放和偏移参数 利用提取的条件信息,生成自适应的缩放和偏移参数。假设输入条件为c,经过一个神经网络模块(比如全连接层等)生成缩放参数和偏移参数: 3.使用自适应参数 使用这些自适应参数对输入权重进行 Layer Normalization 处理

adaLN-Zero

AdaLN-Zero 在 AdaLN 的基础上新增了残差缩放参数α,用于动态控制残差路径的影响。通过将α初始化为零,模型的初始状态被设置为恒等函数,从而确保输出在训练初期的稳定性。这种设计显著提升了模型的训练稳定性和收敛速度。
notion image
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绘画大模型的必备策略。
 
【VLA】FLOWER VLA 论文阅读笔记【强化学习】西湖大学-强化学习的数学原理在线课程个人笔记
Loading...
CreamGreen.
CreamGreen.
一个普通的大鞋生📕
公告
🌈 欢迎光临我的博客!
⏰ 本博客主要内容仅为个人学习生活内容总结记录,不具备作为学习上手对应知识内容的参考意义,如果您有好的意见或建议,欢迎联系我的email。
📧:shanyihao233@gmail.com