神经网络Transformer架构中的残差连接
字数 1590 2025-11-19 07:39:47

神经网络Transformer架构中的残差连接

神经网络Transformer架构中的残差连接,是指在网络层中引入一条捷径,将输入直接传递到输出,与经过该层变换后的输出进行相加的操作。其核心目的是缓解深层网络中的梯度消失和网络退化问题,使得训练非常深的网络成为可能。

为了让你透彻理解,我们从问题根源开始,逐步深入:

  1. 深层网络的根本挑战

    • 在深度学习模型中,网络的“深度”(即层数)对于学习复杂特征至关重要。理论上,网络越深,其表达能力越强。
    • 然而,在实践中,简单地增加层数会遇到两个主要瓶颈:
      • 梯度消失/爆炸:在反向传播过程中,梯度需要从输出层逐层传递回输入层。当网络过深时,梯度可能会因为连续相乘而变得极小(消失)或极大(爆炸),导致靠近输入的层参数几乎无法得到有效更新。
      • 网络退化:即使梯度问题通过归一化等技术得到缓解,实验发现,随着网络深度增加,模型的训练误差和测试误差反而都会增大。这表明更深层的网络并非简单地更难训练,而是其本身的学习能力出现了退化。
  2. 残差连接的解决方案

    • 残差连接为解决上述问题提供了一种极其简洁而有效的思路。它不要求每一个网络层直接学习一个完整的目标映射 H(x),而是转而让该层学习目标映射与输入 x 之间的残差(即差值)F(x) = H(x) - x
    • 这样一来,该层的实际输出就变成了 F(x) + x
    • 结构解析:在一个残差块中,数据 x 会分成两路:
      • 主路径x 经过一层或多层的权重、激活函数等变换,得到 F(x)
      • 捷径x 本身不做任何处理(或在某些情况下进行线性投影,以匹配维度),直接跳过这些层。
      • 汇合点:将主路径的输出 F(x) 和捷径的输出 x 进行逐元素相加,得到最终输出 y = F(x) + x
  3. 残差连接为何有效?

    • 恒等映射的便捷性:如果某个深层是冗余的,即其最优功能是“什么都不做”(恒等映射 H(x) = x),那么对于普通网络,它需要精确地学习权重使其等于单位矩阵,这是困难的。而对于残差网络,它只需要将残差 F(x) 学习为 0 即可,即 y = 0 + x = x。学习使一个函数趋近于0,远比学习其趋近于一个复杂的恒等映射要容易得多。
    • 梯度的“高速公路”:在反向传播时,梯度不仅可以通过主路径回流,还可以通过捷径这条“高速公路”几乎无损地直接传递到更早的层。这极大地缓解了梯度消失问题,确保了即使网络极深,所有层也能获得有效的梯度信号进行更新。
    • 特征复用:捷径保证了原始输入信息能够直接流向后方,使得网络可以更灵活地选择使用主路径学习到的新特征,或是保留来自前方的旧特征,促进了不同层级特征的有效融合。
  4. 在Transformer架构中的具体应用

    • Transformer模型是一个非常深的网络,其编码器和解码器都由N个相同的层堆叠而成。残差连接是其核心组件之一,应用于每个子层之后。
    • 典型结构:在Transformer的每一个编码器层和解码器层中,你都会看到以下模式:
      • 子层输出 = LayerNorm( x + SubLayer(x) )
      • 其中 SubLayer(x) 可以是多头自注意力机制 或者 前馈神经网络
      • 流程详解
        1. 输入 x 同时进入子层和捷径。
        2. 子层对 x 进行处理,得到 SubLayer(x)
        3. SubLayer(x) 与原始的 x 相加,得到 x + SubLayer(x)
        4. 将相加后的结果送入层归一化,产生该子层的最终输出。
    • 重要性:正是由于残差连接的存在,Transformer才能够稳定地堆叠数十甚至上百层,从而具备强大的表征能力来处理复杂的序列到序列任务(如机器翻译、文本生成)。没有它,训练如此深度的Transformer模型将极为困难。
