ResNet:深度残差学习

Deep Residual Learning for Image Recognition|何恺明、张祥雨、任少卿、孙剑|arXiv 2015

论文名片

ResNet 基本信息一览
中文题名ResNet:深度残差学习
英文题名Deep Residual Learning for Image Recognition
作者何恺明、张祥雨、任少卿、孙剑
发表arXiv 2015
成绩2015 年 ImageNet 竞赛冠军;152 层网络,top-5 错误率约 3.57%
一句话定位让「越深越好」真正成立的里程碑

Ilya 为什么选它

直觉上,网络越深越好:层数多,能拼出来的花样就多。可实践偏偏唱反调——把普通网络一味加深,过了某个深度,连训练集上的错误都不降反升。这就是退化问题。注意,它和过拟合不是一回事:过拟合是「训练背得滚瓜烂熟、一上考场就砸锅」,而退化是「连训练这本经都念不好」,卡住的是学习本身。

ResNet 的回答干净漂亮:让网络只学增量。每一层的任务不再是「直接算出最终答案」,而是「在上一个答案的基础上做一点修正」。凭这一点改动,152 层的超深网络第一次真正训得动,并拿下 2015 年 ImageNet 竞赛冠军。

成绩单同样惊人:top-5 错误率约 3.57%,进入了超过人眼水平的量级——机器在 ImageNet 这种识别任务上追平并超越了人类。深度学习常被质疑「只是炼丹」,这篇论文给出的是能讲清道理的设计,这也是它进入书单的原因。

从生活说起

想象一篇作文要经过 100 位老师接力批改。如果每位老师拿到稿子都整篇重写,改到后面文风越来越乱,很可能还不如初稿;如果规定每位老师只批改错句、其余原样保留,每一轮修改都严格不差于上一轮,那么 100 轮下来只会稳中有进。普通深网络像前一种改法,残差网络像后一种:只学修正,不推倒重来。

也可以想成带上原文对照的传话游戏。队列里每人拿到的不是「上一人转述的话」,而是「原文加上前人的批注」;每个人只许添批注,不许重述原文。这样传 100 手,原意也丢不了。shortcut 干的就是「让原文永远在手边」这件事。

生活里真正的进步大多如此:不是每次都推倒重来,而是在现有底子上持续打补丁。ResNet 的厉害之处,是把这个朴素到近乎常识的道理,翻译成了网络结构里的一条硬规则。

核心思想拆解

核心改动一句话就能说完:输出 = 输入 + 学到的修正。卷积层不再负责给出完整答案,只负责给出「这一步该改多少」。如果某一层实在学不到有用的东西,把修正学成零即可,输出至少等于输入——先保底,再进步。学习任务从「从零造答案」变成「只挑毛病」,难度一下子降了下来。

结构上,输入除了走一层层卷积的「主路」,还抄一条近路直接送到出口,两路在出口相加。这条近路叫 shortcut(捷径连接),像高速公路旁边的辅路:主路负责加工、产出修正,辅路保住原始信息,谁也不堵谁。信息走辅路原样直达,判断走主路慢慢磨。

为什么这样退化就消失了?对普通结构来说,「什么都不做」其实很难——要靠一摞层去逼出一个「照抄输入」的行为,费劲还不讨好;残差结构里,「照抄」是天生自带的默认选项,网络只在有把握时才偏离它。深度的负担就此变成深度的红利:层越多,可以叠加的修正就越多,152 层就是这样训起来的。

还有一点常被忽略:这个改动极其廉价。不需要多少额外参数,不需要特殊硬件,只是给信息多修了一条路。好想法未必复杂,这是 ResNet 留给所有工程领域的启示。

动手算一算

残差学习本质上是加减法。设当前答案是 60 分,某一层学到的修正是 +25,输出就是 60 + 25 = 85;下一层又修正 −5,得 80。网络再深,成绩始终按「上一版成绩 + 本层修正」滚动,不会因为加深一层就整体崩盘——这就是「保底」两个字的算术含义。

再把错误率换算成张数。top-5 错误率 3.57%,即每 10000 张图里约 357 张的正确答案不在模型前五个猜测中;对照书单上一篇 AlexNet 的 15.3%(约 1530 张),三年间少了约 1173 张,错误率降到不足原来的四分之一。当年被问题本身难住的场合,如今大多被答对了。

最后感受一下深度。152 层,如果每层是一位接力跑者,普通结构下队伍跑到中途就有人体力不支、全场掉速;残差结构保证每一棒至少能把「原样」稳稳交下去,于是第 152 棒听到的,和第 1 棒听到的仍是同一个声音。深度第一次不再是负担,而是可支配的资源。

它改变了什么

残差连接从「竞赛冠军的诀窍」变成了深度学习的基础组件。今天在视觉、语音、语言各个方向的主流网络里,几乎都能看到这条小近路。它证明了深度的价值,更给出了兑现深度的通用方法——这是它能穿越领域边界的原因。

它也留了一个精巧的后续问题:shortcut 这条近路上,到底应该放什么?书单里的续作给出了系统回答——见 i09 恒等映射:原样传递就是最好的选择,上千层的网络由此成为可能。两篇连读,才能看到「残差」这条线从工程奇迹走向设计原则的全过程。

如果你觉得「卷积为什么长这样」还欠一层理解,可以先回到系统教材 i07 CS231n 把地基补齐;而卷积工具箱的另一件武器——不加参数也能扩大视野——见 i10 膨胀卷积。深度与视野,正是这一板块的两条主线。

术语小词典

残差学习(Residual Learning)
让网络只学「输入到输出的修正量」,输出 = 输入 + 修正。
捷径连接(Shortcut Connection,也叫 skip connection)
把输入直接抄送到输出端的旁路,像高速公路辅路。
退化问题(Degradation Problem)
网络加深后连训练错误都升高,与过拟合无关,是学习本身的困难。
过拟合(Overfitting)
训练集表现好而新数据表现差,「背题背过头」。
恒等映射(Identity Mapping)
输出等于输入、什么都不改的映射,残差结构的默认保底项。
top-5 错误率
模型前五个猜测里不含正确答案的图片占比。