深度残差网络 (Residual Network) - 突破深度的极限
CVPR 2016 最佳论文 · 深度学习里程碑
在 ResNet 出现之前,仅仅通过增加网络深度(层数)并不能无限提升性能。实验表明,当网络达到一定深度后,性能反而会下降。
ResNet 的核心洞见是:与其让网络直接学习潜在的映射 H(x),不如让它学习残差映射 F(x) = H(x) - x。
通过引入恒等捷径连接 (Shortcut Connection),原始输入 x 直接传到后面与残差块的输出相加。这样:
H(x) = F(x) + x,其中 F(x) 是要学习的残差函数。ResNet 使用两种不同类型的块,分别针对浅层网络(如 ResNet-34)和深层网络(如 ResNet-50/101/152)。
ResNet 具有清晰的模块化结构。通常包括 4 个主要阶段 (Stage),每个阶段的特征图大小减半,通道数翻倍。
| 模型 | 层数 | 块类型 | Stage1 | Stage2 | Stage3 | Stage4 | 参数量 |
|---|---|---|---|---|---|---|---|
| ResNet-18 | 18 | Basic | 2 | 2 | 2 | 2 | 11.7M |
| ResNet-34 | 34 | Basic | 3 | 4 | 6 | 3 | 21.8M |
| ResNet-50 | 50 | Bottleneck | 3 | 4 | 6 | 3 | 25.6M |
| ResNet-101 | 101 | Bottleneck | 3 | 4 | 23 | 3 | 44.5M |
| ResNet-152 | 152 | Bottleneck | 3 | 8 | 36 | 3 | 60.2M |
ResNet 的成功启发了大量变体和扩展,进一步推动了深度学习的发展。
y = x + Σ T_i(x),其中 T_i 是相同拓扑的变换。ResNet 的出现是所谓的 "All you need is skip connection" 的开始。它带来的改变是革命性的: