← 总目录 / 板块一 · 模型的范式变迁
板块一 · 模型的范式变迁

第5篇 · ResNet

网络不该学映射本身,而该学"相对恒等的扰动"——一条免费的捷径,让 152 层比 19 层更好训也更便宜。
Deep Residual Learning for Image Recognition · Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun(Microsoft Research)· 2015 · arXiv:1512.03385(CVPR 2016)

本材料说明:【论文声称】=作者观点或叙事框架;【实验支持】=论文中有数据支撑;【解读者推断】=精读者推理,论文未明说。所有数字均复述自论文原文(arXiv v1),未做外部验证。

一、全局大图

1.1 摘要拆解对照表

摘要短语对应论文章节对应精读章节
"更深更难训练……残差学习框架使极深网络易于优化"§1、§3.1第二章 §2.2–2.5
"以层输入为参照学习残差函数"§3.1–3.2第二章 §2.4 公式手术
"152 层,比 VGG 深 8 倍但复杂度更低;集成 3.57% 拿下 ILSVRC 2015"§3.3、§4.1第三、四章
"CIFAR-10 上分析 100 层与 1000 层"§4.2第五章
"COCO 检测 28% 相对改进;横扫 ILSVRC & COCO 五项第一"§4.3 + 附录 A/B/C第六章(略读)

1.2 主要贡献与证据强度预评

#声称的贡献证据强度预评
1残差重构解决退化问题(degradation)强实验支撑 ImageNet+CIFAR 双验证、plain/ResNet 同参数对照
2identity shortcut 足够,projection 非必需强实验支撑 A/B/C 三选项消融 Table 3
3bottleneck 设计使 152 层可行且复杂度低于 VGG工程陈述+主结果 无 bottleneck vs 非 bottleneck 的同精度消融
4残差函数响应普遍接近零(支持动机假设)仅响应统计 Fig 7 的 std 分析,非因果证据
5退化源于"深层 plain 网收敛率指数级低"的猜想只是猜想 论文脚注3自认原因留待未来研究

1.3 推荐阅读路线

必读主线:§1 退化问题 → §3.1–3.2 残差公式与 identity shortcut → §4.1 Table 2/3 对照实验。这条线回答"问题是什么、解法为什么成立、证据是否干净"。

可跳读支线:附录 A/B/C 的检测/定位竞赛细节。跳过代价:第六章批判性阅读中"表示迁移"部分会失去量化支撑;主线上不受影响。

依赖提示:枢纽概念是退化 ≠ 过拟合——引言的论证、Table 2 的解读、CIFAR-1202 层的讨论全挂在它上面。

二、逐章精读:残差学习框架(对应论文 §1–§3)

2.1 来源标注

来源:论文 §1 Introduction、§2 Related Work、§3 Deep Residual Learning(§3.1–§3.4)。"解读者补充"处已标注。

2.2 可验证的学习目标

2.3 失效模式先行:退化问题

梯度消失/爆炸曾让深网根本无法收敛,但归一化初始化与 BN 已基本解决——几十层的网络都能开始收敛了【论文声称,§1】。新的疼法是退化:深度继续增加,准确率先饱和再快速下滑,而且训练误差也更高——所以不是过拟合。Fig 1 给出典型例子:CIFAR-10 上 56 层 plain 网的训练误差和测试误差都高于 20 层 plain 网(具体数值只在图中曲线呈现,原文未给表格数字——此处未能核验精确数值)。ImageNet 上同样如此:Table 2 中 34 层 plain 网 top-1 错误 28.54% 高于 18 层 plain 网的 27.94%。

矛盾在于存在性论证【论文声称】:把深网的额外层设为恒等映射、其余层拷贝浅网,就构造出一个"深网不差于浅网"的解。构造解的存在 ⇒ 更深的模型理应训练误差更低;实际却更高 ⇒ 是求解器找不到好解,不是解不存在。这就是本文要治的病。

2.4 直觉与类比

