返回报告库

AI / Technology

ResNet真正的突破不是“更深”,而是让深度变得可优化

深度残差学习以恒等捷径贯穿深层网络

图 0:ResNet 的核心不是无条件堆叠更多层,而是用恒等捷径为深层网络保留一条稳定的信息通路。

更深的普通网络出现更高训练误差 {#1-论文真正要解决的-不是传统的梯度消失}

图 1:退化问题发生在训练误差上,因此不能用普通的过拟合故事解释。

  • 随着普通网络加深,准确率先饱和,然后下降;
  • 更关键的是,更深网络的训练误差也更高
  • 因而这不是“训练集拟合很好、测试集变差”的典型过拟合。

原始残差块的两路信息流 {#2-残差学习-不从零重画-只学习该改哪里}

图 2:恒等捷径保留输入,残差分支只负责学习相对于输入的修正量。

  1. 残差分支用两层或三层卷积学习 F(x)F(x)
  2. 恒等捷径把 xx 原样送到末端;
  3. 两路特征逐元素相加,得到 F(x)+xF(x)+x

ImageNet 上普通网络与残差网络的受控比较 {#3-最有说服力的证据-是同条件下的-18-层与-34-层对照}

图 3:同样从 18 层加深到 34 层,普通网络退化,而 ResNet 的错误率显著下降。

把同样的网络改成残差形式后,趋势反转:18 层 ResNet 为 27.88%,34 层 ResNet 降至 25.03%。这组实验中的残差网络使用恒等捷径和补零,不比普通网络增加参数。

基础残差块与瓶颈残差块对比 {#4-从-34-层走到-152-层-还需要一个工程设计-瓶颈块}

图 4:瓶颈块不是残差思想本身,而是把 ResNet 扩展到 50、101、152 层时控制计算量的工程手段。

中间昂贵的 3×33\times3 卷积在较窄的通道空间里运行,首尾的 1×11\times1 卷积负责压缩和恢复维度。

ResNet 证据链与能力边界 {#6-实验究竟证明了什么}

图 5:论文的证据分为优化、深度扩展和任务迁移三层;1202 层实验同时说明“能训练”与“泛化好”是两件事。

这组对照保持检测实现一致,所以论文把增益归因于更好的骨干特征。附录中更高的竞赛成绩还叠加了框迭代修正、全局上下文、多尺度测试和模型集成,不能全部算作残差学习单独带来的收益。

研究附录

2015 年,何恺明、张祥雨、任少卿和孙剑发表了《Deep Residual Learning for Image Recognition》。这篇论文后来以 ResNet 之名成为视觉模型的基础工作之一。但如果只把它概括成“加一条 skip connection,就能训练 152 层网络”,会漏掉真正重要的因果链:

作者先发现,更深的普通网络甚至无法把训练集拟合得更好;然后把每组层的任务从“重新学习整个映射”改写成“只学习相对于输入的修正量”。

这不是简单增加模型容量,而是改变了优化问题的坐标系。

一句话先讲明白

设一组网络层原本要学习映射 H(x)H(x)。ResNet 不再让它们直接拟合 H(x)H(x),而是学习残差:

F(x)=H(x)xF(x) = H(x) - x

于是输出变成:

H(x)=F(x)+xH(x) = F(x) + x

其中 xx 通过一条恒等捷径(identity shortcut)直接送到输出,网络层只需要学习“在 xx 上改多少”。如果最合适的映射接近恒等映射,直接学习 H(x)=xH(x)=x 可能并不容易;而在残差形式里,只要把 F(x)F(x) 推向 0 就可以接近它。

这就是整篇论文的中心重构。

1. 论文真正要解决的,不是传统的梯度消失

在 ResNet 之前,网络越深通常越难训练。一个直觉解释是梯度消失或梯度爆炸。但到 2015 年,合理的参数初始化和批归一化(Batch Normalization, BN)已经让几十层网络能够开始收敛。作者观察到的是另一个问题:网络能训练,却越深越差。

论文把它称为退化问题(degradation problem):

  • 随着普通网络加深,准确率先饱和,然后下降;
  • 更关键的是,更深网络的训练误差也更高
  • 因而这不是“训练集拟合很好、测试集变差”的典型过拟合。

作者给出了一个很锋利的反证思路。假设已有一个训练良好的浅层网络,现在给它添加若干层。新层至少可以实现恒等映射,原有层则原样复制;这样构造出的深层网络不应该比浅层网络训练误差更高。换句话说,更深模型的解空间里明明存在一个“不变差”的解

可实际优化器没有在可接受时间内找到它。这说明问题不在于解不存在,而在于现有参数化方式让这个解难以被找到。

论文还专门说明:实验中的普通网络使用了 BN,前向信号保持非零方差,反向梯度的范数也健康,因此作者认为这个现象不太可能由梯度消失造成。不过,论文并没有给出退化问题的完整理论解释;“深层普通网络可能具有极慢的收敛速度”仍是作者的推测。

2. 残差学习:不从零重画,只学习该改哪里

直接映射和残差映射在表达能力上并没有神奇差别。如果一组非线性层能逼近 H(x)H(x),原则上也能逼近 H(x)xH(x)-x。论文的主张是:两种写法可以表达相同目标,但优化难度可能完全不同。

一个残差块把输入分成两路:

  1. 残差分支用两层或三层卷积学习 F(x)F(x)
  2. 恒等捷径把 xx 原样送到末端;
  3. 两路特征逐元素相加,得到 F(x)+xF(x)+x

在输入和输出维度相同时,捷径就是纯粹的恒等映射,不增加参数,也几乎不增加计算量。这个细节非常重要:论文可以在深度、宽度、参数量和主要计算量近乎相同的条件下,对普通网络和残差网络做公平比较。

如果特征图尺寸或通道数变化,xxF(x)F(x) 无法直接相加。论文考察了三种处理:

  • A: 仍使用恒等捷径,对新增通道补 0;
  • B: 只在维度变化处使用 1×11\times1 投影 WsxW_sx
  • C: 所有捷径都使用投影。

三种方式都明显优于普通网络。B 略优于 A,C 又略优于 B,但差距很小;作者据此认为,投影捷径不是解决退化问题的必要条件。后续更深网络采用 B:只有维度变化时才投影,其余位置保留便宜的恒等捷径。

这里还有一个常见误解:捷径不是把某些层“关掉”,也不是拼接(concatenation)。它让输入始终可达,并把残差分支的输出与输入逐元素相加

3. 最有说服力的证据,是同条件下的 18 层与 34 层对照

ImageNet 实验先比较了 18 层和 34 层的普通网络。34 层普通网络的训练误差在训练过程中始终更高,最终 10-crop 验证集 Top-1 错误率也从 27.94% 上升到 28.54%。

把同样的网络改成残差形式后,趋势反转:18 层 ResNet 为 27.88%,34 层 ResNet 降至 25.03%。这组实验中的残差网络使用恒等捷径和补零,不比普通网络增加参数。

这组结果支持三个层次不同的结论:

  1. 34 层普通网络并非因为容量不足而变差,它是优化得更差;
  2. 残差参数化显著降低了这个优化障碍;
  3. 当网络还不算“过深”时,18 层普通网络与 ResNet 最终精度接近,但 ResNet 在训练早期收敛更快。

要注意,论文证明的是“在这些架构和训练设置下,残差形式更容易优化”,而不是给出一个保证所有深度、所有任务都更好的数学定理。

4. 从 34 层走到 152 层,还需要一个工程设计:瓶颈块

ResNet-18 和 ResNet-34 使用基础块:残差分支由两个 3×33\times3 卷积组成。若照此直接堆到 100 多层,训练成本会很高。于是 ResNet-50、101 和 152 改用三层瓶颈块(bottleneck block):

1×1 降维3×3 处理1×1 升维1\times1\ \text{降维} \rightarrow 3\times3\ \text{处理} \rightarrow 1\times1\ \text{升维}

中间昂贵的 3×33\times3 卷积在较窄的通道空间里运行,首尾的 1×11\times1 卷积负责压缩和恢复维度。

论文中 ResNet-152 的计算量为 11.3 billion FLOPs,虽然层数约为 VGG-19 的 8 倍,但仍低于 VGG-16 的 15.3 billion FLOPs 和 VGG-19 的 19.6 billion FLOPs。这里的“更深但更省”不是捷径单独带来的,而是网络宽度、分阶段下采样和瓶颈设计共同作用的结果。

恒等捷径对瓶颈块尤其划算。若把每条恒等捷径都换成连接高维两端的投影,论文估算计算和模型大小会大约翻倍。因此,能不用参数的地方就直接传递 xx,既符合残差学习的动机,也符合成本约束。

5. 训练与推理设置:结果不是只靠一根捷径线得到的

ImageNet 模型从头训练,主要设置包括:

  • 输入随机缩放,短边从 [256,480][256,480] 采样,再随机裁剪 224×224224\times224
  • 随机水平翻转、减去像素均值,并使用颜色增强;
  • 每个卷积后、激活前使用 BN;
  • 使用 He 初始化与 SGD,batch size 256;
  • 初始学习率 0.1,误差平台期将学习率除以 10;
  • weight decay 为 0.0001,momentum 为 0.9;
  • 不使用 dropout。

对照实验使用标准 10-crop 测试;论文的最佳单模型结果则采用全卷积、多尺度测试。阅读结果表时必须区分这两种评估方式,也要区分单模型与集成模型。

6. 实验究竟证明了什么

6.1 ImageNet:深度收益重新出现

在 10-crop 验证结果中,ResNet-50、101、152 的 Top-5 错误率依次为 6.71%、6.05%、5.71%。在最佳单模型、多尺度验证结果中,三者进一步达到 5.25%、4.60%、4.49%。

论文最终提交的是 6 个不同深度模型的集成,其中只有两个是 152 层模型;它在 ImageNet 测试集上得到 3.57% 的 Top-5 错误率,并赢得 ILSVRC 2015 分类任务第一名。3.57% 是集成结果,不是单个 ResNet-152 的结果。

6.2 CIFAR-10:能优化到 1000 层,不代表泛化持续改善

CIFAR-10 实验用相同宽度、参数量规则比较普通网络和 ResNet。普通网络从 20 层加深时再次出现训练误差上升;ResNet 则从 20 层到 110 层持续受益,110 层模型最佳测试错误率为 6.43%,5 次运行均值为 6.61±0.166.61\pm0.16%。

作者还训练了 1202 层 ResNet。它的训练误差低于 0.1%,说明极深网络在这个设置下已没有明显优化障碍;但测试错误率是 7.93%,反而差于 110 层。作者把它归因于小数据集上的过拟合,并指出模型有 19.4M 参数、实验又没有使用 dropout 或 maxout 等更强正则化。

这是论文很重要的自我约束:残差连接解决了“训练不动”,却不自动解决“泛化更好”。

6.3 PASCAL VOC 与 COCO:更好的表征可以迁移

作者把 ImageNet 预训练骨干接入同一套 Faster R-CNN 检测系统。在 COCO 验证集的基础检测对照中,把 VGG-16 替换为 ResNet-101:

  • mAP@0.5 从 41.5 提升到 48.4;
  • COCO 标准 mAP@[0.5,0.95] 从 21.2 提升到 27.2;
  • 后一项绝对提升 6.0,换算为相对提升约 28%。

这组对照保持检测实现一致,所以论文把增益归因于更好的骨干特征。附录中更高的竞赛成绩还叠加了框迭代修正、全局上下文、多尺度测试和模型集成,不能全部算作残差学习单独带来的收益。

7. 作者还做了一个小而关键的机制检查

在 CIFAR-10 上,作者测量了每个 3×33\times3 层经过 BN、进入非线性之前的响应标准差。ResNet 各层的响应通常比普通网络更小;而且 ResNet 越深,单层响应的幅度往往越小。

这与论文的直觉一致:每一层不是重新制造完整表示,而是在身份基线附近做较小修正。不过,这只能算支持性证据,不是严格因果证明。响应更小与优化更容易相关,但论文没有证明“响应小”就是 ResNet 成功的唯一机制。

8. 这篇论文没有证明什么

为了不让后来 ResNet 的巨大影响反向夸大原论文,需要划清几条边界:

  • 它没有给出退化问题的完整理论成因;
  • 它没有证明残差连接在任意架构、任意数据上都随深度单调变好;
  • 它没有消除过拟合,1202 层 CIFAR-10 结果正好展示了这一点;
  • 它没有把 3.57% 作为单模型成绩,那是 6 个模型的集成;
  • 它没有证明所有检测竞赛增益都来自 ResNet,附录系统还使用了额外的检测技巧;
  • 它也没有说投影捷径越多越好;相反,论文强调大部分位置用无参数恒等捷径已经足够。

9. 今天应该怎样理解 ResNet 的意义

从论文直接证据出发,最稳妥的理解是:ResNet 提供了一种优化友好的深层参数化。它给每组层一个容易保留现状的默认路径,再让学习过程决定需要增加什么修正。

从工程角度进一步抽象,可以把它看成三条原则:

  1. 让“什么都不改”成为容易实现的状态。 新增模块不必先学会复制输入;
  2. 把复杂目标拆成基线加增量。 学习修正量往往比从零重建目标更容易;
  3. 用受控实验分离容量与优化。 论文最强的说服力来自普通网络与 ResNet 在近乎相同成本下的对照,而不只来自最后的排行榜名次。

后来的视觉、语言和多模态系统广泛采用残差路径,这是历史影响;但它不属于这篇 2015 年论文的实验结论。原论文真正建立的,是一个更克制也更基础的事实:当网络越来越深时,表达能力并不是唯一瓶颈,参数化方式本身会决定优化器能否找到那些本来就存在的好解。

参考来源

关于这篇论文的三个关键问题

ResNet:真正的突破不是“更深”,而是让深度变得可优化 解决了什么问题?

图 0:ResNet 的核心不是无条件堆叠更多层,而是用恒等捷径为深层网络保留一条稳定的信息通路。

ResNet:真正的突破不是“更深”,而是让深度变得可优化 的核心结论有哪些证据?

把同样的网络改成残差形式后,趋势反转:18 层 ResNet 为 27.88%,34 层 ResNet 降至 25.03%。这组实验中的残差网络使用恒等捷径和补零,不比普通网络增加参数。

阅读 ResNet:真正的突破不是“更深”,而是让深度变得可优化 时最需要注意什么局限?

这组对照保持检测实现一致,所以论文把增益归因于更好的骨干特征。附录中更高的竞赛成绩还叠加了框迭代修正、全局上下文、多尺度测试和模型集成,不能全部算作残差学习单独带来的收益。

今天还可免费读 2 篇新报告订阅 Pro 后无限阅读,并获得每月 10 篇新论文生成额度。升级 Pro