从LayerNorm到RMSNorm:深度学习归一化技术的进化!qwen2.5的技术。
是一种用于深度学习的,是LayerNorm(层归一化)的一种改进。它通过计算输入数据的,避免了传统归一化方法中均值和方差的计算。
RMSNorm(Root Mean Square Normalization,均方根归一化)
是一种用于深度学习的归一化技术,是LayerNorm(层归一化)的一种改进。它通过计算输入数据的均方根(Root Mean Square, RMS)来进行归一化,避免了传统归一化方法中均值和方差的计算
1.LayerNorm(层归一化)
LayerNorm(层归一化)是一种用于深度学习的归一化技术,主要用于稳定训练过程、加速收敛,并提高模型的泛化能力。它与BatchNorm(批量归一化)类似,但归一化的范围不同:LayerNorm 是在单个样本的特征维度上进行归一化,而BatchNorm 是在小批量数据的样本维度上进行归一化。
1.1LayerNorm 的计算公式
假设输入是一个张量 XXX,形状为 (N,D)(N, D)(N,D),其中 NNN 是样本数量,DDD 是特征维度。对于每个样本 xix_ixi,LayerNorm 的计算步骤如下:
-
计算均值:
μi=1D∑j=1Dxij \mu_i = \frac{1}{D} \sum_{j=1}^{D} x_{ij} μi=D1j=1∑Dxij
其中,μi\mu_iμi 是样本 iii 的均值。 -
计算方差:
σi2=1D∑j=1D(xij−μi)2 \sigma_i^2 = \frac{1}{D} \sum_{j=1}^{D} (x_{ij} - \mu_i)^2 σi2=D1j=1∑D(xij−μi)2
其中,σi2\sigma_i^2σi2 是样本 iii 的方差。 -
归一化:
x^ij=xij−μiσi2+ϵ \hat{x}_{ij} = \frac{x_{ij} - \mu_i}{\sqrt{\sigma_i^2 + \epsilon}} x^ij=σi2+ϵxij−μi
其中,ϵ\epsilonϵ 是一个小的常数(如 10−510^{-5}10−5 或 10−610^{-6}10−6),用于防止除零操作。 -
缩放和偏移:
yij=γjx^ij+βj y_{ij} = \gamma_j \hat{x}_{ij} + \beta_j yij=γjx^ij+βj
其中,γ\gammaγ 和 β\betaβ 是可学习的参数,分别用于缩放(scale)和偏移(shift),它们的形状与特征维度 DDD 相同。
1.2LayerNorm 的特点
- 独立于批量大小:LayerNorm 不依赖于批量大小,因此在小批量训练或单样本训练时仍然有效。
- 适用于 RNN 和 Transformer:LayerNorm 特别适合处理序列数据(如 RNN、LSTM)和 Transformer 架构,因为它可以在特征维度上进行归一化。
- 减少内部协变量偏移:通过归一化输入数据,LayerNorm 可以减少训练过程中的内部协变量偏移,从而加速收敛。
- 提高模型性能:在许多任务中,LayerNorm 能够提高模型的泛化能力和稳定性。
LayerNorm 的应用场景
LayerNorm 广泛应用于自然语言处理(NLP)和计算机视觉(CV)任务,尤其是在以下架构中:
- Transformer 架构:LayerNorm 是 Transformer 的标准组件,用于稳定训练过程。
- RNN 和 LSTM:LayerNorm 可以缓解 RNN 中的梯度消失问题。
- 深度神经网络:LayerNorm 可以替代或与 BatchNorm 结合使用,以提高模型性能。
LayerNorm 与 BatchNorm 的对比
| 特性 | BatchNorm | LayerNorm |
|---|---|---|
| 归一化范围 | 小批量数据的样本维度 | 单个样本的特征维度 |
| 依赖批量大小 | 是 | 否 |
| 适用场景 | CNN、大规模训练 | RNN、Transformer、小批量训练 |
| 计算复杂度 | 较低(批量维度) | 较高(特征维度) |
| 训练稳定性 | 对批量大小敏感 | 独立于批量大小 |
总结来说,LayerNorm 是一种强大的归一化技术,特别适用于处理序列数据和 Transformer 架构。它通过在特征维度上进行归一化,能够有效减少内部协变量偏移,提高模型的稳定性和性能。
RMSNorm(Root Mean Square Normalization,均方根归一化)是一种用于深度学习的归一化技术,是LayerNorm(层归一化)的一种改进。它通过计算输入数据的均方根(Root Mean Square, RMS)来进行归一化,避免了传统归一化方法中均值和方差的计算。
2.RMSNorm(均方根归一化)
2.1RMSNorm 的计算公式
RMSNorm 的计算公式如下:
RMSNorm(x)=γ⊙xRMS(x)\text{RMSNorm}(x) = \gamma \odot \frac{x}{\text{RMS}(x)}RMSNorm(x)=γ⊙RMS(x)x
其中:
RMS(x)=1d∑xi∈xxi2+ϵ\text{RMS}(x) = \sqrt{\frac{1}{d} \sum_{x_i \in x} x_i^2 + \epsilon}RMS(x)=d1xi∈x∑xi2+ϵ
- γ\gammaγ 是可学习的缩放参数。
- ϵ\epsilonϵ 是一个很小的值,用于防止除零操作。
RMSNorm 的特点
- 计算效率高:RMSNorm 不需要计算均值,仅需计算均方根,因此计算复杂度更低。
- 数值稳定性好:由于不进行均值对齐操作,RMSNorm 在某些情况下表现出更好的数值稳定性。
- 适用于低精度计算:RMSNorm 在低精度计算(如 FP16、BF16)中表现优异,适合大规模语言模型。
RMSNorm 与 LayerNorm 的对比
| 特性 | LayerNorm | RMSNorm |
|---|---|---|
| 是否计算均值 | 是 | 否 |
| 是否计算方差 | 是 | 是(仅计算平方均值) |
| 计算复杂度 | 较高 | 较低 |
| 应用场景 | NLP、Transformer | 大规模语言模型、低精度计算 |
RMSNorm 的应用
RMSNorm 已被广泛应用于大规模语言模型,如 LLaMA 和 Gemma 等。它在这些模型中主要用于提升推理速度、减少计算开销,并适应低精度计算。
总的来说,RMSNorm 是一种高效且稳定的归一化方法,特别适用于对计算效率和数值稳定性有较高要求的深度学习任务。
作者码字不易,觉得有用的话不妨点个赞吧,关注我,持续为您更新AI的优质内容
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)