类比:与其要求每个新员工从零发明整套流程(拟合 H(x)),不如让他"沿用现有流程+提交一份修改建议"(拟合 F(x)=H(x)−x)。最省力的建议是"不改"(F=0),系统自动退化为恒等映射——所以深度的边际成本被压到最低。

类比在哪里失效:"建议"是显式文档,而 F(x)+x 中的 x 是逐样本前向传播的激活值——shortcut 不是先验知识注入,而是运行时的信息旁路;它同时改变了梯度的回传路径(每个 shortcut 提供了一条无衰减的梯度通路),这一点员工类比完全覆盖不了。【解读者补充】

2.5 公式手术

公式 (1):基础块

y = F(x, {Wi}) + x,随后 σ(y)
符号它是什么直觉
x, y所考虑若干层的输入/输出向量卷积场景下为通道维相同的特征图张量
F(x,{Wi})要学的残差映射;两层例:F = W₂σ(W₁x)"对输入的修正量",理想时可为零
+x恒等 shortcut,逐元素相加零参数、零计算量(除加法)
σ(·)ReLU,加在相加之后(σ(y),Fig 2)shortcut 通路上不做任何变换

公式 (2):维度不匹配时

y = F(x, {Wi}) + Wsx (Ws 仅用于匹配维度,如 1×1 卷积)

形状推演【解读者补充】:以 conv3_x 为例,输入特征图 56×56×64,块内两路都必须产出 56×56×128 才能逐元素相加;stride 2 的下采样由 conv3_1 完成,此时 shortcut 走 W_s(option B)或零填充(option A)。

2.6 手算验证:bottleneck 为什么省

任务:比较 256 通道上"两个 3×3 卷积"与 bottleneck"1×1→3×3→1×1(256→64→64→256)"的单像素乘加次数(费米估算)。

普通块:2 × (3×3×256×256) = 2×589,824 ≈ 1.18M。
bottleneck:(1×1×256×64) + (3×3×64×64) + (1×1×64×256) = 16,384 + 36,864 + 16,384 ≈ 69.6K。
比值 ≈ 17:bottleneck 把 3×3 卷积的输入输出都压到 64 通道,计算量约为原设计的 1/17,而两者被设计成"相似的时间复杂度"的对照组(Fig 5 左右)。

由此理解架构表:ResNet-152 有 11.3 GFLOPs,仍低于 VGG-16/19 的 15.3/19.6 GFLOPs——深度翻 8 倍、算力反而更省,靠的就是 bottleneck+identity shortcut(若 shortcut 用 projection 且连在 256 维高维端,时间复杂度与模型大小会翻倍——论文 §4.1 明说)。

2.7 数字对账

2.8 工程账单

2.9 常见误读

误读一:"ResNet 解决的是过拟合。" 恰恰相反:退化的标志是训练误差升高(56 层 plain 训练误差高于 20 层;1202 层 ResNet 训练误差<0.1% 但测试反而差——那才是过拟合的案例)。论文用 BN 后前后向信号均健康来排除梯度消失(§4.1)。

误读二:"ResNet = Highway Networks 的特例。" 论文 §2 明确切割:highway 的门控带参数、数据相关,门"关闭"时层退化为非残差函数;identity shortcut 永远敞开、无参数,信息永远直通。且 highway 未展示百层以上的精度增益。

误读三:"shortcut 让网络'更深'所以更强。" 对照实验里 plain 与 ResNet 参数、深度、宽度、计算量完全相同(Table 2 注),唯一差别是有无捷径——增益只能归因于优化景观的改变,而非容量增加。

2.10 主张 vs 事实 · 一句话 · 自检

【实验支持】残差重构使 34 层反超 18 层(25.03% vs 27.88%);【论文声称】"残差函数一般接近零、identity 提供合理预条件化"——有 Fig 7 响应统计佐证但属相关性证据;【解读者推断】"深层 plain 网收敛率指数级低"这一解释论文自己也只标为 conjecture(脚注3),并报告了 3× 迭代仍未消除退化。

一句话记住本节:把"学 H(x)"改写成"学 H(x)−x 再加上 x",最优解靠近恒等时权重只需趋向零——深度不再惩罚你,因为"什么都不做"变成了最容易表达的函数。

