ResNet(残差神经网络,Residual Neural Network 的缩写)是一种深度学习架构,其中各层参照其输入来学习残差函数。该架构于 2015 年为图像识别而开发,并在同年的 ImageNet 大规模视觉识别挑战赛(ILSVRC)中获胜。该架构的标志性特征是残差连接,这是一种将子网络的输入与其输出相加的机制,从而能够训练具有数百层的网络。这一设计已成为现代深度学习模型(包括Transformer架构以及AlphaGo Zero和 AlphaFold 等系统)的基本构建块。
残差连接稳定了深度神经网络的训练和收敛,解决了此前限制网络深度的梯度消失问题。其影响远超图像识别领域,广泛出现在神经网络中,涵盖从大型语言模型到强化学习系统的各类应用。
数学原理
ResNet 的核心思想是重新表述学习目标。在多層网络中,考虑一个由堆叠层组成的子网络,其计算函数为 \(H(x;\alpha)\),其中 \(x\) 是输入,\(\alpha\) 是参数。残差学习并非直接学习 \(H\),而是让子网络学习 \(F(x;\alpha) = H(x;\alpha) + x\)。最优输出 \(H^\) 通过学习残差 \(H^ - x\) 来实现,这通常更易于优化。
\(x\) 的加法通过跳跃连接实现,该连接执行恒等映射,将子网络的输入直接连接到其输出。这种跳跃连接被称为“残差连接”。带有此连接的子网络称为残差块,而深度残差网络则由堆叠多个这样的块构建而成。
残差连接
在残差块中,函数 \(F\) 通常由矩阵乘法与激活函数及归一化操作(如批归一化或层归一化)交替组成。残差连接 \(x + F(x)\) 允许梯度在反向传播过程中直接流过网络,从而缓解了网络加深时训练变难的退化问题。
残差连接的概念早有先例。长短期记忆网络(LSTM)便有一个充当残差连接的记忆单元:\(c_{t+1} = c_t + F(x_t)\),其中 \(c_t\) 是单元状态,\(F\) 处理输入 \(x_t\)。带遗忘门的 LSTM 本质上类似于高速公路网络,这是一种也使用门控跳跃连接的相关架构。
为了稳定极深网络中各层输入的方差,建议按总层数 \(L\) 缩放残差连接,将 \(x + f(x)\) 替换为 \(x/L + f(x)\)。这种归一化有助于在数百层网络中保持信号幅度的稳定。
投影连接
当函数 \(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\) 矩阵。该矩阵与其他模型参数一起通过反向传播训练,使网络能够适应新的维度。
信号传播
恒等映射的引入促进了前向和反向路径中的信号传播。在前向传播中,若第 \(\ell\) 个残差块的输出是第 \((\ell+1)\) 个块的输入(假设块间无激活函数),则 \(x_{\ell+1} = F(x_\ell) + x_\ell\)。这种递推关系允许信息直接流过网络,即使 \(F\) 产生较小值,也能保留输入信号。
在反向传播中,损失对某块输入的梯度包含一项通过恒等映射传递的、对该块输出的梯度。这确保了梯度在多层传播中不会消失,这是训练数百层网络的关键因素。
历史与影响
残差连接的思想在早期工作中已有雏形,但 ResNet 于 2015 年的发表使其在前馈网络中广泛普及。该架构由微软的研究人员何恺明、张祥雨、任少卿和孙剑开发。他们的论文《Deep Residual Learning for Image Recognition》证明,残差网络可训练至 152 层甚至更深,并在 ImageNet 基准测试中取得了当时最先进的成果。
ResNet 在 ILSVRC 2015 中的成功标志着机器学习领域的转折点。它表明极深网络不仅可行,而且性能更优,从而引发了对深度架构的研究热潮。残差连接成为后续模型的标准组件,包括用于自然语言处理的Transformer,以及AlphaGo Zero、AlphaStar和AlphaFold等系统。
变体与扩展
为提升性能或效率,研究者提出了多种 ResNet 变体。预激活 ResNet 将激活函数移至权重层之前,改善了正则化效果,并支持更深的网络。宽 ResNet 增加每个块中的通道数,以宽度换取深度,从而用更少的层数获得更高精度。ResNeXt 引入基数维度,在块内使用并行分支,在不增加深度的情况下提升表示能力。
其他扩展包括 DenseNet,它将每一层与所有后续层直接连接;以及随机深度 ResNet,它在训练中随机丢弃层以进行正则化。这些变体进一步拓展了深度残差学习的可能性边界。
应用
ResNet 已广泛应用于图像识别之外的众多任务,包括目标检测、语义分割和视频分析。它还用于医学影像、自动驾驶和人脸识别系统。该架构的通用性和稳健性使其成为许多计算机视觉应用的首选方案。
此外,残差连接原理已被其他领域采纳,例如自然语言处理和强化学习。例如,Transformer模型依赖残差连接来训练用于语言理解和生成的深层网络,这在OpenAI的 GPT 系列和Anthropic的模型中均有体现。因此,ResNet 的影响遍及整个人工智能领域。