Abstract:
更深层的网络训练十分困难,我们提出了残差网络来实现深层网络。我们重新定制了层间的学习是参考 layer input 的残差函数,而不是一个没有参考的函数。
Introduction:
是否学习更好的网络就是简单的堆积更多的层?一个障碍便是梯度消失或者爆炸,从训练的一开始便会损害收敛,虽然这个问题可以被 normalization initialization 和 intermediate normalization layers解决,可以使网络达到十多层
当深层网络可以收敛后,又出现了退化问题,当网络层数加深,准确率开始变得饱和,然后会快速衰退,这种衰退并不是因为过拟合引起的,加更多的层会引起训练误差变大,如下图
这种训练准确率的退化表明并不是所用的 system 都可以很好的优化。如何从 shallower architecture 到 deeper architecture. 现有的方法是,added layers 是恒等映射(identity mapping),而其它层是 copy from learned shallower model.这种方法本应获得不低于 shallower counterpart 的准确率,但是并没有。
本文通过提出一个 deep residual learning framework 来解决 degradation problem.我们让这些堆叠层拟合一个残差映射,而不是直接拟合底层映射。将期望得到的底层映射设为 H(x),让堆叠的非线性层拟合一个映射,F(x)=H(x)- x,这样,原始的映射 H(x)就是 F(x)+ x . 我们假设优化一个残差映射比无引用的映射更容易。极端情况下,当一个恒等网络是最优的,那么通过残差映射将它的残差变为零比非线性层拟合一个恒等映射更简单。
F(x)+ x 可以通过 feedword 来实现,即如上图的 shortcut connections. 在我们的例子中,shortcut connection 只是简单的执行恒等映射,然后把他们的输入加到堆叠的层。恒等 shortcut connection 没有增加额外的参数,也没有额外的计算。
接下来,我们会在 ImageNet 上进行试验,我们展示了
在 Cifar-10 上相同的结果证明我们的方法不是对于某一个数据集的特定方法。
Related Work:
Deep Residual Learning:
Residual Learning: 假设多堆叠层可以拟合一个底层函数 H(x),假设多层非线性层可以逼近复杂的函数,那他们也可以逼近残差函数 H(x)- x. 所以我们让这些层来拟合残差函数 F(x)=H(x)- x,原始的函数就变为了 F(x)+ x.这两个函数都可以逼近所需的函数(H(x)),就是难易程度不一样。
退化问题证明如果通过多层非线性来估计恒等映射会比较困难,如果通过残差学习,使得多层非线性层的权重趋于零来学习恒等映射会简单一些。
实际情况中,恒等映射不太可能达到最优,但是重新表达这个问题会有帮助。如果最优函数比较接近于恒等映射而不是零映射,那么求解器学习一个恒等映射的扰动比学习恒等映射简单。我们的实验证明,训练好的残差函数 response 都比较小,即恒等映射是比较合理的处理。
Identity Mapping by Shortcuts:我们在每一个堆叠层应用残差学习。一个残差的构建模块如上图2所示。我们定义一个 building block 函数为:, x 和 y 分别为输入和输出,函数 F 是需要学习的残差函数。上图例2 中,有两层那么
,其中激活函数是 ReLU.bais被省略了。F + x 由 shortcut connection和 element-wise addition来实现。shortcut 连接并没有增加参数或者计算量。
上面的式子中 F 和 x 必须有相同的维度。残差函数 F 很灵活,可以有不同的形式,本文会有两层或者三层的结构,但是如果只有一层就变成了线性层并不会有提升。
Network Architectures:我们测试了很多的 plain/residual nets.
Implementation:
image resize shorter side ,224*224 crop,per-pixel mean substracted,采用标准的颜色增强,在每一个卷积层后使用 BN,batch-size 为256,学习率为0.1,每次错误率平稳后,将学习率除以10,weight decay 为 0.0001,momentum 为 0.9.,不使用 drop out.
测试的时候,使用标准的 10-crop.使用全卷积的形式并且平均多尺度的分数(将图片的短边 resize 到{224,256,384,480,640})
Experiments:
ImageNet Classification:在 ImageNet 2012 分类数据集上评估方法
Analysis of Layer Responses:
图 7 展示了层响应的标准差。相应是每一个 3*3 卷积后,在 BN 之后,其他非线性(RELU/addition)之前。这个揭示了残差函数的响应强度,这证实了我们的初始动机,残差函数相比于非残差函数会趋近于零,而且更深层的残差网络越趋近于零。
Exploring Over 1000 layers : 对于更深的层,1202,我们没有优化的困难,也可以得到好的训练误差和测试误差,但是虽然它和一百多层有相同的训练误差,但是测试误差高于一百多层,我们把它归咎于过拟合。
Object Detection on PASCAL and MS COCO:
将 Faster R-CNN 的 VGG 替换成 ResNet-101