闭卷自检:我能说出排除过拟合和梯度消失各用的是什么证据吗?A/B/C 三方案哪个最好、论文最终选了哪个?为什么?bottleneck 省算力的机制我能手算吗?

2.11 分级自测题

  1. L1 直接套用ResNet-50 的 conv4_x 有多少个 bottleneck block?该阶段输出通道数是多少?
    答案6 个 block(Table 1:[1×1,256; 3×3,256; 1×1,1024]×6);3×3 主干通道 256,块输出 1024。
  2. L2 变情境迁移若把某个 bottleneck 的中间 3×3 通道从 64 加倍到 128(其余不变),单块乘加量约变为多少倍?这与"加深不加宽"的设计哲学有何张力?
    答案3×3 项 36.9K→147.5K,总 ≈69.6K→180.2K,约 2.6 倍。张力:宽度增长按平方烧算力,深度增长(bottleneck 下)近似线性——这解释了为何论文选择堆深度而非堆宽度。
  3. L3 构造反例"既然 C 方案(全 projection)错误率最低(24.19%),说明 projection shortcut 更好。"指出此推理的两处漏洞。
    参考答案+评分要点要点①:C 比 B 仅好 0.33%(24.19 vs 24.52),论文归因于多出的约 13 个投影带来的额外参数,属容量效应而非 shortcut 机制更优;要点②:C 的内存/时间复杂度更高,在 bottleneck 架构上会让复杂度与模型大小翻倍——综合性价比反而差;要点③:A/B/C 都显著优于 plain,说明解决退化的关键是"有无捷径"而非"何种捷径"。三点任答两点即可。
  4. L4 综合仅从"34 层 plain 训练误差高于 18 层 plain"这一个观察出发,预测作者接下来必须做的三类实验设计,并说明各自排除了什么替代解释。
    参考答案①同参同深的 ResNet 对照(Table 2)——排除"参数更多导致更差";②BN 下梯度范数检查(§4.1)——排除梯度消失/爆炸;③更长训练(3× 迭代)仍退化(脚注3)——排除"只是还没收敛"。三组分别封死三条平凡解释之路,这是本文实验设计的精华。

三、逐章精读:ImageNet 实验(对应论文 §3.3–§4.1)

3.1 来源标注与设置

来源:论文 §3.3 Network Architectures、§3.4 Implementation、§4.1。ImageNet 2012 分类:1000 类,128 万训练图,50k 验证图评测,100k 测试图由测试服务器报告。实施细节:短边随机采样 [256,480] 做尺度增强,224×224 随机裁剪+水平翻转,减均值+颜色增强;每个卷积后、激活前放 BN;He 初始化;SGD batch 256,lr 从 0.1 起、误差平台期 ÷10,至多 60 万迭代;weight decay 0.0001,momentum 0.9,无 dropout。测试:对比实验用 10-crop,最佳结果用全卷积形式+多尺度 {224,256,384,480,640} 平均。

3.2 核心对照:Table 2(10-crop top-1,%)

深度plainResNet(option A,零参数捷径)
18 层27.9427.88
34 层28.54(更深反而更差)25.03(更深显著更好)

三个观察【实验支持】:①34 层 ResNet 比 18 层 ResNet 好 2.85%——退化反转;②34 层 ResNet 比 34 层 plain 好 3.5%(28.54→25.03),且来自训练误差的成功下降;③18 层时 plain 与 ResNet 相当,ResNet 只是收敛更快——"不过分深"的网络本来就好训,捷径的价值随深度放大。

3.3 规模化结果(Tables 3/4/5)

模型top-1(10-crop val)top-5(10-crop val)top-5(single-model full-crop val)
VGG-1628.079.33
PReLU-net24.277.38
plain-3428.5410.02
ResNet-34 A/B/C25.03 / 24.52 / 24.197.76 / 7.46 / 7.4021.84(C:21.53) / 5.71~5.60*
ResNet-5022.856.7120.74 / 5.25
ResNet-10121.756.0519.87 / 4.60
ResNet-15221.435.7119.38 / 4.49

