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的思想将继续影响未来架构的发展。