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 上进行试验,我们展示了
- 极深的残差网络也可以很简单的优化&#