*Table 4 中 34 层行对应 B/C 两选项。集成:6 个不同深度模型(投稿时含两个 152 层),测试集 top-5 3.57%,ILSVRC 2015 冠军;此前最佳集成 BN-Inception 为 4.82%。单模型 ResNet-152 的 4.49% 已优于此前所有集成结果。

3.4 数字对账

对账成功:单模型 4.49% < 此前最佳集成 4.82%(Table 5)——"单个新模型胜过所有旧集成"的说法成立。一处需注意的口径差异:Table 3 是 10-crop 验证集数字,Table 5 是测试服务器数字,VGG 在两表中分别出现 9.33%(自测)与 7.32%(其论文报告值)——同一模型的"错误率"因测试协议不同相差 2 个点,引用任何对比前必须先核对坐标系。【解读者提醒】

3.5 常见误读

误读:"3.57% 是 ResNet-152 单模型的成绩。" 是 6 模型集成的成绩;单模型 152 层是 4.49%(验证集)/相应测试集成绩未单独列出。摘要写"An ensemble of these residual nets achieves 3.57%",转述时常被丢掉 ensemble 一词。

误读:"ResNet-50 比 34 层好,是因为多了 16 层。" FLOPs 只从 3.6G 到 3.8G(Table 1)——50 层版本靠 bottleneck 重构,几乎没花更多算力;增益来自结构效率而非纯粹深度。

3.6 一句话蒸馏 · 自检 · 分级自测题

一句话记住本节:同样的参数预算下,加不加那条免费捷径,决定了"加深是变好还是变坏"——34 层从 28.54 反转为 25.03,一路加深到 152 层 4.49%、集成 3.57% 登顶 ILSVRC 2015。

闭卷自检:我能报出 plain-34 和 ResNet-34(A) 的 top-1 吗?单模型最佳和集成最佳分别是多少、在什么测试协议下?

  1. L1ResNet-152 的单模型 top-5 验证错误率(full-crop)是多少?FLOPs 多少?
    答案4.49%;11.3 GFLOPs(Table 4、Table 1)。
  2. L2VGG-16 在 Table 3 里 top-5 是 9.33%,在 Table 5 里却是 7.32%,如何调和这两个数字?
    答案前者是作者用 10-crop 协议在自己环境里测的验证集数字(标注 "based on our test"),后者是其原论文在测试集上的报告值。测试协议(crop 数)、数据划分(val/test)不同,数字不可直接混用。
  3. L3有人说"ResNet-18 与 plain-18 几乎打平(27.88 vs 27.94),说明 shortcut 没用"。写一段反驳。
    参考答案+评分要点要点①:对照系错了——shortcut 的价值要用"随深度的趋势"衡量,18 层时 SGD 尚能驯服 plain 网;要点②:同一张表中 34 层差距拉大到 3.5%,且 Fig 4 显示 18 层 ResNet 收敛更快;要点③:结论应表述为"浅网中捷径收益递减",而非"没用"。三点各一分。
  4. L4综合 §3.4 与 §4.1:无 dropout+weight decay 0.0001+纯"深而窄"的正则哲学,与 CIFAR 上 1202 层的过拟合之间是什么关系?这套训练配方在什么前提下安全?
    参考答案论文自己承认:不用 maxout/dropout,正则完全靠"深而细"的结构设计实现;在小数据集上 19.4M 参数的 1202 层网超出了这种隐式正则的承载力(训练误差<0.1%、测试 7.93% 差于 110 层的 6.43%)。安全前提:数据规模足以约束容量(ImageNet 128 万图),或外部施加更强正则。这也预示了后来"大数据+大模型+弱手工正则"路线的边界。

四、逐章精读:CIFAR-10 与机理分析(对应论文 §4.2)

4.1 来源标注与设计逻辑

