神经网络Transformer架构中的层归一化
字数 825 2025-11-18 23:19:31
神经网络Transformer架构中的层归一化
层归一化是一种用于稳定神经网络训练过程的技术。让我们从基础概念开始理解它的作用原理:
首先,层归一化解决的是神经网络中的内部协变量偏移问题。在深度神经网络中,每一层的输入分布会随着前一层参数更新而不断变化,这导致训练过程变得不稳定。层归一化通过对每一层的输入进行重新中心化和重新缩放,使其保持稳定的分布。
接下来,我们来看层归一化的具体计算步骤:
- 对于一个包含H个隐藏单元的层,计算该层所有隐藏单元的均值:μ = (1/H)∑_{i=1}^H x_i
- 计算该层所有隐藏单元的标准差:σ = √[(1/H)∑_{i=1}^H (x_i - μ)^2 + ε],其中ε是一个极小的常数,防止除以零
- 对每个隐藏单元进行归一化:x̂_i = (x_i - μ)/σ
- 应用可学习的缩放和偏移参数:y_i = γx̂_i + β,其中γ和β是训练过程中学习的参数
现在,让我们比较层归一化与其他归一化方法的区别:
- 批归一化沿着批次维度归一化,对批次大小敏感
- 层归一化沿着特征维度归一化,不受批次大小影响
- 实例归一化对每个样本的每个通道单独归一化
- 组归一化是层归一化和实例归一化的折中方案
在Transformer架构中,层归一化被应用在两个关键位置:
- 在多头注意力机制之后,即残差连接之后
- 在前馈神经网络之后,同样是残差连接之后
这种设计形成了Transformer的经典结构:子层→残差连接→层归一化。层归一化在这里的作用是稳定梯度流动,使得深层网络训练更加稳定。
层归一化的优势还体现在:
- 训练和推理时行为一致,不需要像批归一化那样区分两种模式
- 对小批次训练更加友好
- 在序列模型中表现优异,特别是对于变长序列处理
最后,层归一化的数学性质保证了网络的表达能力不会因为归一化而受损。通过学习参数γ和β,网络可以保留对原始表示的转换能力,甚至学习到恒等变换,确保归一化不会限制模型的表达能力。