ResNet 示范答案与反例:从 residual connection 到优化困难
ResNet 示范答案与反例:从 residual connection 到优化困难
使用原则
这份文件只用于校准,不可以直接复制进 paper_notes/02_resnet.md、daily_logs/Day08_学习记录.md 到 Day14_学习记录.md 或 结业证据档案.md。合格证据必须包含你自己对论文图表的理解、你运行 notebook 得到的 shape、以及你对 toy demo 边界的说明。
1. ResNet 想解决什么问题
不合格写法
ResNet 是为了解决过拟合。
- ResNet 论文关注的核心现象不是普通意义上的 overfitting。
- 没有解释 degradation problem。
- 没有说明“更深的网络训练误差反而更高”为什么是优化问题线索。
问题:
可接受示范
ResNet 主要想解决深层网络变深之后反而更难优化的问题。论文中强调的 degradation problem 指的是:当网络层数增加到一定程度后,训练误差和测试误差都可能变差,这不只是过拟合,因为过拟合通常表现为训练误差低、测试误差高。ResNet 通过 residual learning 和 shortcut connection,让很深的网络更容易学到接近 identity mapping 的变换,从而缓解优化困难。
你必须自己补
- 我对论文 Figure 2 的理解:
- 我能说清 overfitting 和 degradation problem 的区别:
- 我仍然不确定的地方:
2. F(x)+x 到底是什么意思
不合格写法
ResNet 就是把输入加到输出上。
- 只描述了操作,没有解释为什么这样做。
- 没有区分 residual branch 和 shortcut branch。
- 没有说明
F(x)和x的 shape 必须一致才能相加。
问题:
可接受示范
在 residual block 中,x是进入这个 block 的输入,F(x)是经过若干层卷积、归一化和激活后学到的 residual function。输出写成F(x)+x,意思是模型不必直接学习一个完整映射H(x),而是学习相对于输入x的残差变化。如果某一层暂时不需要改变表示,模型可以让F(x)接近 0,这样输出接近x,比强迫多层网络直接学 identity mapping 更容易优化。
你必须自己补
- notebook 中输入
x的 shape: - residual 分支
F(x)的 shape: - 相加前我检查了什么:
3. identity shortcut 和 projection shortcut
不合格写法
shortcut 就是跳过一些层。
- 没说 identity shortcut 和 projection shortcut 的区别。
- 没说什么时候不能直接相加。
- 没说 projection shortcut 为什么常用 1x1 convolution。
问题:
可接受示范
identity shortcut 是直接把输入x加到 residual branch 的输出上,前提是两边 shape 一致。如果 block 改变了 channel 数或 spatial size,x和F(x)不能直接相加,这时需要 projection shortcut,例如用 1x1 convolution 把x投影到匹配的 shape。1x1 convolution 的作用不是提取大范围空间模式,而是调整 channel 维度和必要的 stride。
你必须自己补
- 一个 shape 不一致的例子:
- projection shortcut 修改了哪个维度:
- 我能解释 1x1 convolution 的哪一部分,哪一部分还不懂:
4. ResNet 和普通深层 CNN 的差异
不合格写法
ResNet 比普通 CNN 更高级。
- “高级”不是专业表达。
- 没有说结构差异。
- 没有说这个差异对训练有什么影响。
问题:
可接受示范
普通深层 CNN 通常把多层变换串联起来,希望每一组层直接学习目标映射。ResNet 在这些层旁边增加 shortcut path,让 block 学 residual function,并把输入直接传到后面。这个设计改变了优化路径:深层网络可以更容易保留已有表示,也更容易训练到至少不比浅层网络差的解。
你必须自己补
- 我能画出的普通 block:
- 我能画出的 residual block:
- 两者在 forward 过程中的差别:
5. notebook 复现了什么,没有复现什么
不合格写法
notebook 复现了 ResNet。
- toy residual block 不能等同于完整 ResNet 论文复现。
- 没有区分 block 机制、网络堆叠、ImageNet 实验。
- 没有说明自己检查了哪些 shape 或输出。
问题:
可接受示范
这个 notebook 复现的是 ResNet 的教学型核心机制:一个 residual block 如何接收输入x,如何计算 residual branch,如何在 shape 一致时做F(x)+x,以及 shape 不一致时如何用 projection shortcut 对齐。它没有复现完整 ResNet-34/50 架构、ImageNet 训练、论文中的对比实验、超参数设置和大规模评估。因此我只能说它帮助我理解 residual block,不能说完整复现了 ResNet 论文结果。
你必须自己补
- 我实际看到的输入 shape:
- identity shortcut 输出 shape:
- projection shortcut 输出 shape:
- 没有复现的至少 3 个部分:
6. 能放进组会的 90 秒版本
下面是结构示例,不是可复制答案:
ResNet 关注的是深层网络变深以后更难优化的问题。论文中的 degradation problem 不是普通过拟合,因为它可能同时表现为训练误差和测试误差变差。ResNet 的核心设计是 residual block:不直接让几层网络学习完整映射 H(x),而是学习残差 F(x),最后输出 F(x)+x。这样如果某些层暂时不需要改变表示,可以让 F(x) 接近 0,使 block 接近 identity mapping。我的 notebook 只复现了 residual block、identity shortcut 和 projection shortcut 的 shape 对齐,没有复现完整 ImageNet 实验。
- 你对 degradation problem 的一句话解释。
- 一个实际 notebook shape。
- 一个你准备向老师或同学追问的问题。
你需要改成自己的版本,并补入:
7. 给 AI 的检查提示词
请检查我对 ResNet 的论文笔记和 3 分钟口头稿是否像真实理解,而不是复制概念。
要求:
1. 判断我是否区分了 degradation problem 和 overfitting。
2. 检查我是否说清了 F(x)、x、F(x)+x、identity shortcut、projection shortcut。
3. 检查我是否把 toy residual block 误说成完整 ResNet 论文复现。
4. 指出最空泛的 3 句话,并追问我 3 个问题。
5. 不要直接替我写最终答案,只给修改建议和必须补充的证据。
我的内容:
【粘贴 ResNet 工作纸、paper_notes/02_resnet.md 或口头稿】