(第二章)深度学习标准化技术综述: 从BatchNorm到DeepNorm的演进与实战

王者杯·14天创作挑战营·第2期 10w+人浏览 121人参与

接上一篇《(第一章)深度学习标准化技术综述: 从BatchNorm到DeepNorm的演进与实战

Instance Normalization(IN)

IN最初用于图像风格迁移任务。原因在于:在风格化生成网络中,每张图像风格往往只受单张图像本身的特征分布影响。

BN这种“跨样本”的归一化无法保留单张图像的风格差异,因此需要在每张图像的特征图上分别做归一化,即在$H\times W$维度上进行操作,而保留batch和通道维度。

IN计算公式

对输入$x\in R^{N\times C\times W\times H}$ ,IN在每个样本n、每个通道c的特征图上计算均值和方差:

$\mu_{n,c}=\frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^W x_{n,c,h,w}, \sigma_{n,c}^2=\frac{1}{HW}\sum_{h=1}^H\sum_{w=1}^W(x_{n,c,h,w}-\mu_{n,c})^2$

$y_{n,c,h,w}=\frac{x_{n,c,w,h}-\mu_{n,c}}{\sigma_{n,c}^2+\epsilon}$

可以加上可学习的$\gamma, \beta$

IN的特点

  • 对每个样本、每个通道分别进行归一化:不考虑batch内其它样本,与BN不同
  • 风格化迁移:可保证不同样本之间的风格差异
  • 特征图上归一化: 去掉了$H\times W$中的统计差异,但保留了跨样本、跨通道的变化

IN和LN有什么区别

可训练参数上是有区别的,layer_norm为hidden_dim上的每一个数字维护$\gamma , \beta$,

instance_norm为seq_len上的每一个数字维护$\gamma,\beta$

Group Normalization(GN)

GN是解决BN对batch size依赖较大的问题:当batch size非常小(如图像分割、超大模型训练时),BN估计均值和方差出现偏差,效果变差。

GN提出将通道分组后,各分组内部做LN类似的归一化

GN的计算方式

假设有C个通道,将其分成G组(每组有C/G个通道),在单样本特征图中,对同一组中的所有通道和其对应的空间位置$H\times W$做均值和方差计算:

$\mu_{n,g}=\frac{1}{(C/G)HW}\sum_{c=g\frac{C}{G}}^{(g+1)\frac{C}{G}-1}\sum_{h=1}^H\sum_{w=1}^W x_{n,cmh,w}$

$\sigma_{n,g}=\sqrt{\frac{1}{(\frac{C/G}HW)}\sum_{c=g\frac{C}{G}}^{(g+1)\frac{C}{G}-1}\sum_{h=1}^H\sum_{w=1}^W(x_{n,c,h,w}-\mu_{n,g})^2+\epsilon}$

再进行标准化与可学习的缩放和平移。GN是BN与LN的一种折中,既比LN更关注通道结构,有不依赖batch_size,适合小batch_size场景。


BN、LN、IN、GN区别

假设输入特征的形状为 [N, C, H, W] ,它们的区别:

  1. BN:在batch维度上做归一化(对N × H × W做均值和方差),保留通道维度C。适用于CNN,中等或大batch size;不适合极小batch或RNN场景。

  2. LN:在单个样本中对C×H×W的所有元素做归一化。适合RNN、Transformer等序列场景,对batch size不敏感;在CNN上效果不如BN。

  3. IN:在单张图片、单个通道上,对H×W进行归一化。常用于风格迁移,保留跨图片、跨通道的风格差异。

  4. GN:将通道C分成G组,在同一组内进行LN式归一化;既不依赖batch size,又兼顾通道间统计特性,适合小batch size场景。


RMS Norm

原理

- 计算均方根(RMS):给定输入向量 $\mathbf{x} \in \mathbb{R}^d$$d$ 为特征维度) ,RMS Norm通过计算输入特征的均方根进行归一化,公式为 $\text{RMS}(\mathbf{x}) = \sqrt{\frac{1}{d} \sum_{i = 1}^{d} x_{i}^{2}}$ ,不进行均值计算与减法操作。

- 归一化与缩放:归一化输入向量 $\hat{\mathbf{x}} = \frac{\mathbf{x}}{\text{RMS}(\mathbf{x})}$ ,并通过可学习的缩放系数$g_{i}$ (或表示为 $\gamma$ )对其缩放 ,得到最终归一化输出 $\text{RMSNorm}(\mathbf{x}) = \gamma \odot \hat{\mathbf{x}}$$\odot$ 表示元素级乘法) 。

