论文阅读学习 - Deep Residual Learning for Image Recognition
ResNet 网络已经用于很多应用场景,分类、目标检测、语义分割等等.
再次学习论文.
残差学习框架 ——使网络更深. ResNet 152层网络,是 VGGNet 的 8倍,却复杂度更低,在 ImageNet 上的错误率更低. 解决超深CNN 网络模型的训练(152层,1000层).
网络比较深时,遇到的问题:
训练精度的衰退说明了不是所有的系统都是一样容易优化的.
ResNet 提出利用深度残差学习框架来处理由于网络加深而造成的精度衰退(degradation)问题. 如 Figure 2.
shortcut 连接用于跳过一个或多个网络层. ResNet 利用的 shortcut 连接被简化为执行恒等映射,并将恒等映射的输出与堆积网络层的输出相加. 如 Figure 2.
恒等映射不会增加参数量和计算复杂度.
基于此构建的深度网络结构仍可以采用 SGD 进行 End-to-end 的网络训练. 采用 Caffe 等深度框架很容易实现,且不需要更改对应的 solvers 参数.
这种表示是受衰退(degradation)问题的反常现象的启发(如 Figure1 左). 正如前面讨论过的,如果新增的网络层能够构建为恒等映射形式,那么,更深层的网络模型应该比其对应浅层网络模型的训练错误率更小. 衰退问题说明了 solvers 采用多个非线性层难以逼近恒等映射.
基于变形后的表示,如果恒等映射是最优的,则 solvers 可以将多个非线性层的网络权重趋向于 0 来逼近恒等映射.
虽然实际情况中,恒等映射不可能是最优的,但这种表示形式对于衰退问题的预处理是有益的. 如果最优函数逼近于恒等映射,而不是逼近于 0 映射,则,solver 能够更容易找到关于恒等映射的扰动,相比较于学习新的函数.
通过对许多 plain/residual 网络分析,这里以 ImageNet 的两个模型为例. 如 Figure 3.
网络结构:
Plain Network:
plain baselines 基于 VGGNets的启发(如,Figure 3 左.) 卷积层大部分是 3×3fliters. 其设计遵循两个原则:
采用步长为 2 的卷积来直接进行下采样. 并在网络的最后采用全局平均池化层(global average pooling) 和一个 1000-way 的全连接层和 softmax . 如Figure3 中间的网络结构,共有 34 个权重网络层.
相比较于 Figure3 左边的 VGGNet 网络,34 层网络结构具有 更少的filters 和 更低的复杂度.
Residual Network:
shortcut 连接的的残差网络如 Figure 3 右边图.
在输入和输出维度一致时,可以直接使用恒等映射 shortcuts(图中实线).
当维度增加时(图中虚线),考虑两种情况:
以上两种方案,当 shortcuts 跨越两种尺寸的特征图时,卷积步长stride 均为 2.
1000 类.
实验结果:
Plain Networs:
首先对 18-层和34-层 plain 网络(Figure 3 图中)分析. 网络结构如 Table 1.
34层网络具有更高的 validation error.
Figure 4 给出了训练过程中 training/validation error. 可以看出衰退degradation 问题,34-层 platin 网络在整个训练过程都具有较高的 training error,并分析其不是由梯度消失引起的.
Residual Networks:
18-层和 34 -层残差网络(ResNets). baseline 网络结构与 plain 网络结构相同,除了在每对 3×33×33×3 filters 后添加一个 shortcut 连接,如 Figure 3 右图.
34 层的 ResNet 比 18 层的效果更好. 且 34 层 ResNet 具有更低的训练误差,即:衰退degradation 问题得到了很好的解决.
恒等映射与投影shortcuts:
恒等映射被证明是有助于网络训练的.
CIFAR-10 数据集,50k training 图片,10k testing 图片,10 类.
[1] - 秒懂!何凯明的深度残差网络PPT是这样的|ICML2016 tutorial
[2] - 对ResNet的理解