视觉基础模型

ResNet 解读:用残差学习训练超深图像识别网络

ResNet 用跳跃连接让每层只学「残差」而非整个映射,使 152 层网络可训练;集成模型在 ImageNet 上 top-5 错误率 3.57%,夺得 ILSVRC 2015 冠军。

ResNet 解读:用残差学习训练超深图像识别网络

快速答案

ResNet 让网络可以训练到前所未有的深度:它不让每个模块去学一个完整的新映射,而是只学「残差」——要加到输入上的那点改动——并用一条恒等「跳跃连接」把输入直接绕过模块传到输出。靠这一招,微软研究院的何恺明等人训练出了深达 152 层的网络——比 VGG 深 8 倍,复杂度反而更低——集成模型在 ImageNet 上 top-5 错误率达 3.57%,拿下 ILSVRC 2015 冠军。

退化问题

驱动这篇论文的难题不是过拟合。作者发现,单纯堆更多的普通层会让网络变得「更差」——一个 56 层的普通网络,训练误差竟然高于 20 层的。这违反直觉:更深的模型理论上可以照抄浅层那套、再补上几层恒等映射,所以绝不该更差。优化器找不到这个解,正是论文所说的退化问题:超深的普通网络难以优化,而不只是难以泛化。

跳跃连接是怎么工作的

ResNet 不直接让一摞层去学目标映射 H(x),而是让它们学残差 F(x) = H(x) - x,再把输出还原成 F(x) + x。其中的 + x 就是跳跃连接:输入原封不动地往前传,加到模块的输出上。直觉在于:如果某个模块的理想函数接近恒等,那么把权重压向零、让模块输出基本等于输入,要比用一摞非线性层从头学出一个恒等映射容易得多。关键是,这条恒等捷径不增加任何参数、几乎不增加计算量,所以和普通网络的对比是公平的。

关键结果

  • ImageNet(ILSVRC 2015): 残差网络集成模型 top-5 错误率达 3.57%,夺得分类任务第一名。
  • 深度真的有用: 152 层 ResNet 胜过更浅的网络,扭转了退化趋势——而且尽管深了 8 倍,其复杂度(FLOPs)仍低于 VGG-16/19。
  • CIFAR-10 上的极限: 作者训练了 100 层、乃至 1000 层的网络,专门研究在前人从未触及的深度上优化行为如何。
  • 能迁移: 仅凭更深的学到的表征,ResNet 在 COCO 目标检测上带来 28% 的相对提升;同一骨干网在 ILSVRC 与 COCO 2015 的检测、定位、分割任务上也都拿了第一。

为什么现在重要

这是整个机器学习领域被引用最多的论文之一,原因是结构性的,不只是榜单上的一个数字。残差/跳跃连接最终被证明是一种通用的训练原语,而非只对图像有效的小技巧。同一个想法——把输入加回子层的输出——正是每个 Transformer 核心里的残差流,也包括本站介绍过的那些语言模型。人们说现代深度学习「在大深度下也能跑通」,很大一部分功劳就来自这篇论文:它把深度从优化障碍里移除,让「往深里堆」变成一个安全的默认选项。

局限与存疑

ResNet 解决的是「能不能训」,不是「为什么行」。论文自己的解释——残差函数更容易优化——是经验性的,并没有证明恒等捷径为何能治好退化;后续工作(如对损失曲面的分析、把残差看作「迭代精修」的视角)一直在重访这个问题。标题里的 3.57% 是集成结果,单个模型会稍差一些。极端的 1000 层 CIFAR 网络泛化反而略逊于 100 层,暗示配方并非「越深越好」。而且这版设计早于后来关于批归一化位置的争论,也早于同一批作者随后发布的预激活变体——后者能更稳地训练超深网络。所以这里的 v1 架构是突破,而非定论。

常见问题

ResNet 解决了什么问题?

退化问题:堆更多普通层反而抬高了「训练」误差,说明超深网络太难优化。ResNet 的跳跃连接让这些深度变得可训练,于是 152 层网络不再更差,而是胜过浅层网络。

ResNet 的跳跃连接是怎么工作的?

一个模块学残差 F(x),网络输出 F(x) + x,通过恒等捷径把输入原样往前传。如果最优映射就是恒等,模块只需把权重压向零即可,这比用非线性层从头学出恒等容易得多。

ResNet 在 ImageNet 上有多准?

残差网络集成模型在 ImageNet 测试集上 top-5 错误率为 3.57%,夺得 ILSVRC 2015 分类任务第一名。同样的表征还在 COCO 检测上带来 28% 的相对提升。

ResNet 这篇论文为什么这么重要?

跳跃连接成了通用的基础组件。它就是每个 Transformer 内部的残差流,所以 ResNet 的贡献远超视觉领域——它正因如此成为机器学习中被引用最多的论文之一。

一句话:别让一层学会所有东西——让它只学那点小修正,把输入直接传过去。阅读 arXiv 原文