研究动机与问题背景
深度卷积神经网络带来了图像分类领域的系列突破。网络深度自然地整合了低/中/高级特征,因此一个直觉的问题浮现:学习更好的网络是否就像堆叠更多层一样简单?
存在的痛点与局限
- 梯度消失 / 爆炸:早年阻碍深度网络收敛的"元凶"。但通过标准化初始化和批归一化 (BN),几十层的网络已经可以正常收敛。
- 退化问题 (Degradation):本文揭示了一个违反直觉的现象——当更深的网络开始收敛时,随着深度增加,准确率达到饱和后迅速退化。这种退化不是由过拟合引起的,而是更高的训练误差。
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 $$
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 补齐维度):
| 层数 | Plain 网络 | ResNet | 结论分析 |
|---|---|---|---|
| 18 层 | 27.94 | 27.88 | 浅层时两者接近,SGD 尚能寻优 |
| 34 层 | 28.54 ↑ 退化 | 25.03 ↓ 2.91% | ResNet-34 成功利用了深度 |
核心数据
目标检测的巨大飞跃
在不修改检测算法 (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),单层响应幅度越小。
深层洞见:残差函数总体上更接近于零。在极深网络中,每一层只对穿越整个网络的"主干信号"进行极微小的修正。网络本质上将任务分解为数百个微小的高阶扰动,彻底改变了我们对深层特征逐层演化的认知。