与LayerNorm的区别

LayerNorm计算输入特征的均值 $\mu$ 和标准差 $\sigma$ ,公式为 $\text{LN}(h_i) = \frac{h_i - \mu_{h_i}}{\sqrt{\sigma_{h_i}^2 + \epsilon}} * \gamma + \beta$ ,需进行均值减法和标准差除法操作,且有可学习的缩放参数 $\gamma$与偏移参数$\beta$ ;RMS Norm不计算均值,仅依赖均方根归一化,没有额外可学习的偏移参数,简化了计算流程。

优点

  • 计算高效:省去均值计算步骤,减少约10% - 30%计算开销,尤其在大模型或处理长序列数据时,能显著提升计算效率。
  • 数值稳定:避免了均值接近零时可能出现的数值不稳定问题,在某些应用中,LayerNorm因均值计算不稳定导致训练波动,RMS Norm去除该步骤使训练更平滑。
  • 适用性广:作为简单高效的归一化方法,无需依赖批量大小或输入分布,能处理变长输入序列,在Transformer和自注意力机制等序列模型中表现良好,被广泛应用于现代架构(如LLaMA、GPT - Neo等) 。
  • 训练加速:在部分任务上,使用RMS Norm的模型收敛速度更快,训练效率更高,处理大型数据集时优势明显。

缺点

  • 无均值归一化限制:在某些对输入数据均值敏感的任务中(如图像数据处理) ,表现可能不如LayerNorm,因为去除均值计算可能影响模型对关键特征的捕捉。
  • 缺乏批量统计依赖:虽适合处理变长序列,但在有足够大批量数据的任务中,BatchNorm利用批量统计量可能取得更好效果。

pRMS Norm

在深度学习中,当处理超大向量或者特征数极多的情况时,RMS Norm(Root Mean Square Layer Normalization)需要对整个向量计算均方根,计算量会变得很大。为了在不显著影响模型性能的前提下减小计算量,pRMS Norm(Partial Root Mean Square Layer Normalization)应运而生。它通过只使用部分元素来计算RMS值,从而降低计算成本,尤其适用于大规模模型的训练与推理。

原理

pRMS Norm的核心在于只选取向量中前 $p\%$ 的元素来计算RMS值。假设向量 $\mathbf{a} = [a_1, a_2, \cdots, a_n]$ ,其中 $n$ 是向量的长度。首先确定用于计算的元素个数 $k$$k = n\times p$ (这里 $p$ 是一个比例值,比如 $p = 0.1$ 表示选取前10%的元素 )。

然后按照以下公式计算均方根值:$\overline{RMS}(\mathbf{a})=\sqrt{\frac{1}{k}\sum_{i = 1}^{k}a_{i}^{2}}$

也就是说,它不是对整个向量的所有元素进行均方根计算,而是仅基于选定的部分元素来计算。这样在大规模向量计算时,就可以大幅减少计算量。

优势

  • 计算量降低:在超大向量或者特征维度极高的场景下,通过只使用部分元素计算RMS,能显著减少计算量。例如在一些大语言模型中,处理长文本序列时,特征向量维度很大,pRMS Norm可以有效降低计算成本,加速训练和推理过程。
  • 性能保留:在实际测试中发现,pRMS Norm在减少计算量的同时,还能较好地保留模型的收敛性能。这意味着它不会因为减少了计算量而使模型的训练效果大打折扣,依然能够让模型在合理的时间内达到较好的训练结果。

应用场景

主要适用于大规模深度学习模型,尤其是那些处理长序列数据的模型,比如大语言模型(LLMs)。在这些模型中,输入序列可能很长,对应的特征向量维度很高,传统的RMS Norm计算开销大,而pRMS Norm可以平衡计算效率和模型性能,使得模型在有限的计算资源下也能高效运行。同时,在一些处理高维图像特征等场景中,如果存在类似的计算量过大问题,也可以考虑应用pRMS Norm来优化计算过程。

Post-LN与Pre-LN

Transformer中,残差连接与LN的先后顺序分为:

1.Post-LN: 在自注意力/FFN + 残差连接之后再做LN

2.Pre-LN:在自注意力/FFN之前先做LN ,再加上残差连接

Post-LN 结构:

  • 将LN放在残差之后,有更强的正则化效果;
  • 但在深层网络中,有时出现训练不稳定(梯度不易传递或爆炸)。

