1 背景与动机

1.1 深层网络的优势与挑战

深度卷积神经网络通过堆叠更多层来增强模型的表达能力,理论上更深的网络可以学习更复杂的特征层次。然而,在实践中,深层网络的训练面临两大核心障碍。

1.1.1 梯度消失/爆炸问题

在早期深度网络中,反向传播时梯度会随着层数指数级衰减或增长,导致浅层权重几乎无法更新或更新过度。Batch Normalization(批归一化)的引入在一定程度上缓解了这一现象,但并未完全解决深层网络性能下降的根本问题。

1.1.2 退化问题(degradation problem)的发现

何恺明等人通过实验发现,当网络层数增加到一定深度后(如超过20层),不仅测试准确率饱和甚至下降,训练准确率也随之降低——这种现象并非过拟合,而是深度本身带来的优化困难。该问题被命名为“退化问题”,其本质是深层网络难以拟合恒等映射,导致误差随着层数增加而累积。

1.2 已有解决方案的局限性

在ResNet提出之前,研究者尝试过多种手段,如精心初始化权重、使用中间层监督、添加辅助损失等。这些方法虽能略微提升深层网络性能,但都无法从根本上解除网络加深导致精度下降的魔咒。层数超过30时,训练仍然困难,且网络越深效果越差。

2 核心原理

2.1 残差学习(Residual Learning)

2.1.1 将目标映射转化为残差映射

ResNet摒弃了传统网络直接学习目标映射 \(H(x)\) 的思路,改为学习残差函数 \(F(x) = H(x) - x\)。这样,原始映射变为 \(H(x) = F(x) + x\)。当最优解接近恒等映射时,残差函数 \(F(x)\) 趋于零,网络更容易学习到细微调整而非重构整个映射。

2.1.2 恒等映射(Identity Mapping)的作用

恒等映射作为残差学习的“基线”,允许网络在不会产生负收益时选择“跳过”某些层。这使得深层网络至少能保持与浅层网络相同的性能,从而避免了退化问题。

2.2 跳跃连接(Shortcut Connection)

2.2.1 恒等跳跃连接

最简单的跳跃连接直接将输入 \(x\) 绕过一个或多个卷积层,与输出相加。这种连接不引入额外参数,计算开销极低,且不改变输入维度。

2.2.2 投影跳跃连接(Projection Shortcut)

当残差块输入输出的特征维度或空间尺寸不一致时(例如跨步卷积下采样),恒等连接无法直接相加。此时通过 \(1 \times 1\) 卷积对输入进行线性投影,调整通道数和尺寸,使得跳跃连接能够匹配残差分支的输出。

2.2.3 加性合并机制(Element-wise Addition)

跳跃连接与残差分支的输出通过逐元素相加(element-wise addition)合并,然后经过非线性激活函数(通常为ReLU)。这种合并方式既保留了原始输入信息,又叠加了网络学习到的残差,实现了信息流的双重通道。

3 网络结构

3.1 基本残差块(Basic Residual Block)

3.1.1 两层卷积结构(3×3 + 3×3)

基本块由两个堆叠的 \(3 \times 3\) 卷积层组成,两层输出的通道数相同。跳跃连接直接从输入跨越两层到达相加点。

3.1.2 批归一化与激活函数配置

每个卷积层之后先进行批归一化(Batch Normalization),再使用ReLU激活函数。在残差块的最后,先逐元素相加,再通过ReLU输出。这种“Conv→BN→ReLU→Conv→BN→Add→ReLU”的模式成为标准配置。

3.2 瓶颈残差块(Bottleneck Residual Block)

3.2.1 1×1卷积降维与升维

瓶颈块用一个 \(1 \times 1\) 卷积将输入压缩至较低维度(如256→64),经过一个 \(3 \times 3\) 卷积后,再用另一个 \(1 \times 1\) 卷积升维回原始维度。这种“降维-处理-升维”的设计大幅减少了参数量和计算量。

3.2.2 用于更深网络(ResNet-50/101/152)

由于瓶颈块参数效率更高,ResNet从50层开始全面采用瓶颈块结构。例如ResNet-50由4个阶段共16个瓶颈块组成(实际层数包括卷积与全连接层计算在内),ResNet-101和ResNet-152则进一步堆叠更多瓶颈块。

3.3 常见网络深度配置

3.3.1 ResNet-18/34(基本块)

ResNet-18和ResNet-34采用基本残差块,分别包含18层和34层卷积层(不计全连接层)。它们结构简单,适合小规模数据集或快速验证。

3.3.2 ResNet-50/101/152(瓶颈块)

这三类网络使用瓶颈块,层数更深。ResNet-50在ImageNet上首次展示了残差学习在大规模图像分类中的强大能力,ResNet-152则进一步逼近当时的最优精度。

3.3.3 ResNet-1202等超深实验变体

何恺明等人还测试了ResNet-1202层(使用基本块),尽管训练精度尚可,但测试精度未超过ResNet-152,说明超深网络的边际收益递减。该实验主要用于验证残差学习能够有效训练极深网络。

4 优势与特性

4.1 解决退化问题的机制分析

4.1.1 在前向传播中的梯度流保护

跳跃连接使得前向传播时信息可以直接从浅层流向深层,即使中间层的权重接近零,深层依然能接收到原始输入。这相当于在神经网络中构建了一条“高速公路”,避免了信息衰减。

4.1.2 反向传播中的梯度传播效率

反向传播时,梯度可以通过跳跃连接直接回传至浅层,从而缓解梯度消失。具体地,损失函数对输入的梯度可以表示为 \(\frac{\partial \mathcal{L}}{\partial x} = \frac{\partial \mathcal{L}}{\partial y} \cdot \left(1 + \frac{\partial F}{\partial x}\right)\),其中恒等路径确保梯度值至少保留 \(\frac{\partial \mathcal{L}}{\partial y}\) 的量。

