Layer Normalization (LayerNorm) 是一种逐样本的技术,旨在稳定深度神经网络的训练过程,通过对每一层内的激活值进行标准化来实现。在日新月异的深度学习领域,大型神经网络,尤其是驱动生成式AI和高级分析的模型,展现出了强大的能力。然而,这些复杂模型的有效训练需要克服诸多挑战。LayerNorm 作为一项基础技术,正是为了应对这些挑战而生。
内部协变量偏移(Internal Covariate Shift)
深度神经网络,特别是那些具有相当深度的网络,在训练过程中容易遇到不稳定性。内部信号会发生显著波动,阻碍学习过程。内部协变量偏移 (Internal Covariate Shift, ICS) 是一个核心问题。在深度神经网络中,每一层都处理前一层的输出。在训练过程中,随着每一层的参数(权重和偏差)更新,后续层的输入统计分布也在发生变化。这种输入分布的不断变化就是 ICS。这种变化会导致:
- 速度降低:各层必须不断适应这些变化的输入分布,从而减慢收敛速度。
- 不稳定性:学习过程可能变得不稳定,优化过程会因输入尺度和分布的不一致而变得复杂。
- 初始化敏感性:网络的初始参数设置变得异常重要且难以优化。
早期的解决方案,如Batch Normalization (BN),通过使用当前 mini-batch 的训练样本的统计数据(均值和方差)来标准化层输入。尽管 BN 是一项重大进步,但它也存在局限性,主要在于其对 mini-batch 大小的依赖。当训练非常大的模型或在循环神经网络 (RNN) 等领域中,由于 batch 统计数据变得嘈杂,其有效性会降低。此外,BN 在训练和推理阶段的不同运行方式增加了复杂性。这些因素凸显了对更通用标准化策略的需求,尤其是在 RNN 和 Transformer 等架构兴起的情况下。
Layer Normalization:逐样本的解决方案
由 Jimmy Lei Ba、Jamie Ryan Kiros 和 Geoffrey Hinton 于 2016 年提出的 LayerNorm 提供了一种独特的方法。LayerNorm 不是跨 batch 维度进行标准化,而是在单个训练样本内,跨给定层的所有特征(或隐藏单元)对输入进行标准化。这种逐样本标准化具有以下关键优势:
- Batch 大小独立性:LayerNorm 的计算是针对每个样本独立进行的,因此无论 batch 大小如何,它都是有效的。这对于 RNN 和 Transformer 模型尤其有利。例如,在使用梯度累积 (Gradient Accumulation) 训练大型 Transformer 模型时,实际有效的 Batch Size 可能非常小,BN 的效果会显著下降,而 LayerNorm 可以保持稳定的性能。
- 一致的行为:它在训练和推理阶段的运行方式相同,从而简化了部署并减少了潜在的差异。这一点对于需要在线学习或者实时推理的场景非常重要。
Layer Normalization 的过程
对于特定层和单个训练样本,LayerNorm 执行以下步骤:
-
计算均值 (μ):计算该层中单个样本的所有特征激活的平均值。这表示该实例的特征的中心趋势。
μ = sum_of_activations / number_of_features
-
计算标准差 (σ):计算这些激活值与其均值的标准差。这测量样本特征的离散程度或尺度。
σ = sqrt(average_of_squared_differences_from_μ + ϵ)
,其中 ϵ 是一个小常数,用于数值稳定性。 -
标准化:然后,通过减去均值 (μ) 并除以标准差 (σ) 来重新居中和重新缩放每个特征激活。这会将样本的激活值标准化为在特征上具有近似零均值和单位方差。
normalized_feature = (original_feature - μ) / σ
-
缩放和偏移:为了保持网络的表征能力,使用每个层的两个可学习参数向量应用仿射变换:
- 增益 (g, 或 γ):一个缩放因子。
- 偏差 (b, 或 β):一个偏移因子。
最终输出为:
final_output = g * normalized_feature + b
这些参数在训练期间学习,允许网络在严格的零均值、单位方差约束对于特定层而言不是最优时调整标准化值。
这种针对每个单独样本跨特征进行标准化的方法是 LayerNorm 的决定性特征。
Layer Normalization 的核心优势
Layer Normalization 具有多项优势,这些优势巩固了其在现代深度学习中的作用:
-
增强的训练稳定性和速度:通过保持每个样本更一致的激活统计信息,LayerNorm 有助于更平滑的优化环境。这通常会导致更稳定的梯度,从而降低梯度消失或爆炸的可能性,并通常导致更快、更可靠的模型收敛。
例如,在训练一个非常深层的 Transformer 模型时,使用 LayerNorm 可以显著提高训练速度和稳定性,避免因梯度爆炸或者消失而导致的训练中断。 -
独立于 Batch 大小:这是一项关键优势,使得 LayerNorm 非常适合:
- 循环神经网络 (RNN) 和 LSTM:这些模型处理长度可变的序列,而一致的 batch 处理可能具有挑战性。例如,在机器翻译任务中,句子长度差异很大,使用 LayerNorm 可以更好地处理不同长度的序列,提高模型的泛化能力。
- Transformers:这种架构是现代 NLP 及其他领域的核心,通常处理长度可变的序列,并且可能涉及使用有效的小 batch 大小(例如,通过梯度累积)训练的非常大的模型。
- 在线学习:在每个样本基础上进行模型更新的场景。例如,在推荐系统中,用户行为是实时发生的,模型需要快速适应新的数据,LayerNorm 可以提供更稳定的训练过程。
-
一致的训练和推理:训练和推理期间的相同计算简化了模型部署,并避免了使用 Batch Normalization 等方法可能发生的差异。
这使得模型可以更容易地部署到生产环境,并且可以保证模型在不同环境下的性能一致。 -
改进的泛化 (通常):通过约束激活分布并可能充当正则化器,LayerNorm 可以有助于提高模型在未见过数据上的性能,从而减少过拟合。
LayerNorm 的标准化过程可以减少模型对特定训练数据的依赖,从而提高模型的泛化能力。 -
梯度标准化效应:一些研究表明,LayerNorm 的有效性在很大程度上可能源于其对反向传播的影响。LN 中涉及的导数可以重新居中和重新缩放梯度,从而有助于优化过程。
Layer Normalization 在 Transformers 中的应用
Transformer 架构严重依赖 Layer Normalization。在典型的 Transformer 块中,LayerNorm 通常与残差连接结合使用,应用于每个主要的子层(例如,多头注意力、前馈网络)之后。
一种常见的配置是 Post-LN (Post-Layer Normalization):
output = LayerNorm(x + Sublayer(x))
在这里,标准化发生在残差加法之后。
另一种是 Pre-LN:
output = x + Sublayer(LayerNorm(x))
标准化应用于子层操作之前的输入 x。
位置选择具有以下含义:
- Post-LN:有时可以产生更好的最终模型性能,但可能需要仔细的学习率调度(例如,warm-up)以确保训练稳定性,尤其是在更深的模型中。如果不进行 warm-up,Post-LN 训练的 Transformer 模型容易出现训练初期不稳定,损失函数震荡等问题。
- Pre-LN:通常提供更稳定的训练动态,并且可能不需要 warm-up。但是,在非常深的模型中,由于诸如过度方差增长(“深度诅咒”)之类的问题,有时会导致更深层的有效性降低。一些研究发现,随着模型深度的增加,Pre-LN 训练的 Transformer 模型可能会出现性能下降的问题。
正在进行的研究探索最佳的 LayerNorm 位置和混合策略(例如,Peri-LN、Mix-LN)以平衡大型 Transformer 模型中的这些权衡。
局限性和注意事项
尽管 Layer Normalization 具有优势,但也需要考虑以下几个方面:
- 潜在的信息丢弃:均值减法步骤固有地消除了有关样本特征上的平均激活水平的信息。虽然通常是良性的甚至是有益的(作为一种正则化形式),但如果此均值分量携带任务关键信息,则其删除可能是一个限制。可学习的仿射参数无法完全恢复原始信号的这一特定方面。
- 仿射参数过拟合:可学习的增益 (γ) 和偏差 (β) 参数在提供灵活性的同时,也增加了模型的参数数量。在数据有限的场景中,这可能会导致过拟合。一些研究表明,没有这些仿射参数的简化 LayerNorm 版本有时可以表现更好。
- 计算开销:与未标准化的层相比,为每个标准化层计算每个样本的统计数据会带来计算成本。但是,对于大多数深度学习应用而言,稳定性和性能优势通常证明了这种开销是合理的。
RMSNorm:一种更精简的替代方案
对效率的追求和对标准化的更深入理解导致了诸如 RMSNorm (Root Mean Square Normalization) 之类的变体。RMSNorm 通过省略均值减法(重新居中)步骤来简化 LayerNorm。它仅通过其均方根重新缩放激活值。
缩放因子基于:
rms = sqrt(average_of_feature_squares + ϵ)
然后标准化为:
normalized_feature = original_feature / rms
RMSNorm 通常包括可学习的增益 g,但可以省略偏差 b。
RMSNorm 因以下原因而广受欢迎,尤其是在大型语言模型 (LLM) 中:
- 降低的计算成本:更少的计算可以加快处理速度,这对于非常大的模型来说很有价值。
在 LLM 中,模型规模非常大,计算资源是宝贵的,因此 RMSNorm 可以有效地降低计算成本,提高训练效率。 - 可比的性能:在许多情况下,特别是对于 LLM,RMSNorm 可以实现与完整 LayerNorm 相似的性能。这表明对于这些应用而言,标准化的重新缩放方面至关重要,而显式的均值居中可能提供的益处较小。
结论:LayerNorm 的影响
Layer Normalization 是现代深度学习中的一项基本技术。通过为训练过程提供稳定性和一致性,它可以实现深度和复杂神经网络架构的开发和有效训练,从而推动人工智能的前沿。
它减轻了诸如内部协变量偏移之类的问题,与诸如 Transformers 之类的各种架构很好地集成,并且通常有助于实现更强大的优化。无论是标准形式还是像 RMSNorm 这样的简化变体,Layer Normalization 对于实现高级 AI 模型的潜力至关重要。持续的研究继续完善标准化策略,从而确保随着模型规模和能力不断增长,其稳定训练的基础技术也在不断发展。在未来,我们可以期待看到更多关于 LayerNorm 以及其他标准化技术的改进和创新,从而进一步推动深度学习领域的发展。