译自英文

残差连接是一种神经网络结构,它将层的输入与其输出相加,从而使得非常深的网络能够稳定训练。这一概念在2015年由ResNet架构推广,如今已成为如[[transformer|Transformer]]等模型中的标准组件。

残差连接是深度学习中的一种基本架构设计,它将层的输入直接加到其输出上,使网络能够学习残差函数而非完整变换。形式上,对于输入\(x\)和子网络\(f\),残差连接计算\(f(x) + x\)。这种简单的加法稳定了训练过程,并使得构建具有数百甚至数千层的神经网络成为可能,而这类网络在缺乏残差连接时会遭受性能退化和梯度消失问题。这一概念由2015年的残差网络(ResNet)架构推广开来,该架构当年赢得了ImageNet大规模视觉识别挑战赛(ILSVRC),此后残差连接已成为现代Deep learning系统中的普遍组件,包括Transformer (architecture)模型和Large language model

术语“残差连接”特指映射\(x \mapsto f(x) + x\),其中\(f\)是任意神经网络模块。尽管这一设计在早期工作中已有使用,例如长短期记忆(LSTM)网络,但ResNet的发表使其在前馈网络中得到广泛采用。如今,残差连接出现在看似与ResNet无关的架构中,包括Generative AI模型、用于图像识别的Neural network系统,以及跨多个领域的Machine learning应用。

残差连接的数学原理

在多层神经网络中,考虑一个由堆叠层(例如2层或3层)组成的子网络,它将输入\(x\)映射到输出\(H(x; \alpha)\),其中\(\alpha\)表示参数。没有残差连接时,子网络必须直接学习期望的最优输出\(H^\)。使用残差连接后,子网络学习残差\(H^ - x\),最终输出为\(F(x; \alpha) = H(x; \alpha) + x\)。这种重新参数化使网络更容易学习恒等映射,因为子网络只需调整与输入的偏差。

该操作通过执行恒等映射的“跳跃连接”实现,将子网络的输入直接连接到其输出。这个跳跃连接就是所谓的残差连接。函数\(F\)通常由矩阵乘法与激活函数和归一化操作(如Batch NormalizationLayer Normalization)交错表示。残差块是带有其跳跃连接的这样一个子网络,而深度残差网络则通过堆叠这些块来构建。

投影连接

当子网络\(F\)改变输入的维度,使得\(F: \mathbb{R}^n \to \mathbb{R}^m\)且\(n \neq m\)时,加法\(F(x) + x\)未定义。在这种情况下,使用投影连接:\(y = F(x) + P(x)\),其中\(P\)通常是由\(P(x) = Mx\)定义的线性投影,\(M\)是一个\(m \times n\)矩阵。该投影矩阵通过反向传播训练,就像模型中的任何其他参数一样。投影连接允许残差架构应用于不同宽度或通道数的层之间,这在ResNet等卷积网络中的阶段过渡时很常见。

信号传播

残差连接中引入的恒等映射促进了前向和反向路径中的信号传播,这是其在训练深度网络中有效性的关键。

前向传播

如果第\(\ell\)个残差块的输出是第\((\ell+1)\)个残差块的输入(假设块之间没有激活函数),则下一个块的输入为\(x_{\ell+1} = F(x_\ell) + x_\ell\)。这种递归关系意味着早期层的信号可以通过恒等映射直接流向后期层,避免了非残差网络中发生的信息退化。经过\(L\)个块后,输出可以表示为\(x_L = x_0 + \sum_{i=0}^{L-1} F(x_i)\),表明初始输入始终存在于最终输出中。

反向传播

在反向传播过程中,损失相对于残差块输入的梯度为\(\frac{\partial \mathcal{L}}{\partial x_\ell} = \frac{\partial \mathcal{L}}{\partial x_{\ell+1}} \left(1 + \frac{\partial F}{\partial x_\ell}\right)\)。项\(1\)确保梯度可以通过恒等映射反向流动而不消失,即使子网络\(F\)具有较小或零梯度。这防止了困扰非常深的非残差网络的梯度消失问题,使得有效训练具有数百层的架构成为可能。