来源:论文 §4.2。设计逻辑:不追 SOTA,专攻"极深网络行为"的可控研究。结构:6n+2 层,特征图 {32,16,8} 上各 2n 个 3×3 卷积,通道 {16,32,64},全程 option A(恒等捷径),保证 ResNet 与 plain 参数完全一致。训练:batch 128(双 GPU),lr 0.1 在 32k/48k 迭代 ÷10,64k 步终止(45k/5k train/val 划分决定),4 像素补边随机裁剪+翻转,测试只用单视图 32×32 原图。110 层需 lr 0.01 预热至训练误差 <80%(约 400 迭代)再回到 0.1。

4.2 结果表(Table 6)与数字对账

方法层数参数测试错误率 (%)
FitNet192.5M8.39
Highway192.3M7.54 (7.72±0.16)
ResNet200.27M8.75
ResNet320.46M7.51
ResNet440.66M7.17
ResNet560.85M6.97
ResNet1101.7M6.43 (6.61±0.16)
ResNet120219.4M7.93

对账:20/32/44/56/110 层数列随 n={3,5,7,9,18} 按 6n+2 生成 ✓;110 层参数 1.7M 远小于 FitNet/Highway 却更准 ✓。对不上的现象(论文如实报告):1202 层训练误差 <0.1% 但测试 7.93% 劣于 110 层——作者归因为小数据集上的过拟合(19.4M 参数对 CIFAR 太大)。注意这不是退化的复活:训练误差没有升高,优化依然成功,坏在泛化。【解读者强调,此处是最易混淆点】

4.3 层响应分析与它的局限

Fig 7 统计每个 3×3 层输出(BN 后、非线性前)的标准差:ResNet 的响应普遍小于 plain 网,且越深越小(20→56→110 递减)。作者以此支持"残差函数普遍接近零、恒等是好的预条件"这一动机假设【论文声称】。局限【解读者观点】:这是训练后观测到的相关性,不能证明"小响应导致了易优化"——因果方向完全可能是易优化才允许小响应。论文措辞是 "support our basic motivation",定位诚实。

4.4 一句话蒸馏 · 分级自测题

一句话记住本节:CIFAR 上 20→110 层单调变好(8.75%→6.43%)证明残差修复的是优化;1202 层训练误差趋零而测试变差证明剩下的敌人已是过拟合——两类失败从此有了清晰的分界线。

  1. L1n=9 时网络多少层?三个阶段的滤波器数分别是多少?
    答案6×9+2=56 层;{16,32,64}。
  2. L2110 层为什么要预热(warmup)?如果直接 lr=0.1 会发生什么?
    答案论文:初始 lr 0.1 略大到无法开始收敛,用 0.01 预热到训练误差 <80%(约 400 迭代)再恢复。直接 0.1 时"几个 epoch 后才开始收敛(误差<90%)但仍达到相近精度"(脚注5)——即预热主要改善早期稳定性而非最终精度。
  3. L3判断并论证:"1202 层 ResNet 测试错误率回升,说明退化问题在千层尺度上重新出现。"
    参考答案+评分要点判断:错误。要点①:退化的判据是训练误差随深度升高,而 1202 层训练误差<0.1%,优化完全成功;要点②:测试回升伴随参数量暴增(1.7M→19.4M),符合过拟合特征;要点③:论文自己的归因也是 overfitting 并建议加强正则。答出"训练 vs 测试误差分离"这一核心即可得分。
  4. L4综合 ImageNet 与 CIFAR 两组实验:为什么说"option A(零填充捷径)"在两组实验中的角色不同?这对架构设计的普适性说明了什么?
    参考答案ImageNet 上 option A 用于与 plain 严格对齐的首轮对照(Table 2),规模化后换 option B;CIFAR 上全程 option A 以保持参数严格相等。角色差异:A 是"控制变量工具",B 是"实用配置"。启示:论文刻意分离了"科学问题(捷径是否有用)"与"工程问题(哪种捷径最划算)"两个层次——这正是 A/B/C 消融存在的意义。

五、批判性阅读:如何不被数字带节奏

5.1 Benchmark 与比较公平性

5.2 第二坐标轴:成本