更强正则化效果:将 LN 放在残差之后,对残差块输出的所有参数进行归一化,使得参数分布更加规整,相当于对模型施加了更强的约束,限制了参数的取值范围,增强了正则化效果,有助于防止模型过拟合 。

训练不稳定:在深层网络中,梯度要经过较多的计算层回传。由于 Post - LN 对所有参数归一化,当网络层数加深,每层的输出经过归一化后,可能会使梯度在反向传播时出现异常变化,比如梯度值变得过大或过小,导致梯度爆炸或消失,使得训练不稳定,难以有效更新参数 。

Pre-LN 结构:

  • 在残差前先做LN,以保证梯度能够更顺畅地传递;
  • 更易训练且更稳定,但有时模型的最终性能不如Post-LN高。

梯度传递顺畅:在残差前先做 LN,对输入到残差块的信号进行归一化,使得输入数据分布更稳定,能让梯度在反向传播过程中更顺畅地通过各层,避免因数据分布变化过大导致梯度异常,所以训练过程更加稳定 。

最终性能受限:Pre - LN 将部分参数进行归一化,部分参数直接加在后面(没有正则化) ,从某种程度上降低了网络的等效深度,近似于使网络变 “宽”,但深度神经网络中深度往往对性能很关键。这种结构无形之中降低深度,可能影响模型对复杂特征的学习和表示能力,导致有时最终性能不如 Post - LN 高 。

Deep Norm 则实在Post-LN的基础上加上缩放系数$\alpha,\beta$,在深层网络中既能维持训练稳定性,也能保持Post-LN的优势。

Deep Norm

Deep Norm的提出

Deep Norm主要用于超深层Transformer的稳定训练。它是在原有Post-LN(LayerNorm放在残差连接后)结构的基础上做了两点改进:

1. 在残差连接前乘以一个系数 $\alpha$,以缩放输入特征;

2. 在Xavier初始化时,对部分参数乘以 $\beta$,以减小初始化范围。

参数参考:

ArchitecturesEncoderDecoder
\alpha\beta\alpha\beta
Encoder-only (e.g., BERT)(2N)^{\frac{1}{4}}(8N)^{-\frac{1}{4}}--
Decoder-only (e.g., GPT)--(2M)^{\frac{1}{4}}(8M)^{-\frac{1}{4}}
Encoder-decoder (e.g., NMT, T5)0.81(N^{4}M)^{\frac{1}{10}}0.87(N^{4}M)^{-\frac{1}{10}}(3M)^{\frac{1}{4}}(12M)^{-\frac{1}{4}}

Deep Norm的原理

论文提出,如果仅使用后归一化(Post-LN)时,在极深层网络中,梯度容易累积放大,导致训练不稳定。Deep Norm的做法是在每个残差连接前都用 \alpha 把输入放大或缩小,并在初始化时用 \beta 调整部分参数的分布。作者通过理论和实验证明:

  • 这种缩放可以让模型的“预期更新”维持在一个恒定水平,不会导致梯度爆炸或梯度消失;
  • Deep Norm在保持Post-LN良好收敛性的同时,也像Pre-LN那样使得超深层训练变得稳定。

Deep Norm的实现在microsoft/torchscale中可见。对比Pre-LN的方案,Deep Norm保留了更强的正则化效果,且能将Transformer堆叠到上千层深度。

  如果您认为博文还不错,请帮忙点赞、收藏、关注。您的反馈是我的原动力

原创文章
1FFN前馈网络与激活函数技术解析:Transformer模型中的关键模块
2Transformer掩码技术全解析:分类、原理与应用场景
3【大模型技术】Attention注意力机制详解一
4Transformer核心技术解析LCPO方法:精准控制推理长度的新突破
5Transformer模型中位置编码(Positional Embedding)技术全解析(二)
6Transformer模型中位置编码(Positional Embedding)技术全解析(一)
7自然语言处理核心技术词嵌入(Word Embedding),从基础原理到大模型应用
8DeepSeek-v3:基于MLA的高效kv缓存压缩与位置编码优化技术
9

【Tokenization第二章】分词算法深度解析:BPE、WordPiece与Unigram的原理、实现与优化

10Tokenization自然语言处理中分词技术:从传统规则到现代子词粒度方法
11[预训练]Encoder-only架构的预训练任务核心机制
12【第一章】大模型预训练全解析:定义、数据处理、流程及多阶段训练逻辑
13(第一章)深度学习标准化技术综述: 从BatchNorm到DeepNorm的演进与实战

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值