论文阅读学习 - Deep Residual Learning for Image Recognition
ResNet 网络已经用于很多应用场景,分类、目标检测、语义分割等等.
再次学习论文.
残差学习框架 ——使网络更深.
ResNet 152层网络,是 VGGNet 的 8倍,却复杂度更低,在 ImageNet 上的错误率更低.
解决超深CNN 网络模型的训练(152层,1000层).
1. 介绍
网络比较深时,遇到的问题:
网络深度的增加,遇到的一个问题是:学习更好的网络是否与堆积更多网络层一样简单(Is learning better networks as easy as stacking more layers?).
随着网络的加深,训练时会遇到梯度发散和消失(exploding/vanishing) 的问题. 其已有有效的解决方法是,初始化归一化(normalized initialization) 和 网络中间归一化网络层(intermediate normalization layers,BN 层). 确保几十层的网络 可以SGD 训练到收敛.
网络深度加深,并训练收敛后,会遇到精度衰退(degradation) 的问题: 随着网络的加深,精度开始饱和(saturated),然后快速的衰退. 而衰退的原因并不是过拟合造成的.
更深的网络深度得到训练误差也较高.
如 Figure 1.
训练精度的衰退说明了不是所有的系统都是一样容易优化的.
ResNet 提出利用深度残差学习框架来处理由于网络加深而造成的精度衰退(degradation)问题. 如 Figure 2.
记希望的网络层映射为 Hx H x ,采用堆积非线性层(stacked nonlineat layers)来拟合另一个映射 F(x):=H(x)−x F ( x ) := H ( x ) − x . 则,原来的网络映射即是 F(x)+x F ( x ) + x . 假设残差映射 F(x)+x F ( x ) + x 的优化比原映射 Hx H x 的优化更容易. 极端情况,如果某恒等映射 x x 是最优的,则将残差设为 0 比采用堆积非线性层来拟合横等映射更容易.
残差映射 F(x)+x F ( x ) + x 可以采用shortcut 连接(shortcut connections) 的前馈神经网络实现. 如 Figure 2.
shortcut 连接用于跳过一个或多个网络层. ResNet 利用的 shortcut 连接被简化为执行恒等映射,并将恒等映射的输出与堆积网络层的输出相加. 如 Figure 2.
恒等映射不会增加参数量和计算复杂度.
基于此构建的深度网络结构仍可以采用 SGD 进行 End-to-end 的网络训练. 采用 Caffe 等深度框架很容易实现,且不需要更改对应的 solvers 参数.