本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

1. 概述:为什么需要层归一化?

在深度神经网络训练过程中,内部协变量偏移(Internal Covariate Shift)是一个常见问题,即每一层输入的分布会随着前一层参数的更新而不断变化,导致训练过程不稳定。为了解决这个问题,归一化技术被引入,其中批量归一化(Batch Normalization, BN)在卷积神经网络中取得了显著效果。然而,BN存在以下局限性:

  • 对批量大小敏感:在小批量或在线学习场景下效果不佳。
  • 不适用于循环神经网络:RNN的序列长度可变,难以维护不同时间步的统计信息。

层归一化(Layer Normalization, LN)由Jimmy Lei Ba等人于2016年提出,旨在解决BN的上述问题。LN的核心思想是对单个样本的所有特征维度进行归一化,使其不依赖于批量大小,并可直接应用于RNN。

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

往期文章推荐:

2. LayerNorm的技术原理

2.1 基本定义与公式

对于一个深度神经网络中的第 l l l 层,设 a l \mathbf{a}^l al 表示该层所有神经元的求和输入向量,维度为 H H H(隐藏单元数量)。LN的计算步骤如下:

  1. 计算均值与方差
    μ l = 1 H ∑ i = 1 H a i l , σ l = 1 H ∑ i = 1 H ( a i l − μ l ) 2 \mu^l = \frac{1}{H} \sum_{i=1}^{H} a_i^l, \quad \sigma^l = \sqrt{\frac{1}{H} \sum_{i=1}^{H} (a_i^l - \mu^l)^2} μl=H1i=1Hail,σl=H1i=1H(ailμl)2
  2. 归一化与仿射变换
    h l = f [ g σ l ⊙ ( a l − μ l ) + b ] \mathbf{h}^l = f\left[ \frac{\mathbf{g}}{\sigma^l} \odot (\mathbf{a}^l - \mu^l) + \mathbf{b} \right] hl=f[σlg(alμl)+b]
    其中:
    • g \mathbf{g} g b \mathbf{b} b 是可学习的增益(gain)和偏置(bias)参数。
    • ⊙ \odot 表示逐元素相乘。
    • f ( ⋅ ) f(\cdot) f() 是非线性激活函数。
2.2 与BatchNorm的对比
特性BatchNormLayerNorm
统计量计算沿批次维度(N)计算沿特征维度(C/H)计算
依赖关系依赖批量大小与批量大小无关
适用场景CNNRNN、Transformer
2.3 在RNN中的具体应用

在RNN中,LN被应用于每个时间步的隐藏状态计算。例如,对于时间步 t t t 的输入 a t \mathbf{a}^t at
h t = f [ g σ t ⊙ ( a t − μ t ) + b ] \mathbf{h}^t = f\left[ \frac{\mathbf{g}}{\sigma^t} \odot (\mathbf{a}^t - \mu^t) + \mathbf{b} \right] ht=f[σtg(atμt)+b]
这种处理可以稳定隐藏状态的动态变化,缓解梯度消失或爆炸问题。

4. LayerNorm的变体与改进
  1. 动态层归一化
    通过动态生成增益和偏置参数,使模型适应不同输入特性(如语音识别中的说话人变化)。

  2. 去相关层归一化
    针对图像数据中相邻特征的相关性问题,在LN基础上引入白化操作,减少通道间冗余。

  3. 分组层归一化
    将特征维度分组进行归一化,增强非线性表达能力,部分场景下可替代激活函数。

  4. 统一归一化
    结合BN和LN的优点,在Transformer中实现高效部署,速度提升31%,内存节省18%。


5. LayerNorm在Transformer中的关键作用
  • 稳定训练:LN被广泛应用于Transformer的每个子层(如注意力机制和前馈网络)。早期Transformer使用Post-LN(将LN放在残差连接之后),但容易导致梯度不稳定。现代Transformer多采用Pre-LN(将LN置于残差连接之前),以加速收敛并减少对Warm-up的依赖。
  • 非线性发现:最新研究表明,LN本身具有非线性表达能力。仅含线性层和LN的网络即可对复杂数据进行分类,打破了"归一化仅是线性变换"的传统认知。

本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