CVPR 2016 Best Paper CNN Architecture Microsoft Research 200,000+ Citations

Deep Residual Learning
for Image Recognition

Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun

随着神经网络深度的增加,模型变得愈发难以训练。本文提出了残差学习框架,通过将网络层重构为学习关于输入的"残差函数",成功训练了高达 152 层的极深网络(VGG 的 8 倍深度),一举包揽 ILSVRC 2015 和 COCO 2015 多项视觉任务的冠军。

研究动机与问题背景

深度卷积神经网络带来了图像分类领域的系列突破。网络深度自然地整合了低/中/高级特征,因此一个直觉的问题浮现:学习更好的网络是否就像堆叠更多层一样简单?

存在的痛点与局限

  • 梯度消失 / 爆炸:早年阻碍深度网络收敛的"元凶"。但通过标准化初始化和批归一化 (BN),几十层的网络已经可以正常收敛。
  • 退化问题 (Degradation):本文揭示了一个违反直觉的现象——当更深的网络开始收敛时,随着深度增加,准确率达到饱和后迅速退化。这种退化不是由过拟合引起的,而是更高的训练误差。
25% 20% 15% 10% 5% 0 20 40 60 80 迭代次数 (x1000) 训练误差 56 层误差反而更高 退化问题,非过拟合 56 层 (深层) 20 层 (浅层) 训练 测试

Figure 1:CIFAR-10 上 20 层与 56 层 Plain 网络的训练/测试误差对比。56 层网络的训练误差反而高于 20 层,印证了退化问题的存在。

核心逻辑

设想一个较浅的架构及其深层对应版本。理论上,深层模型存在一个构造性解:将增加的层设为恒等映射,其他层复制浅层模型。深层模型的训练误差理论上不应高于浅层模型,但目前的求解器无法找到这样的解。

💡

学术价值:本文打破了"层数壁垒",指出求解器拟合恒等映射存在困难,并顺势提出残差框架,使训练极深的表征成为可能,直接奠定了现代深度学习架构的基础。

数学表示与建模

本文没有改进求解器(如 SGD),而是对网络层的数学表征进行了重构。

残差学习的数学形式化

假设几个堆叠层需要拟合的底层映射为 $\mathcal{H}(x)$。如果非线性层可以逼近复杂函数,那么它们等价地也能逼近残差函数 $\mathcal{H}(x) - x$。作者让堆叠层显式逼近残差函数:

$$ \mathcal{F}(x) := \mathcal{H}(x) - x $$

原始映射变为:

$$ \mathcal{H}(x) = \mathcal{F}(x) + x $$

直觉:如果最优函数接近恒等映射,将权重推向零(逼近残差零向量)比用非线性层从头学习恒等映射容易得多。

快捷连接与公式定义

$\mathcal{F}(x) + x$ 通过前馈网络中的"快捷连接 (Shortcut Connections)"实现。构建块定义:

$$ y = \mathcal{F}(x, \{W_{i}\}) + x $$

其中 $\mathcal{F} = W_{2}\sigma(W_{1}x)$,$\sigma$ 为 ReLU。维度不匹配时,通过 $1\times1$ 卷积做线性投影:

$$ y = \mathcal{F}(x, \{W_{i}\}) + W_{s}x $$

基本残差块 ResNet-18 / 34 x (输入) 3x3 Conv + BN ReLU 3x3 Conv + BN 恒等映射 + ReLU F(x) + x 瓶颈残差块 ResNet-50 / 101 / 152 x (256 维) 1x1 Conv, 64 ↓ 降维 ReLU 3x3 Conv, 64 ReLU 1x1 Conv, 256 ↑ 升维 恒等映射 + ReLU F(x) + x

Figure 2:残差构建块。左:基本块(两层 3x3 卷积),用于 ResNet-18/34。右:瓶颈块(1x1 → 3x3 → 1x1),用于 ResNet-50/101/152,利用 1x1 卷积先降维再升维,大幅降低计算量。

架构设计细节:Plain vs. Residual 及瓶颈设计