4.2 参数效率与计算开销

对比没有跳跃连接的VGG网络,ResNet使用更少的参数和更低的计算量实现了更好的精度。例如ResNet-34的参数规模远小于VGG-19,但ImageNet top-5错误率更低。

4.3 易于迁移与集成

ResNet的模块化设计使得它可以作为骨干网络(backbone)轻松嵌入各类视觉任务模型。无论是Faster R-CNN还是Mask R-CNN,只需将分类网络替换为ResNet即可获得显著性能提升。

5 主要变体与改进

5.1 Pre-activation ResNet(ResNet v2)

5.1.1 将BN和ReLU置于卷积之前

ResNet v2将批归一化和ReLU移到卷积层之前,即“BN→ReLU→Conv”的顺序。这种“预激活”设计使残差块中的恒等路径更加干净,减少了非线性对信息直接传递的干扰。

5.1.2 改进的恒等映射路径

通过将BN和ReLU提前,跳跃连接的恒等路径不再经过任何激活函数,信息流更加通畅。ResNet v2在深层网络(如1001层)上的训练和测试性能优于原版ResNet。

5.2 Wide ResNet(WRN)

5.2.1 增宽而非加深的策略

Wide ResNet认为“加深不如加宽”,通过增加每层的通道数(宽度)而非堆叠更多层来提升性能。这种策略在同样深度下可用更少的层数达到接近的效果。

5.2.2 宽度因子k的影响

WRN引入宽度因子 \(k\),例如WRN-28-10表示28层网络且通道数放大10倍。实验表明,适当增大宽度能有效提升准确率,同时训练速度更快。

5.3 ResNeXt

5.3.1 分组卷积(Group Convolution)

ResNeXt在残差块内部使用分组卷积,将输入通道分成若干组分别进行 \(3 \times 3\) 卷积,然后将各组结果拼接。这借鉴了Inception模块的“拆分-转换-合并”思想,但结构更简洁。

5.3.2 基数(Cardinality)的概念

ResNeXt将分组数称为“基数”(cardinality),并证明增大基数比单纯增加深度或宽度更有效。例如ResNeXt-101的基数设为32,在ImageNet上超越了同深度的ResNet。

5.4 DenseNet与ResNet的对比

DenseNet(密集连接卷积网络)采用“密集连接”方式,每一层都接收前面所有层的输出作为输入。与ResNet相比,DenseNet参数更少,梯度流动更直接,但计算显存消耗更大。两者在应用场景上互补。

5.5 其他衍生架构(如SE-ResNet、Res2Net)

  • SE-ResNet:在残差块中嵌入Squeeze-and-Excitation模块,通过全局平均池化学习通道注意力,提升模型对重要特征的关注度。
  • Res2Net:在单个残差块内部分裂特征图,利用多个尺度分组卷积,以更细粒度的方式提取多尺度特征。

6 应用领域

6.1 图像分类(ImageNet竞赛)

ResNet在2015年ImageNet大规模视觉识别挑战赛(ILSVRC)中夺得图像分类冠军,top-5错误率降至3.57%,首次超越人类水平。此后,ResNet成为图像分类任务的事实标准基线。

6.2 目标检测与语义分割(Faster R-CNN、Mask R-CNN等)

目标检测算法Faster R-CNN引入ResNet作为骨干网络后,检测精度大幅提升。Mask R-CNN进一步结合ResNet与FPN(特征金字塔网络),在实例分割任务中取得突破性结果。

6.3 人脸识别与姿态估计

在人脸识别领域,基于ResNet的FaceNet、ArcFace等方法成为主流。姿态估计任务中,SimpleBaseline和HRNet等模型常以ResNet作为编码器主干。

6.4 视频分析、医学影像及其他视觉任务

ResNet被广泛应用于视频分类(如C3D、I3D的2D卷积基础)、医学图像分割(U-Net的编码器部分)、遥感图像分析及工业缺陷检测等场景。

7 影响与评价

7.1 学术贡献与奖项(CVPR 2016最佳论文)

《Deep Residual Learning for Image Recognition》获得CVPR 2016最佳论文奖。截至2025年,该论文引用量已超过15万次,是计算机视觉领域被引次数最高的论文之一。

7.2 对深度学习理论的启发

ResNet首次系统性地证明了极深网络可以训练,并引入了跳跃连接这一核心设计思想。它启发了后续DenseNet、Highway Networks、Transformer中的残差连接等大量工作,对深度学习理论发展产生了深远影响。

7.3 工业部署与开源实现(PyTorch、TensorFlow等)

几乎所有主流深度学习框架(PyTorch、TensorFlow、Keras、MindSpore等)都内置了ResNet的预训练模型和实现。ResNet因其稳定高效,被广泛应用于模型压缩、知识蒸馏、边缘计算等工业场景。

8 局限与未来发展

8.1 对超深网络的边际效益递减

虽然ResNet能训练上千层网络,但实验表明超过152层后精度提升极为有限甚至不升反降。这表明单纯堆叠层数已不是性能提升的主要途径,需要更精细的结构设计。

8.2 与Transformer架构的融合趋势(如ResT、ConvNeXt)

近年来,视觉Transformer(ViT)和大核卷积网络(ConvNeXt)逐渐取代纯ResNet架构。然而,许多Transformer模型仍采用残差连接机制,例如ResT将ResNet的跳跃连接与Transformer块结合。ConvNeXt则借鉴了ResNet的分阶段设计和下采样模式,表明ResNet的思想将继续影响未来架构的发展。