论文反复强调"更深但更便宜"(152 层 11.3 GFLOPs < VGG 19.6 GFLOPs)【实验支持,FLOPs 口径为 multiply-adds】。但未报告的坐标轴:训练时间与显存——152 层的激活显存远高于 VGG,论文未给出训练时长;检测微调时甚至要冻结 BN 层来省显存(附录 A),这一工程妥协对精度的影响未量化。

5.3 论文没有告诉你什么

六、综合考核(毕业关)

6.1 重建因果链

  1. L4只给三个数字:"28.54"、"3.57"、"28%",重建论文的论证主线,并说明每个数字逼出了哪个组成部分。
    参考答案+评分要点①"28.54"(plain-34 比 plain-18 差)逼出问题定义——退化不是过拟合也不是梯度消失,必须造一个"恒等易表达"的重构 → §3 公式;②"3.57"(集成测试集 top-5)逼出规模化组件——bottleneck+option B 使 152 层可行 → §3.3/Table 1;③"28%"(COCO 相对提升)逼出泛化性论证——增益来自表示本身而非分类头技巧 → 附录 A 的同实现检测对照。(每个数字对应一组实验设计,答出对应关系各一分。)

6.2 数字总对账

  1. L2核验:①152=19×8;②3.6/19.6≈18%;③6.0/21.2≈28%;④25.03 比 27.94 好"2.85%"(论文写 2.8%);⑤单模型 4.49 优于旧最佳集成 4.82。
    答案①✓;②18.4%≈18% ✓;③28.3%≈28% ✓;④0.09? 注意:25.03 vs 27.88(ResNet-18)之差为 2.85 ✓ 论文口径是与 18 层 ResNet 比;⑤✓。五组全部自洽;唯一不可核算项是 Fig 1/Fig 4 曲线的具体误差值(原文未列表格数字)。

6.3 设计决策答辩

  1. L3答辩「恒等捷径」:为什么坚持无参数捷径?换成带门控的 highway 式设计会怎样?
    参考答案为什么:①公平对照(与 plain 同参数);②bottleneck 上 projection 连高维端会使复杂度/模型翻倍;③"永不关闭"保证信息始终直通。换 highway:门控引入参数与数据依赖,门关闭时退化为非残差,且当时未见百层以上增益(§2 论据)。论据充分性:A/B/C 消融支撑到位;但门控在极深下的表现本文未实测,属论证缺口。
  2. L3答辩「相加后再 ReLU」:为什么 σ 放在相加之后而不是每层末尾?
    参考答案若 ReLU 放在相加前(即对 F 单独非线性、x 侧裸加),x 的通路虽在但 F 侧多一次截断;放在相加后则整个块输出统一过非线性,且保证 shortcut 通路上没有任何变换。论文仅在 Fig 2 图示约定并未深入论证——这是设计惯例多于证明的部分【解读者观点】,后来 PreAct 系工作重排了这些顺序并报告差异。
  3. L3答辩「bottleneck」:为什么敢把 3×3 卷积压到 64 通道?降维会不会丢信息?
    参考答案论据:①与"两个 3×3"块设计成相似时间复杂度作对照(Fig 5);②50/101/152 实测精度持续上升,无退化迹象(Table 3)。风险:论文承认 bottleneck 主要出于训练时间的现实考量(脚注4),非瓶颈版在 CIFAR 上也能受益于深度——即"64 维足够"是被结果追认的,不是被预先证明的。

6.4 证据审计(回看 1.2 预评)

贡献预评读后修正理由
残差重构解决退化强实验支撑维持 ★★★双数据集、同参对照、排除三种替代解释,证据链完整
identity 足够强实验支撑维持 ★★★A/B/C 消融直接回答
bottleneck 可行消融+主结果维持 ★★无与非瓶颈版的同精度对照,属工程有效性证明
残差响应接近零仅统计维持 ★★相关性证据,论文措辞克制
退化根因猜想只是主张维持 ★论文自认 conjecture,3× 迭代实验反而削弱了"简单欠训"解释