Title: Deep Residual Learning for Image Recognition
Link
文章目录
Abstract
我们显式地将层重新配置为参考层输入来学习残差函数,而不是学习未参考的函数。
我们提供的综合经验证据表明,这些残差网络更易于优化,并且可以通过深度的增加而获得准确性。
1. Introduction
深度卷积神经网络为图像分类带来了一系列突破。
当更深层的网络能够开始聚合时,就会出现退化问题:随着网络深度的增加,准确性达到饱和,然后迅速下降。这种降级不是由过度拟合引起的,将更多的层添加到适当深度的模型中会导致更高的训练误差。
在本文中,我们通过引入深度残差学习框架(a deep residual learning framework)来解决退化问题。
我们在 ImageNet 上进行了全面的实验,以显示退化问题并评估我们的方法。
2. Related Work
Residual Representations
在图像识别中,VLAD是一种通过针对字典的残差矢量进行编码的表示形式。
对于矢量量化,编码残差矢量比编码原始矢量更有效。
Shortcut Connections
导致快捷连接(Shortcut Connections)的实践和理论已经研究了很长时间。
早期训练 MLP 是添加线性层;也有一些方法是在中间层直接连接辅助分类器(auxiliary classifier)来解决梯度爆炸问题(vanishing/exploding gradients)。
有三篇论文提出了通过快捷连接(shortcut connections)实现对层响应,梯度和传播误差进行居中的方法;GoogLeNet 的 inception 层也包含了 shortcut 分支以及更深层的分支。
- 与 highway networks 的区别与联系
和我们的工作同时提出的一个网络叫高速网络( highway networks),它包括带有门函数 (gating functions) 的 shortcut connections,但是这些门依赖数据和参数,而深度残差网络的 shortcuts 不依赖参数。
高速网络的 gated shortcut 接近于0(闭合)时,网络层表现为非残差函数(non-residual function)。
而 ResNet 的网络始终表现为残差函数,shortcuts 不会闭合,所有信息都会通过,残差函数也一直在学习。
3. Deep Residual Learning
3.1. Residual Learning
x 是第一层输入,H(x) 是多层的映射,H(x)-x 是残差函数(residual function)。
令 F(x) := H(x) - x,则原始的映射变为 F(x) + x。
退化问题表明,求解器可能难以通过多个非线性层来逼近身份映射。借助残差学习公式,如果身份映射是最佳的,则 solvers 可以简单地将多个非线性层的权重逼近零,以逼近身份映射。
3.2. Identity Mapping by Shortcuts
文章中 building block 定义为:
x 是输入,y 是输出,F是残差映射函数。
Figure 2有两层,F = W2σ(W1x),W1 和 W2 是两层的权重,σ是 relu 函数。
F + x 操作通过快捷连接(shortcut connection)和逐元素加法(element-wise addition)执行。
上述公式的 shortcut connections (也就是x)没有引入参数或增加计算复杂度。所以我们可以公平地比较相同参数数量,深度,宽度以及计算消耗的残差网络。
公式(1)中 F 和 x 的维度必须相同,如果不同,我们可以通过快捷连接 x 执行线性投影Ws以匹配尺寸:
残差函数 F 的形式灵活多变,这篇论文的函数包含两三层(Figure 5),当然更多层也可以。
为简单起见,上述公式都用全连接层的,但它们也适用于卷积层。
3.3. Network Architectures
两种模型:Plain Network 和 Residual Network。
网络结构太长,具体的示意图看原文的 Figure 3。
- Plain Network
plain baselines 受 VGG net 启发。
卷积层主要具有3×3 filter,并遵循两个简单的设计规则:
- 对于相同的feature map尺寸,图层具有相同数量的 filter;
- 如果 feature map 的大小减半,则 filter 的数量将增加一倍,以保持每层的时间复杂度。
该网络使用卷积层下采样。
The network ends with a global average pooling layer and a 1000-way fully-connected layer with softmax.
与 VGG 相比,filter更少,复杂度更低。
- Residual Network
在 plain network 的基础上,我们插入快捷方式连接,将网络变成其对应的残差版本。
下面是网络的一部分,左边是普通版本,右边是残差网络,可以看出它们的区别就是每隔两层把输入x 加到输出 F 上,这里的 x 就是 shortcut connection。
当输入输出维度相同时,使用公式(1)就可以,shortcut connection 表示为上图实线部分。
当输出的维度增加时,有两种选择:a)快捷方式仍然执行身份映射,并填充额外的零以增加尺寸。 此选项不引入额外的参数;b)使用公式(2)匹配维度。此时的 shortcut connection 表现为下图的虚线部分。
3.4. Implementation
ImageNet 上的训练细节:
- 图片按照短边重调尺寸,边的范围在[256, 480],用于规模增强(scale augmentation)
- 采用了标准的色彩增强(color augmentation)
- 每一个卷积后**前都使用了 batch normalization (BN)
- SGD with a mini-batch size of 256,学习率从0.1开始并在误差稳定时除以10,weight decay = 0.0001,momentum = 0.9
- 没有采用 dropout
4. Experiments
4.1. ImageNet Classification
We evaluate our method on the ImageNet 2012 classifi-
cation dataset that consists of 1000 classes.
We evaluate both top-1 and top-5 error rates.
- Plain Networks.
首先验证了 18 层和 34 层的普通网络。
Table 2 纵向比较,34层的网络错误率高。通过实验也发现了退化问题(degradation problem),原因未来还得继续讨论。
- Residual Networks.
接着验证 18 层和 34 层的残差网络。
baseline 是 plain network,没有添加参数。
Table 2 纵向比较,与 plain net 结果不同,34 层的网络错误率低。这表明在这种情况下可以很好地解决退化问题,并且我们设法通过增加深度提高准确性。
Table 2 横向比较,34 层的 ResNet 比34层的 plain net 降低了 3.5% 的错误率。这个比较验证了残差学习的有效性。而 18 层的两个网络准确度差不多,但18 层的 ResNet 收敛更快。
- Identity vs. Projection Shortcuts
比较不同的 projection shortcuts:
A. zero-padding shortcuts 增加维度但不增加参数
B. projection shortcuts
C. all shortcuts are projections
Table 3 是比较结果,第一个框是 state-of-art-method,第二个框是普通版以及加上不同投影策略的版本。
纵向比较,可以看出,ABC三个策略对于降低错误率均有效。 B 比 A 稍好,C 比 B 好,它们之间微小的差距说明投影策略对退化问题不是至关重要的。C 添加了额外的参数,后面的实验用 B 策略。
- Deeper Bottleneck Architectures.
考虑到时间消耗,引入了更深层的网络。
把 building block 从二层改为三层,
- Comparisons with State-of-the-art Methods.
baseline 34-layer ResNets 取得了有竞争力的准确性。
152-layer ResNet 取得了单模型的 4.49 的 top-5 error。
(文章最后还有在其他数据集合识别任务的验证)