神经网络Transformer架构中的残差连接 神经网络Transformer架构中的残差连接,是指在网络层中引入一条捷径,将输入直接传递到输出,与经过该层变换后的输出进行相加的操作。其核心目的是缓解深层网络中的梯度消失和网络退化问题,使得训练非常深的网络成为可能。 为了让你透彻理解,我们从问题根源开始,逐步深入: 深层网络的根本挑战 在深度学习模型中,网络的“深度”(即层数)对于学习复杂特征至关重要。理论上,网络越深,其表达能力越强。 然而,在实践中,简单地增加层数会遇到两个主要瓶颈: 梯度消失/爆炸 :在反向传播过程中,梯度需要从输出层逐层传递回输入层。当网络过深时,梯度可能会因为连续相乘而变得极小(消失)或极大(爆炸),导致靠近输入的层参数几乎无法得到有效更新。 网络退化 :即使梯度问题通过归一化等技术得到缓解,实验发现,随着网络深度增加,模型的训练误差和测试误差反而都会增大。这表明更深层的网络并非简单地更难训练,而是其本身的学习能力出现了退化。 残差连接的解决方案 残差连接为解决上述问题提供了一种极其简洁而有效的思路。它不要求每一个网络层直接学习一个完整的目标映射 H(x) ,而是转而让该层学习目标映射与输入 x 之间的 残差 (即差值) F(x) = H(x) - x 。 这样一来,该层的实际输出就变成了 F(x) + x 。 结构解析 :在一个残差块中,数据 x 会分成两路: 主路径 : x 经过一层或多层的权重、激活函数等变换,得到 F(x) 。 捷径 : x 本身不做任何处理(或在某些情况下进行线性投影,以匹配维度),直接跳过这些层。 汇合点 :将主路径的输出 F(x) 和捷径的输出 x 进行 逐元素相加 ,得到最终输出 y = F(x) + x 。 残差连接为何有效? 恒等映射的便捷性 :如果某个深层是冗余的,即其最优功能是“什么都不做”(恒等映射 H(x) = x ),那么对于普通网络,它需要精确地学习权重使其等于单位矩阵,这是困难的。而对于残差网络,它只需要将残差 F(x) 学习为 0 即可,即 y = 0 + x = x 。学习使一个函数趋近于0,远比学习其趋近于一个复杂的恒等映射要容易得多。 梯度的“高速公路” :在反向传播时,梯度不仅可以通过主路径回流,还可以通过捷径这条“高速公路”几乎无损地直接传递到更早的层。这极大地缓解了梯度消失问题,确保了即使网络极深,所有层也能获得有效的梯度信号进行更新。 特征复用 :捷径保证了原始输入信息能够直接流向后方,使得网络可以更灵活地选择使用主路径学习到的新特征,或是保留来自前方的旧特征,促进了不同层级特征的有效融合。 在Transformer架构中的具体应用 Transformer模型是一个非常深的网络,其编码器和解码器都由N个相同的层堆叠而成。残差连接是其核心组件之一,应用于每个子层之后。 典型结构 :在Transformer的每一个编码器层和解码器层中,你都会看到以下模式: 子层输出 = LayerNorm( x + SubLayer(x) ) 其中 SubLayer(x) 可以是 多头自注意力机制 或者 前馈神经网络 。 流程详解 : 输入 x 同时进入子层和捷径。 子层对 x 进行处理,得到 SubLayer(x) 。 将 SubLayer(x) 与原始的 x 相加,得到 x + SubLayer(x) 。 将相加后的结果送入 层归一化 ,产生该子层的最终输出。 重要性 :正是由于残差连接的存在,Transformer才能够稳定地堆叠数十甚至上百层,从而具备强大的表征能力来处理复杂的序列到序列任务(如机器翻译、文本生成)。没有它,训练如此深度的Transformer模型将极为困难。