1. Plain 网络:灵感来自 VGG。所有卷积层都是 $3\times3$。规则:输出尺寸相同则滤波器数量相同;特征图减半则滤波器翻倍。无全连接隐层,末端采用全局平均池化。

2. 瓶颈架构:将 2 层残差块改为 3 层,堆叠 $1\times1$、$3\times3$、$1\times1$ 卷积。首尾 $1\times1$ 负责降维和恢复维度。在此设计下,无参数的恒等快捷连接至关重要——使用投影快捷连接会使复杂度翻倍。

实验设置与复现细节

作者在多个任务上进行了详尽的评测。以下是核心复现参数。

实验任务与数据集

  • ImageNet 2012:1.28M 训练集,50k 验证集,100k 测试集,1000 分类。Top-1 / Top-5 Error。
  • CIFAR-10:50k 训练,10k 测试,10 分类,$32\times32$ 图片。
  • 目标检测 (COCO & PASCAL VOC):使用 Faster R-CNN,验证特征的泛化能力。

训练实现细节 (ImageNet)

超参数细节描述
数据增强随机缩放短边至 $[256,480]$,随机裁剪 $224\times224$,水平翻转,色彩增强,减去均值
批归一化每次卷积后、ReLU 前使用
权重初始化He Initialization (2015)
优化器SGD,batch=256,动量=0.9
学习率初始 0.1,平台期除以 10,最高迭代 $60\times10^{4}$ 次
正则化Weight Decay=0.0001,未使用 Dropout

测试:对比实验使用 10-crop testing;最佳结果采用多尺度全卷积测试(短边 $\{224, 256, 384, 480, 640\}$ 取平均)。

实验结果与核心结论

退化问题的破解

对比 18 层与 34 层的 Plain / Residual 网络(所有 shortcut 均采用 zero-padding 补齐维度):

ImageNet 验证集 Top-1 错误率 (%,10-crop testing)
层数Plain 网络ResNet结论分析
18 层27.9427.88浅层时两者接近,SGD 尚能寻优
34 层28.54 ↑ 退化25.03 ↓ 2.91%ResNet-34 成功利用了深度

核心数据

152
网络层数
3.57%
Top-5 (集成)
+28%
COCO mAP 提升
冠军
ILSVRC 2015

目标检测的巨大飞跃

不修改检测算法 (Faster R-CNN) 的情况下,仅将 VGG-16 替换为 ResNet-101:

  • mAP@[.5, .95] 从 21.2% 提升至 27.2%,绝对提升 6.0%,相对提升 28%
  • 证明深层特征极大改善了识别与定位精度。

犀利短评

优点

  • 大道至简的工程美学:$y = \mathcal{F}(x) + x$ 是深度学习史上最伟大的设计之一。无额外参数、无额外计算、一行代码实现,极度优雅。
  • 范式转移:打破了学术界对网络深度的"心理恐惧"。从此 100+ 层成为标配,启迪了 Transformer (Skip Connection)、DenseNet 等现象级工作。

不足与疑问

  • 理论论证的缺失:主要为经验驱动,没有从优化动力学层面解释为什么残差改善了梯度流动。后续的 loss landscape 分析、ODE 视角才补齐了理论拼图。
  • 极深网络的极限:在 CIFAR-10 上 1202 层网络的训练误差 $<0.1\%$,但测试误差反而高于 110 层,说明参数冗余导致的过拟合仍然是挑战。论文未给出正则化方案(如后来的 Stochastic Depth)。

One More Thing:被掩盖的"标准差"洞见

在这篇被引用超数十万次的论文中,很多人忽略了 Fig. 7 (Layer Responses Analysis) 提供的深刻视角。

作者在 CIFAR-10 上分析了各个 $3\times3$ 卷积层输出(BN 后、ReLU 前)的标准差

  • ResNets 的响应幅度普遍小于对应的 Plain 网络。
  • 网络越深 (ResNet-110 vs ResNet-20),单层响应幅度越小。
🔍

深层洞见:残差函数总体上更接近于零。在极深网络中,每一层只对穿越整个网络的"主干信号"进行极微小的修正。网络本质上将任务分解为数百个微小的高阶扰动,彻底改变了我们对深层特征逐层演化的认知。