论文摘要

image.png

  • 摘要说了什么吗?

提出残渣结构, 解决了网络退化问题. 并且在当年的各大比赛中, 多次第一.

解决什么问题? 答: 网络退化问题

image.png

  • 上述解决额问题是什么?

答: 网络退化问题.
解释: 网络退化问题: 更深的网络反而效果更差, 产生原因是网络更难优化, 而非过拟合. 注意: resnet在上千层之后也会出现深度越深效果越差, 但这是过拟合问题, 而非网络退化

什么解决方案呢? 答: 残渣结构

image.png

  • 解释上图

该结构被称为残渣结构, 对应的公式是: image.png.
注: Resnet - 图5 被称为主分支, Resnet - 图6被称为identity或shortcut.
注: 残差结构结束于Resnet - 图7, 请留意该残渣融合点的位置在最后的relu之前.

  • 为什么残差结构对网络退化问题有效?

答: 残差结构能学习恒等映射, 能解决网络退化问题degradation problem, 使让深的网络不至于比浅层网络差. 当F(x)无用时, 可将其中网络层参数学习为0, 此时F(x)==0, 那么由H(x) = F(x) + x可知, 此时也有H(x) = x.

什么模型结构? 答: 根据层数具体说

image.png

  • 划分为6个阶段

conv+pool
4个残渣块堆叠
pool + FC

  • 沿用vgg的模型风格—-尺寸减半, 深度加深.

解释: 对于每个残渣块, 在首个卷积的位置进行2倍下采样, 下采样方式为跨步卷积.

  • 第三个残渣块的结构改动最大(论文并没有给出理论依据)

解释: 从18-layer到152-layer的过程中, 第三个残渣块的内部残渣结构数量变化最大.

论文实验结果

image.png
解释: 残渣块网络(中图)比普通网络(左图)能解决网络退化问题, 再深度越深时提供更好的泛化能力.
注: resnet在超过1000层后的泛化能力会下降(右图), 但这是过拟合问题.
注: 作者另一个实验证明了残差融合点的参数值相比没有残差结构的网络的参数值要趋近0一些, 该实验证明了残渣结构学习恒等映射的能力.

实验技巧

  • 预热训练

解释: 更深的网络中, 先用0.01的学习率训练一个epoch作为预热阶段, 在预热之后, 学习率调回0.1继续训练.

  • 1x1卷积

解释: 更深的resnet使用了1x1的瓶颈层, 能降低模型参数计算量. 在pytorch中, 使用expansion(default=4)来控制1x1瓶颈层的降低倍数.