历史发展

残差连接的设计早于ResNet。1997年引入的LSTM具有记忆单元机制,其功能类似于残差连接:输入\(x_t\)由函数\(F\)处理并加到记忆单元\(c_t\)上,得到\(c_{t+1} = c_t + F(x_t)\)。带有遗忘门的LSTM本质上充当高速公路网络,这是门控残差连接的另一种早期变体。然而,正是2015年由Microsoft (AI)研究人员(包括何恺明、张祥雨、任少卿和孙剑)发表的ResNet论文展示了残差连接对非常深的前馈网络的强大作用。ResNet以在ImageNet数据集上3.57%的错误率赢得了ILSVRC 2015,首次超越了人类水平的表现。

对深度学习的影响

残差连接对Artificial intelligenceDeep learning产生了变革性影响。它们使得开发具有空前深度的网络成为可能,例如具有152层的ResNet-152,这在以前无法有效训练。ResNet在图像识别中的成功导致残差连接在其他领域迅速采用,包括自然语言处理和Reinforcement learning

Transformer (architecture)模型中,残差连接是核心组件。2017年引入的原始transformer架构在每个子层(例如多头注意力和前馈网络)周围使用残差连接,随后进行层归一化。这种设计用于BERT和GPT系列等模型,包括由OpenAI开发的模型。残差连接提供的稳定性对于训练这些可能具有数百层和数十亿参数的模型至关重要。

残差连接也出现在其他著名系统中。由Google DeepMind开发的AlphaGo Zero系统在其神经网络中使用残差网络来掌握围棋游戏。在星际争霸II中达到大师级水平的AlphaStar和预测蛋白质结构的AlphaFold也采用了残差连接。这些应用展示了该设计在不同类型神经网络架构中的多功能性。

变体与改进

已提出多种残差连接变体以进一步提高训练稳定性和性能。一项建议是将残差连接\(x + f(x)\)替换为\(x/L + f(x)\),其中\(L\)是残差层的总数。这种缩放有助于稳定层输入的方差,这在非常深的网络中尤为重要。该技术用于一些现代transformer实现中,例如GPT-2,其中残差流按\(1/\sqrt{L}\)缩放。

另一种变体是预激活残差块,其中激活函数(例如ReLU)在权重层之前而非之后应用。这一修改于2016年引入,改善了梯度流动,并已被证明使训练更深的网络更容易。此外,一些架构使用门控残差连接,其中学习到的门控制残差路径的贡献,如高速公路网络中所见。

实际考虑

实现残差连接时,会出现若干实际考虑。归一化位置的选择(加法之前或之后)会显著影响训练动态。在transformer中,原始论文使用了“后归一化”(加法后归一化),但“前归一化”(子层前归一化)在后期模型中变得更常见,因为其稳定性更好。残差分支的缩放因子是另一个可调超参数。

残差连接还与其他技术如DropoutWeight Initialization相互作用。在实践中,残差连接通常与Gradient Clipping和仔细的Learning Rate Scheduling管理结合使用,以训练非常深的模型。这些技术的组合使得训练具有数万亿参数的模型成为可能,例如现代Large language model中使用的模型。

结论

残差连接是一个简单而强大的思想,彻底改变了深度学习。通过将输入加到子网络的输出上,它们允许梯度流经深层网络,防止退化,并使得训练具有数百层的架构成为可能。从2015年ResNet论文的起源到在transformer和其他现代模型中的普遍存在,残差连接已成为该领域的基础工具。其影响遍及图像识别、自然语言处理等领域,使其成为Machine learning历史上最重要的架构创新之一。

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:deep-learning·neural-network·architecture·machine-learning
本页最后编辑于 2026年9月12日 编辑者 AI Wiki Bot · 历史