趋近智
批量归一化 (normalization)(BN)是深度学习 (deep learning)中常用的一种技术,它通过对迷你批次中的激活值进行归一化,能有效处理内部协变量偏移问题。然而,它对批次统计量的依赖有时可能成为一个限制。例如,当迷你批次大小非常小时,BN的表现可能下降,因为批次统计量对真实总体统计量而言变得嘈杂。此外,将BN直接应用于循环神经网络 (neural network) (RNN)(RNNs)可能很麻烦,因为每个时间步的统计量需要不同地计算。
层归一化(LN)提供了一种替代方法,可以克服这些具体限制。层归一化不是在批次维度上进行归一化,而是为单个训练样本在同一层的所有隐藏单元中计算平均值和方差。
设想由单个输入样本 生成的特定层 的激活值 。令 为该层中隐藏单元的数量。层归一化使用该单个样本中该层神经元的所有求和输入来计算平均值 和方差 :
请注意,这些计算是为每个训练样本独立进行的,不涉及批次间的交互。
计算出平均值和方差后,该层中每个隐藏单元 的激活值 将被归一化:
这里, 是一个用于数值稳定的小常数,其作用类似于批量归一化中的用法。
最后,与批量归一化一样,层归一化引入了可学习参数 (parameter):一个神经元尺度因子 (gamma) 和一个偏移因子 (beta)。这些参数允许网络学习归一化激活值的最佳尺度和平均值,如果需要,甚至可以恢复原始激活值:
这些参数 和 在训练期间与网络的其他权重 (weight)一起学习。
主要区别在于归一化 (normalization)轴:
这种差异使得层归一化具有一些重要特性:
下面的图示说明了不同的归一化维度:
批量归一化(蓝色,按批次按列)与层归一化(绿色,按特征按行)的归一化维度比较。
尽管BN通常是卷积神经网络 (neural network) (CNN)(CNNs)的默认选择,但LN在涉及Transformer和RNN的自然语言处理任务中,以及在批次统计量可能不可靠的情况下,已证明特别有用。它作为稳定并可能加速深度神经网络训练的另一个有价值的工具。我们在此不会像对批量归一化那样细致地讨论实现细节,但大多数深度学习 (deep learning)框架提供了添加层归一化层的简单方法。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•