Deep Residual Learning for Image Recognition

02 December 2018

Authors: Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. Microsoft Research.

Abstract: Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layers inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers–8x deeper than VGG nets but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers.

The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of submissions to ILSVRC & COCO 2015 competitions, where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.

摘要:更深的神经网络更难以训练。我们提出了一个残差学习框架来简化网络训练,这些网络比之前使用的深度要大的多。我们明确地将层重新表述为学习关于输入层的残差函数,而不是学习unreferenced函数。我们提高全民的经验证据表明,这些残差网络更容易优化,并且可以从显著增加的深度获得精度。在ImageNet数据集,我们评估了深度为152层——比VGG网络深8倍,扔具有较低的复杂度的的残差网络。这些网络的集成在ImageNet测试集上获得了3.57%的误差。这一结果在ILSVRC分类任务中获得了第一的位置。我们也对100和1000层(网络)在CIFAR-10数据上做了分析。

表示的深度对于许多视觉任务来说至关重要。仅仅由于我们非常深的表示,我们对COCO目标检测数据集获得了28%的相对提高。深度残差网络是提交ILSVRC和COCO 2015竞赛提交的基础,我们也在ImageNet检测、ImageNet定位、COCO检测和COCO分割任务上获得了第一名。

网络的深度至关重要。那么学习更好的网络就像堆叠更多的层一样一样简单吗?(Is Learning better networks as easy as stacking more layers?)

其实,随着网络加深,就会出现梯度消失和梯度爆炸问题。随着normalized initialization和intermediate normalization的使用,这个问题被解决了。

但是实验表明随着网络加深,accuracy却急剧下降,更出乎意料的是这不是由于过拟合造成的,如Figure 1所示。如果是过拟合的话,训练误差应该更低,但如图中所示,层数多,训练集上的误差更高。

一般情况下,网络越深,表示能力更强。但为什么会出现Figure 1的现象呢?论文中说是不好优化。它是这么分析的,更深网络可以看做是在小(shallower)网络基础上添加一些identity mapping,小(shallower)网络因此是更深网络的子集,表征能力更强,效果肯定不会比小(shallower)网络差。

论文中提出了一种深度残差学习(deep residual learning)框架来解决degration问题。它的思想是这样的:它明确的让stacked layers来学习一种residual mapping,而不是underly mapping。我们用H(x)表示underlying mapping, F(x) = H(x) - x表示residual mapping。这样,H(x) = F(x) + x。 极端地讲,如果identity mapping是最优的,学习权重全为0的residual mapping比学习一种identity mapping要简单的多。因此,我们假设,residual mapping比underlying mapping更容易优化。

如图2,F(x) + x 可以通过具有”shortcut connections”的前馈神经网络实现。

一个building block可以表示为:

y = F(x, {Wi}) + x, x和y分别表示输入输出feature maps,F表示要学习的residual mapping,F比较灵活,一般具有Figure 5的格式,右图也是所谓的瓶颈架构(bottlenect architectures)。

所以网络的架构有如下的结构:

从上图中,我们可以发现identity mapping有实线和虚线两种,实线mapping前后channels个数一样,可以直接相加;但虚线的mapping前后channels个数不一样,这时通过两种方法来解决:

  1. 增加的维数采用0填充
  2. 通过1 x 1卷积增加维度,即 projection shortcuts.

这两种方法在论文中的试验效果差不多,详细查看论文试验部分。

本篇论文之前读过,但从来没有读懂过。今天又读了一次,瞬间有一种懂得感觉,论文真的很强,很值得读一下。到目前为止我读过的论文里面,价值和语言最强的论文。

Inception网络那篇论文真的是读不懂,虽然网络架构可以看明白。

VGGNet网络明天重新读一下。