Deep Residual Learning for Image Recognition论文阅读笔记
ResNet这篇论文获得了CVPR 2016的最佳论文奖(全名为《IEEE Conference on Computer Vision and Pattern Recognition》)。该研究工作聚焦于深度残差网络的设计与实现,并在上述领域取得了突破性的进展;其中包含的重要成果包括创新性的模块化设计框架以及高效的训练策略等关键要素。
下面开始说论文正文部分
在神经网络中,常见的两个挑战是:(Is learning better networks as easy as stacking more layers?)
- 当网络变得更深时会产生
梯度消失/爆炸( vanishing/exploding gradients)的问题, 导致无法收敛, 从而阻碍了模型训练的有效性. 对此问题, 大多数情况下可以通过归一化初始化以及中间层引入归一化操作(即batch normalization)来缓解. - 当更深的网络开始收敛后, 会出现一个退化现象. 网络随着深度从20层增长到56层的过程中, 训练误差和测试误差并未减小反而增大. 然而这一现象并非由于过拟合所导致. 如下图所示, 深度更大的网络在性能上并没有显著提升, 相反其效果不如浅层网络(plain network指未使用skip connections的架构)

图1 不同深度的神经网络效果对比图
理论指出,在训练集中深度不应低于浅层的表现。然而,在图中所展示的情况为何?随着层数增加 随着层数增加 随着层数增加 随着模型深度不断增加 模型优化难度上升 这一现象被称为退化问题(degradation problem)。其根本原因是由于随着模型深度不断增加 模型优化难度上升 导致性能下降。尽管理论上更深的模型应该表现出更好的性能 但在实际应用中 因为训练难度过大 深度较高的模型反而会出现退化现象 性能不及较浅层的模型。而残差网络能够有效解决这一问题:即随着模型深度增加 训练集上的表现会越来越好 因此 作者提出了深度学习残差框架(a deep residual learning framework)。其结构如下所示:

图2 残差块
残差网络通过引入 shortcut connections(捷径连接),变得更加容易被优化。包含一个 shortcut connection 的多层网络构成一个 ResNet 单元(ResNet block)。如图所示,shortcut connection指的是从 x 至 ⨁ 的箭头位置。
这些深度神经网络更容易实现高效的优化,并且能够显著提升模型的性能,即使在深度增加的情况下。
关于Figure 2. Residual learning: a building block.的理解:

如图2所示;其中x代表输入变量,则经过非线性变换后得到输出结果\sigma(F(x) + x)。当不引入跳跃连接(即图2右侧从x到\bigoplus的箭头不存在)时,则该残差块等同于一个仅包含两层前馈网络结构。这一结构中第二层网络可采用全连接层或卷积层进行设计。假设第二层网络在激活函数作用前的输出为H(x):若希望该两层网络能够逼近理想情况下的最优输出即为输入信号x时,则无跳跃连接情况下的优化目标应设定为使得H(x)=x;反之若有跳跃连接存在(即形成残差结构),则其优化目标简化为使第二层网络满足条件f(x)=H(x)-x=0即可实现最佳性能表现。由此可见,在这种情况下优化过程相对更为简便这也正是'残差'这一名称所蕴含的核心思想
对于作者提出的网络结构,有2种情形。
1 ) 当F和x相同维度时,直接相加(element-wise addition),公式如下:y = F(x, {W_i}) + x..........(1)其中,x和y为输入和输出F(x, {W_i})函数表示要学习的残差映射,如上图Fig.2,这里有2个网络层,F= W_2\sigma(W_1x)表示残差块在第二层激活函数之前的输出,其中 W_1 和 W_2 表示第一层和第二层的权重,\sigma 表示 ReLU 激活函数。
这种方法不会增加网络的参数以及计算复杂度。
2) 当F和x维度不同维度时,需要先将x做一个变换(linear projection),然后再相加,公式如下:y = F(x, {W_i}) + W_sx..........(2)其中,W_s仅仅用于维度匹配上,对于x的维度变换,一种是zero-padding,另一种是通过1x1的卷积。
测试网络
6.1 实验开始前的相关介绍
从图中可以看到,使用到的网络有VGG-19, 34-layer plain , 34-layer residual,其中34-layer 表示含可训练参数的层数为34层,池化层不含可训练参数;图 3左侧是 作为参考的VGG-19模型,中间是具有34个参数层的plain network,右侧是具有34个参数层的residual network,网络的详细内容:
1) 基准网络为:基于VGGNet,采用的卷积核为3x3,其中有两个设计原则,①对于有相同的输出feature map尺寸,filter的个数相同;②当feature map尺寸减半时,filter的数量加倍。下采样的策略是直接用stride=2的卷积核。网络最后网络以全局平均池化层(global average pooling layer,不需要参数,参考http://www.cnblogs.com/hejunlin1992/articles/7750759.html)和具有softmax的1000维全连接层(后面接softmax)结束
2) 残差网络和中间部分的 plain network 唯一的区别就是 shortcut connections。这两个网络都是当 feature map 减半时,filter 的个数翻倍,这样保证了每一层的计算复杂度一致当输入输出具有相同尺寸时,identity shortcuts可以直接使用(实线部分),就是公式:1:y = F(x, {W_i}) + x;当维度增加时(虚线部分),有以下两种选择:A)仍然采用恒等映射(identity mapping),超出部分的维度使用0填充;B) 利用1x1卷积核来匹配维度,就是公式2:y = F(x, {W_i}) + W_sx。对于上面两种方案,当shortcuts通过两种大小的feature map时,采取A或B方案的同时,stride=2。
残差网络可以不是卷积神经网络,用全连接层也可以

图 3 ImageNet的网络架构例子( VGG-19、plain network、ResNet) 6.2 实验

观察图4左侧部分可知

该段内容展示了恒等映射(identity shortcuts)在训练中的应用情况。随后我们评估了projection shortcuts(公式2)的作用,并设计了三种不同的测试方案来考察其性能表现。具体而言,在维度增长时采用zero-padding shortcuts的情况下(即与Table2及Fig4右侧图示相对应),观察各短接方式的表现特征;而当处理维度增长情况时,则仅使用projection shortcuts,并保留恒等映射作为备用方案(如公式1所示)。此外,在所有shortcuts均采用projection方式的情况下(如公式2所示),我们可以进一步比较不同短接策略的效果差异。实验结果总结于下表:

通过查看表格数据可知,在对比实验结果表明
- 更为复杂的瓶颈架构

- 50-layer ResNet、101-layer and 152-layer ResNets
- 50-层残差网络(ResNet)
将每一组2个卷积层替换成3-层瓶颈型残差块后,则形成了一个新的50-层ResNet网络结构 。
通过增加多组3层瓶颈块的堆叠结构,在此架构下所构建的网络具有较高的深度(即包含有更多数量的计算单元),而其参数规模却相较于VGG系列模型更为紧凑
为何残差网络能够展现出更优异的性能?这是因为我们在该网络的中间层和输出层上附加了残留模块,并对其内部权重参数施加L2正则化处理。这样,在图2所示的F(x)=0情形下,默认情况下这一操作并不会显著影响整体性能。因此,在这种情况下,在仅添加一个残留模块与不添加的情况下两者的效果是相当接近的。然而如果该残留模块内部的学习单元能够捕获到一些有价值的信息,则其性能可能优于恒等映射(Identity mapping: F(x)=x)的情况。
文献:
