Deep Residual Learning for Image Recognition
研究背景
众所周知,深度神经网络之所以能起到如此神奇的功效,得益于网络层数的加深,对于数据的特征语义信息提取内容更加丰富,让计算机能更好理解数据的内在含义。但是深度神经网络的训练难度也会随着网络的层数加深而变得越发困难,在这个方面主要困难之一,就是梯度消失或者梯度爆炸,还有过拟合。不过好在随着研究的深入,不少训练技巧的提出,例如非线性饱和激活函数、标准化技术和Dropout等,有效解决这些问题,使得层数为几十层的网络能够通过反向传播算法训练,使得模型收敛。
但是该篇文献则发现一个问题,就是随着网络层数的加深,网络的在训练集错误率会达到饱和,然后迅速上升,并且认为这种现象不是过拟合引起的。作者将这个现象称为网络退化。为解决这种现象,提出了深度残差学习框架,解决了退化问题。同时通过构建深度残差网络,在多项图像领域的识别、检测和分割任务中都取得top-1的成绩,证实了深度残差网络的强大能力。

问题描述
对于神经网络来说,深度是十分重要的属性,在我们一般的认知中,会认为随着神经网络的层数加深,网络的性能应该会不断提高,然后达到饱和。但是事实上,深度的加深并没有给网络的性能带来继续的提高,反而出现下降的问题。作者将这一现象称为网络退化。
该篇文献在使用20层和56层的深度神经网络对CIFAR-10进行训练,发现这种现象,如下图所示。

从以上实验结果中,可以看到更深的网络具有更高的训练误差和测试误差,证实这种现象的存在。退化现象使得堆叠网络层数变得不在有意义,为了解释这种现象原因,作者以恒等变换为切入点,分析原因,并提出残差学习方式,有效解决退化问题。
解决方案
残差学习
我们假设几个非线性层要拟合函数映射是这些层中第一个层的输入,如下图左侧所示。假设多个非线性层可以渐近地近似复杂函数,那么它也可以等价于渐近地近似残差函数,即。因此残差学习就是让这些层近似残差函数,而不是之前的,因此原始的函数变为,如下图右侧所示。

如果假设深层网络的后面那些层是恒等映射,那么深层网络就退化为浅层网络。如果直接让一些非线性层去拟合一个潜在的恒等映射函数,比较困难。但是如果把网络设计为,那么我们可以转换为学习一个残差函数,只要,就可以构成一个恒等映射,很明显拟合残差函数相对更容易。残差的思想都是去掉相同的主体部分,从而突出微小的变化。
参考传送门:https://blog.csdn.net/g11d111/article/details/79724643
快捷恒等映射
在该篇文献中将所构建的模块定义为:
其中x和y是模块的输入和输出向量,函数表示要学习的残差映射。以右图为例,,其表示ReLU,操作通过快捷连接和各个元素相加来执行。快捷连接方式既没有引入额外参数,也没有增加计算复杂度。
注意x和F的维度必须相等,如果不相等,则可以通过线性投影来匹配维度:
残差函数F的形式也是可变的,文献中提供两种不同的残差函数形式,可以是两层或三层的函数F,如下图所示。

网络架构
下图为文献中的VGG-19、简单和残差网络。

简单网络(中,34层):参考VGG-19结构,卷积层主要有3×3的滤波器,并遵守两个简单的设计规格。一是对于相同的输出特征图尺寸,层具有相同数量的滤波器,二是如果特征图尺寸减半,滤波器数量加倍,以便保持每层的时间复杂度。采用步长为2的卷积层直接执行下采样,最后由全局平均池化层和具有softmax的1000维全连接层结束。 残差网络(右,34层):基于简单网络,在每两层之间插入快捷连接。当输入和输出具有相同维度时(图中实线快捷连接),可以直接使用恒等快捷连接。当维度增加(图中虚线快捷连接),可有两种考虑,一是依然是恒等映射,额外填充零以增加维度,二是采用线性投影快捷连接,用于维度匹配。
其他不同变种的残差网络的细节说明,如下表所示。

实验分析
ImageNet分类
该篇文献评估了18层和34层的简单网络和残差网络,在ImageNet上的表现。实验结果如下表所见。


从表2分析,可见对于简单网络从18层到34层,top-5的正确率不升反而降低。表4中可看到34层比18层有更高的训练和验证误差。说明简单网络随着层数的加深,出现退化问题,导致网络性能降低。
从表2分析,可见对于残差网络从18层到34层,top-5的正确率上升(2.8%);表4中34层拥有比18层更低的训练和验证误差。表明残差学习的方式很好的解决退化问题,深度的增加提高网络性能。
接下来,该篇文献通过对比不同的快捷方式、更深层次的网络和与最先进的方法比较,这三个方面论证残差网络(ResNet)的强大能力。
不同的快捷方式

上图是比较不同快捷方式。A为零填充快捷虚线连接、恒等映射快捷实线连接;B是投影快捷虚线连接、恒等映射快捷实线连接;C是所有快捷连接都是投影。可以看到B比A略好(0.5%),可能是A中零填充没有残差学习。C比B稍好(0.4%),可能是添加额外参数。
更深层次的网络

上表比较不同深度的残差网络。50、101和152层的网络采用3层堆叠的残差函数,采用投影快捷连接。值得注意是的,尽管深度显著增加,但是152层ResNet(113亿FLOP)依然比VGG-16/19具有更低复杂度(153/196亿FLOP) 。可以看到50/101/152层ResNet比34层ResNet准确率显著提高,并没有出现退化问题,说明增加深度显著的提高的网络的性能。
最先进的方法比较

上表将ResNet与最先进的方式比较,152层ResNet单模型就具有4.49%的top-5错误率,优于其他最先进的方法。作者综合六种不同深度的模型,形成一个集合,最终在2015年ILSVRC取得3.5%的top-5错误率,荣获冠军。
PASCAL和MS COCO
为验证残差网络在其他识别任务上也有很好的泛化性能。该篇文献在PASCAL VOC2007和2012以及COCO的目标检测数据集上进行实验,采用Faster R-CNN作为检测方法,将原始VGG-16骨干网络换成ResNet-101。实验结果如下表所示。


基于ResNet-101骨干网络的Faster R-CNN,在PASCAL VOC 207/2012测试集上的标准衡量指标(mAP)提高了3%,在COCO验证集上的mAP提高了6%。说明ResNet在其他图像识别任务上,也能起到一定的效果。
总结与展望
总结
残差学习较好解决了网络退化问题,并且基于残差学习方式构建的深度残差网络(ResNet),在2015年各项图像识别竞赛(ImageNet分类、检测、定位;COCO检测、分割)中取得第一名的成绩,证实了ResNet的强大能力,并且ResNet也是第一个网络层数超过100层的卷积神经网络。
展望
ResNet暂未考虑泛化技术使用,例如maxout/dropout,而是通过设计深且窄的网络架构简单地进行正则化,未来将会考虑结合更强的正则化技术来改善网络的性能。将ResNet推广到更多的领域,让其能成为深度学习框架的一个通用的骨干网络。
论文:He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 770-778).




