摘要
更深的神经网络更难训练。我们提出了一种残差学习框架来减轻网络训练,这些网络比以前使用的网络更深。我们明确地将层变为学习关于层输入的残差函数,而不是学习未参考的函数。我们提供了全面的经验证据说明这些残差网络很容易优化,并可以显著增加深度来提高准确性。在ImageNet数据集上我们评估了深度高达152层的残差网络——比VGG[40]深8倍但仍具有较低的复杂度。这些残差网络的集合在ImageNet测试集上取得了3.57%的错误率。这个结果在ILSVRC 2015分类任务上赢得了第一名。我们也在CIFAR-10上分析了100层和1000层的残差网络。
对于许多视觉识别任务而言,表示的深度是至关重要的。仅由于我们非常深度的表示,我们便在COCO目标检测数据集上得到了28%的相对提高。深度残差网络是我们向ILSVRC和COCO 2015竞赛提交的基础,我们也赢得了ImageNet检测任务,ImageNet定位任务,COCO检测和COCO分割任务的第一名。
1. 引言
深度卷积神经网络1 2导致了图像分类2 3 4的一系列突破。深度网络自然地将低/中/高级特征3和分类器以端到端多层方式进行集成,特征的“级别”可以通过堆叠层的数量(深度)来丰富。最近的证据5 6显示网络深度至关重要,在具有挑战性的ImageNet数据集上领先的结果都采用了“非常深”5的模型,深度从16 5到307之间。许多其它重要的视觉识别任务8 9 10 11 12也从非常深的模型中得到了极大受益。
在深度重要性的推动下,出现了一个问题:学些更好的网络是否像堆叠更多的层一样容易?回答这个问题的一个障碍是梯度消失/爆炸13 14 15这个众所周知的问题,它从一开始就阻碍了收敛。然而,这个问题通过标准初始化16 15 17 18和中间标准化层7在很大程度上已经解决,这使得数十层的网络能通过具有反向传播的随机梯度下降(SGD)开始收敛。
当更深的网络能够开始收敛时,暴露了一个退化问题:随着网络深度的增加,准确率达到饱和(这可能并不奇怪)然后迅速下降。意外的是,这种退化不是由过拟合引起的,并且在适当的深度模型上添加更多的层会导致更高的训练误差,正如19 20中报告的那样,并且由我们的实验完全证实。图1显示了一个典型的例子。
图1. 20层和50层的“简单”网络在CIFAR-10上的训练误差(左)和测试误差(右)。更深的网络有更高的训练误差和测试误差。ImageNet上的类似现象如图4所示。
退化(训练准确率)表明不是所有的系统都很容易优化。让我们考虑一个较浅的架构及其更深层次的对象,为其添加更多的层。存在通过构建得到更深层模型的解决方案:添加的层是恒等映射,其他层是从学习到的较浅模型的拷贝。 这种构造解决方案的存在表明,较深的模型不应该产生比其对应的较浅模型更高的训练误差。但是实验表明,我们目前现有的解决方案无法找到与构建的解决方案相比相对不错或更好的解决方案(或在合理的时间内无法实现)。
在本文中,我们通过引入深度残差学习框架解决了退化问题。我们明确地让这些层拟合残差映射,而不是希望每几个堆叠的层直接拟合期望的底层映射。形式上,将期望的底层映射表示为$\mathcal{H(x)}$,我们将堆叠的非线性层拟合另一个映射$\mathcal{F(x):=H(x)−x}$。原始的映射重写为$\mathcal{F(x)+x}$。我们假设残差映射比原始的、未参考的映射更容易优化。在极端情况下,如果一个恒等映射是最优的,那么将残差置为零比通过一堆非线性层来拟合恒等映射更容易。
公式$\mathcal{F(x)+x}$可以通过带有“快捷连接”的前向神经网络(图2)来实现。快捷连接21 22 23是那些跳过一层或更多层的连接。在我们的案例中,快捷连接简单地执行恒等映射,并将其输出添加到堆叠层的输出(图2)。恒等快捷连接既不增加额外的参数也不增加计算复杂度。整个网络仍然可以由带有反向传播的SGD进行端到端的训练,并且可以使用公共库(例如,Caffe24)轻松实现,而无需修改求解器。
图2. 残差学习:构建块
我们在ImageNet25上进行了综合实验来显示退化问题并评估我们的方法。我们发现:1)我们极深的残差网络易于优化,但当深度增加时,对应的“简单”网络(简单堆叠层)表现出更高的训练误差;2)我们的深度残差网络可以从大大增加的深度中轻松获得准确性收益,生成的结果实质上比以前的网络更好。
CIFAR-10数据集上26也显示出类似的现象,这表明了优化的困难以及我们的方法的影响不仅仅是针对一个特定的数据集。我们在这个数据集上展示了成功训练的超过100层的模型,并探索了超过1000层的模型。
在ImageNet分类数据集25中,我们通过非常深的残差网络获得了很好的结果。我们的152层残差网络是ImageNet上最深的网络,同时还具有比VGG网络5更低的复杂性。我们的模型集合在ImageNet测试集上有3.57% top-5的错误率,并在ILSVRC 2015分类比赛中获得了第一名。极深的表示在其它识别任务中也有极好的泛化性能,并带领我们在进一步赢得了第一名:包括ILSVRC & COCO 2015竞赛中的ImageNet检测,ImageNet定位,COCO检测和COCO分割。坚实的证据表明残差学习准则是通用的,并且我们期望它适用于其它的视觉和非视觉问题。
2. 相关工作
残差表示。在图像识别中,VLAD27是一种通过关于字典的残差向量进行编码的表示形式,Fisher矢量28可以表示为VLAD的概率版本27。它们都是图像检索和图像分类29 30中强大的浅层表示。对于矢量量化,编码残差矢量31被证明比编码原始矢量更有效。
在低级视觉和计算机图形学中,为了求解偏微分方程(PDE),广泛使用的Multigrid方法32将系统重构为在多个尺度上的子问题,其中每个子问题负责较粗尺度和较细尺度的残差解。Multigrid的替代方法是层次化基础预处理33 34,它依赖于表示两个尺度之间残差向量的变量。已经被证明32 33 34这些求解器比不知道解的残差性质的标准求解器收敛得更快。这些方法表明,良好的重构或预处理可以简化优化。
快捷连接。导致快捷连接21 22 23的实践和理论已经被研究了很长时间。训练多层感知机(MLP)的早期实践是添加一个线性层来连接网络的输入和输出22 23。在6 35中,一些中间层直接连接到辅助分类器,用于解决梯度消失/爆炸。论文36 37 38 39提出了通过快捷连接实现层间响应,梯度和传播误差的方法。在6中,一个“inception”层由一个快捷分支和一些更深的分支组成。
和我们同时进行的工作,“highway networks” 20 40提出了门功能41的快捷连接。这些门是数据相关且有参数的,与我们不具有参数的恒等快捷连接相反。当门控快捷连接“关闭”(接近零)时,高速网络中的层表示非残差函数。相反,我们的公式总是学习残差函数;我们的恒等快捷连接永远不会关闭,所有的信息总是通过,还有额外的残差函数要学习。此外,高速网络还没有证实极度增加的深度(例如,超过100个层)带来的准确性收益。
3. 深度残差学习
3.1. 残差学习
我们考虑$\mathcal{H(x)}$作为几个堆叠层(不必是整个网络)要拟合的基础映射,$\mathcal{x}$表示这些层中第一层的输入。假设多个非线性层可以渐近地近似复杂函数,它等价于假设它们可以渐近地近似残差函数,即$\mathcal{H(x)−x}$(假设输入输出是相同维度)。因此,我们明确让这些层近似参数函数 $\mathcal{F(x):=H(x)−x}$,而不是期望堆叠层近似$\mathcal{H(x)}$。因此原始函数变为$\mathcal{F(x)+x}$。尽管两种形式应该都能渐近地近似要求的函数(如假设),但学习的难易程度可能是不同的。
关于退化问题的反直觉现象激发了这种重构(图1左)。正如我们在引言中讨论的那样,如果添加的层可以被构建为恒等映射,更深模型的训练误差应该不大于它对应的更浅版本。退化问题表明求解器通过多个非线性层来近似恒等映射可能有困难。通过残差学习的重构,如果恒等映射是最优的,求解器可能简单地将多个非线性连接的权重推向零来接近恒等映射。
在实际情况下,恒等映射不太可能是最优的,但是我们的重构可能有助于对问题进行预处理。如果最优函数比零映射更接近于恒等映射,则求解器应该更容易找到关于恒等映射的抖动,而不是将该函数作为新函数来学习。我们通过实验(图7)显示学习的残差函数通常有更小的响应,表明恒等映射提供了合理的预处理。
图7. 层响应在CIFAR-10上的标准差(std)。这些响应是每个3×3层的输出,在BN之后非线性之前。上面:以原始顺序显示层。下面:响应按降序排列。
3.2. 快捷恒等映射
我们每隔几个堆叠层采用残差学习。构建块如图2所示。在本文中我们考虑构建块正式定义为: \(\mathcal{y = F(x, \lbrace W_i \rbrace) + x} \tag{1}\) $\mathcal{x}$和$\mathcal{y}$是考虑的层的输入和输出向量。函数$\mathcal{F(x, \lbrace W_i \rbrace)} $表示要学习的残差映射。图2中的例子有两层,$\mathcal{F = W_2σ(W_1x)}$中$\sigma$表示ReLU42,为了简化写法忽略偏置项。$\mathcal{F+x}$操作通过快捷连接和各个元素相加来执行。在相加之后我们采纳了第二种非线性(即$\mathcal{\sigma(y)}$,看图2)。
公式$(1)$中的快捷连接既没有引入外部参数又没有增加计算复杂度。这不仅在实践中有吸引力,而且在简单网络和残差网络的比较中也很重要。我们可以公平地比较同时具有相同数量的参数,相同深度,宽度和计算成本的简单/残差网络(除了不可忽略的元素加法之外)。
方程(1)中$\mathcal{x}$和$\mathcal{F}$的维度必须是相等的。如果不是这种情况(例如,当更改输入/输出通道时),我们可以通过快捷连接执行线性投影$\mathcal{W_s}$来匹配维度:
\(\mathcal{y = F(x, \lbrace W_i \rbrace) + W_sx} \tag{2}\) 我们也可以使用公式$(1)$中的方阵$\mathcal{W_s}$。但是我们将通过实验表明,恒等映射足以解决退化问题,并且是合算的,因此$\mathcal{W_s}$仅在匹配维度时使用。
残差函数FF的形式是可变的。本文中的实验包括有两层或三层(图5)的函数$\mathcal{F}$,同时可能有更多的层。但如果FF只有一层,公式$(1)$类似于线性层:$\mathcal{y=W_1x+x}$,我们没有看到优势。
图5. ImageNet的深度残差函数FF。左:ResNet-34的构建块(在$56 \times 56$的特征图上),如图3。右:ResNet-50/101/152的“bottleneck”构建块。
我们还注意到,为了简单起见,尽管上述符号是关于全连接层的,但它们同样适用于卷积层。函数$\mathcal{F(x, \lbrace W_i \rbrace)}$可以表示多个卷积层。元素加法在两个特征图上逐通道进行。
3.3. 网络架构
我们测试了各种简单/残差网络,并观察到了一致的现象。为了提供讨论的实例,我们描述了ImageNet的两个模型如下。
简单网络。 我们简单网络的基准(图3,中间)主要受到VGG网络5(图3,左图)的哲学启发。卷积层主要有$3 \times 3$的滤波器,并遵循两个简单的设计规则:(i)对于相同的输出特征图尺寸,层具有相同数量的滤波器;(ii)如果特征图尺寸减半,则滤波器数量加倍,以便保持每层的时间复杂度。我们通过步长为2的卷积层直接执行下采样。网络以全局平均池化层和具有softmax的1000维全连接层结束。图3(中间)的加权层总数为34。
图3. ImageNet的网络架构例子。左:作为参考的VGG-19模型20。中:具有34个参数层的简单网络(36亿FLOPs)。右:具有34个参数层的残差网络(36亿FLOPs)。带点的快捷连接增加了维度。表1显示了更多细节和其它变种。
表1. ImageNet架构。构建块显示在括号中(也可看图5),以及构建块的堆叠数量。下采样通过步长为2的conv3_1, conv4_1和conv5_1执行。
值得注意的是我们的模型与VGG网络(图3左)相比,有更少的滤波器和更低的复杂度。我们的34层基准有36亿FLOP(乘加),仅是VGG-19(196亿FLOP)的18%。
残差网络。 基于上述的简单网络,我们插入快捷连接(图3,右),将网络转换为其对应的残差版本。当输入和输出具有相同的维度时(图3中的实线快捷连接)时,可以直接使用恒等快捷连接(方程(1))。当维度增加(图3中的虚线快捷连接)时,我们考虑两个选项:(A)快捷连接仍然执行恒等映射,额外填充零输入以增加维度。此选项不会引入额外的参数;(B)方程(2)中的投影快捷连接用于匹配维度(由$1 \times 1$卷积完成)。对于这两个选项,当快捷连接跨越两种尺寸的特征图时,它们执行时步长为2。
3.4. 实现
ImageNet中我们的实现遵循2 5的实践。调整图像大小,其较短的边在$\lbrack 256, 480 \rbrack $之间进行随机采样,用于尺度增强5。$224 \times 224$裁剪是从图像或其水平翻转中随机采样,并逐像素减去均值2。使用了2中的标准颜色增强。在每个卷积之后和激活之前,我们采用批量归一化(BN)7。我们按照18的方法初始化权重,从零开始训练所有的简单/残差网络。我们使用批大小为256的SGD方法。学习速度从0.1开始,当误差稳定时学习率除以10,并且模型训练高达$60×10^4$次迭代。我们使用的权重衰减为0.0001,动量为0.9。根据7的实践,我们不使用丢弃43。
在测试阶段,为了比较学习我们采用标准的10-crop测试2。对于最好的结果,我们采用如5 18中的全卷积形式,并在多尺度上对分数进行平均(图像归一化,短边位于$\lbrace 224, 256, 384, 480, 640 \rbrace$中)。
4. 实验
4.1. ImageNet分类
我们在ImageNet 2012分类数据集25对我们的方法进行了评估,该数据集由1000个类别组成。这些模型在128万张训练图像上进行训练,并在5万张验证图像上进行评估。我们也获得了测试服务器报告的在10万张测试图像上的最终结果。我们评估了top-1和top-5错误率。
简单网络。我们首先评估18层和34层的简单网络。34层简单网络在图3(中间)。18层简单网络是一种类似的形式。有关详细的体系结构,请参见表1。
表2中的结果表明,较深的34层简单网络比较浅的18层简单网络有更高的验证误差。为了揭示原因,在图4(左图)中,我们比较训练过程中的训练/验证误差。我们观察到退化问题——虽然18层简单网络的解空间是34层简单网络解空间的子空间,但34层简单网络在整个训练过程中具有较高的训练误差。
表2. ImageNet验证集上的Top-1错误率(%,10个裁剪图像测试)。相比于对应的简单网络,ResNet没有额外的参数。图4显示了训练过程。
图4. 在ImageNet上训练。细曲线表示训练误差,粗曲线表示中心裁剪图像的验证误差。左:18层和34层的简单网络。右:18层和34层的ResNet。在本图中,残差网络与对应的简单网络相比没有额外的参数。
我们认为这种优化难度不可能是由于梯度消失引起的。这些简单网络使用BN7训练,这保证了前向传播信号有非零方差。我们还验证了反向传播的梯度,结果显示其符合BN的正常标准。因此既不是前向信号消失也不是反向信号消失。实际上,34层简单网络仍能取得有竞争力的准确率(表3),这表明在某种程度上来说求解器仍工作。我们推测深度简单网络可能有指数级低收敛特性,这影响了训练误差的降低。这种优化困难的原因将来会研究。
表3. ImageNet验证集错误率(%,10个裁剪图像测试)。VGG16是基于我们的测试结果的。ResNet-50/101/152的选择B仅使用投影增加维度。
残差网络。接下来我们评估18层和34层残差网络(ResNets)。基准架构与上述的简单网络相同,如图3(右)所示,预计每对3×3滤波器都会添加快捷连接。在第一次比较(表2和图4右侧)中,我们使用所有快捷连接的恒等映射和零填充以增加维度(选项A)。所以与对应的简单网络相比,它们没有额外的参数。
我们从表2和图4中可以看到三个主要的观察结果。首先,残留学习的情况变了——34层ResNet比18层ResNet更好(2.8%)。更重要的是,34层ResNet显示出较低的训练误差,并且可以泛化到验证数据。这表明在这种情况下,退化问题得到了很好的解决,我们从增加的深度中设法获得了准确性收益。
第二,与对应的简单网络相比,由于成功的减少了训练误差,34层ResNet降低了3.5%的top-1错误率。这种比较证实了在极深系统中残差学习的有效性。
最后,我们还注意到18层的简单/残差网络同样地准确(表2),但18层ResNet收敛更快(图4右和左)。当网络“不过度深”时(18层),目前的SGD求解器仍能在简单网络中找到好的解。在这种情况下,ResNet通过在早期提供更快的收敛简便了优化。
恒等和投影快捷连接我们已经表明没有参数,恒等快捷连接有助于训练。接下来我们调查投影快捷连接(方程2)。在表3中我们比较了三个选项:(A) 零填充快捷连接用来增加维度,所有的快捷连接是没有参数的(与表2和图4右相同);(B)投影快捷连接用来增加维度,其它的快捷连接是恒等的;(C)所有的快捷连接都是投影。
表3显示,所有三个选项都比对应的简单网络好很多。选项B比A略好。我们认为这是因为A中的零填充确实没有残差学习。选项C比B稍好,我们把这归因于许多(十三)投影快捷连接引入了额外参数。但A/B/C之间的细微差异表明,投影快捷连接对于解决退化问题不是至关重要的。因为我们在本文的剩余部分不再使用选项C,以减少内存/时间复杂性和模型大小。恒等快捷连接对于不增加下面介绍的瓶颈结构的复杂性尤为重要。
更深的瓶颈结构。接下来我们描述ImageNet中我们使用的更深的网络网络。由于关注我们能承受的训练时间,我们将构建块修改为瓶颈设计(更深的非瓶颈ResNet(例如,左图)也从增加的深度获得准确性(如CIFAR-10所示),但不如瓶颈ResNet那么经济。因此,瓶颈设计的使用主要是由于实际考虑。我们还注意到,瓶颈设计也见证了普通网的退化问题。)。对于每个残差函数$\mathcal{F}$,我们使用3层堆叠而不是2层(图5)。三层是$1 \times 1$,$3 \times 3$和$1 \times 1$卷积,其中$1 \times 1$层负责减小然后增加(恢复)维度,使$3 \times 3$层成为具有较小输入/输出维度的瓶颈。图5展示了一个示例,两个设计具有相似的时间复杂度。
无参数恒等快捷连接对于瓶颈架构尤为重要。如果图5(右)中的恒等快捷连接被投影替换,则可以显示出时间复杂度和模型大小加倍,因为快捷连接是连接到两个高维端。因此,恒等快捷连接可以为瓶颈设计得到更有效的模型。
50层ResNet:我们用3层瓶颈块替换34层网络中的每一个2层块,得到了一个50层ResNet(表1)。我们使用选项B来增加维度。该模型有38亿FLOP。
101层和152层ResNet:我们通过使用更多的3层瓶颈块来构建101层和152层ResNet(表1)。值得注意的是,尽管深度显著增加,但152层ResNet(113亿FLOP)仍然比VGG-16/19网络(153/196亿FLOP)具有更低的复杂度。
50/101/152层ResNet比34层ResNet的准确性要高得多(表3和4)。我们没有观察到退化问题,因此可以从显著增加的深度中获得显著的准确性收益。所有评估指标都能证明深度的收益(表3和表4)。
与最先进的方法比较。在表4中,我们与以前最好的单一模型结果进行比较。我们基准的34层ResNet已经取得了非常有竞争力的准确性。我们的152层ResNet具有单模型4.49%的top-5错误率。这种单一模型的结果胜过以前的所有综合结果(表5)。我们结合了六种不同深度的模型,形成一个集合(在提交时仅有两个152层)。这在测试集上得到了3.5%的top-5错误率(表5)。这次提交在2015年ILSVRC中荣获了第一名。
表4. 单一模型在ImageNet验证集上的错误率(%)(除了†是测试集上报告的错误率)。
表5. 模型综合的错误率(%)。top-5错误率是ImageNet测试集上的并由测试服务器报告的。
4.2. CIFAR-10和分析
我们对CIFAR-10数据集26进行了更多的研究,其中包括10个类别中的5万张训练图像和1万张测试图像。我们介绍了在训练集上进行训练和在测试集上进行评估的实验。我们的焦点在于极深网络的行为,但不是推动最先进的结果,所以我们有意使用如下的简单架构。
简单/残差架构遵循图3(中/右)的形式。网络输入是$32 \times 32$的图像,每个像素减去均值。第一层是$3 \times 3$卷积。然后我们在大小为$\lbrace 32,16,8 \rbrace$的特征图上分别使用了带有$3 \times 3$卷积的$6n$个堆叠层,每个特征图大小使用$2n$层。滤波器数量分别为$\lbrace16,32,64\rbrace$。下采样由步长为2的卷积进行。网络以全局平均池化,一个10维全连接层和softmax作为结束。共有$6n+2$个堆叠的加权层。下表总结了这个架构:
output map size | $32 \times 32$ | $16 \times 16$ | $8 \times 8$ |
---|---|---|---|
# layers | $1 + 2n$ | $2n$ | $2n$ |
# filters | $16$ | $32$ | $64$ |
当使用快捷连接时,它们连接到成对的$3 \times 3$卷积层上(共$3n$个快捷连接)。在这个数据集上,我们在所有案例中都使用恒等快捷连接(即选项A),因此我们的残差模型与对应的简单模型具有完全相同的深度,宽度和参数数量。
我们使用的权重衰减为0.0001和动量为0.9,并采用18和BN7中的权重初始化,但没有使用丢弃。这些模型在两个GPU上进行训练,批处理大小为128。我们开始使用的学习率为0.1,在32k次和48k次迭代后学习率除以10,并在64k次迭代后终止训练,这是由45k/5k的训练/验证集分割决定的。我们按照35中的简单数据增强进行训练:每边填充4个像素,并从填充图像或其水平翻转图像中随机采样$32 \times 32$的裁剪图像。对于测试,我们只评估原始$32 \times 32$图像的单一视图。
我们比较了$n=3,5,7,9$,得到了20层,32层,44层和56层的网络。图6(左)显示了简单网络的行为。深度简单网络经历了深度增加,随着深度增加表现出了更高的训练误差。这种现象类似于ImageNet中(图4,左)和MNIST中(请看20)的现象,表明这种优化困难是一个基本的问题。
图6. 在CIFAR-10上训练。虚线表示训练误差,粗线表示测试误差。左:简单网络。简单的110层网络错误率超过60%没有展示。中间:ResNet。右:110层ResNet和1202层ResNet。
图6(中)显示了ResNet的行为。与ImageNet的情况类似(图4,右),我们的ResNet设法克服优化困难并随着深度的增加展示了准确性收益。
层响应分析。图7显示了层响应的标准偏差(std)。这些响应每个3×3层的输出,在BN之后和其他非线性(ReLU/加法)之前。对于ResNet,该分析揭示了残差函数的响应强度。图7显示ResNet的响应比其对应的简单网络的响应更小。这些结果支持了我们的基本动机(第3.1节),残差函数通常具有比非残差函数更接近零。我们还注意到,更深的ResNet具有较小的响应幅度,如图7中ResNet-20,56和110之间的比较所证明的。当层数更多时,单层ResNet趋向于更少地修改信号。
探索超过1000层。我们探索超过1000层的过深的模型。我们设置$n=200$,得到了1202层的网络,其训练如上所述。我们的方法显示没有优化困难,这个$10^3$层网络能够实现训练误差$\lt 0.1%$(图6,右图)。其测试误差仍然很好(7.93%,表6)。
但是,这种极深的模型仍然存在着开放的问题。这个1202层网络的测试结果比我们的110层网络的测试结果更差,虽然两者都具有类似的训练误差。我们认为这是因为过拟合。对于这种小型数据集,1202层网络可能是不必要的大(19.4M)。在这个数据集应用强大的正则化,如maxout44或者dropout43来获得最佳结果(44 45 35 46)。在本文中,我们不使用maxout/dropout,只是简单地通过设计深且窄的架构简单地进行正则化,而不会分散集中在优化难点上的注意力。但结合更强的正规化可能会改善结果,我们将来会研究。
4.3. 在PASCAL和MS COCO上的目标检测
我们的方法对其他识别任务有很好的泛化性能。表7和表8显示了PASCAL VOC 2007和201247以及COCO[26]的目标检测基准结果。我们采用更快的R-CNN11作为检测方法。在这里,我们感兴趣的是用ResNet-101替换VGG-165。使用这两种模式的检测实现(见附录)是一样的,所以收益只能归因于更好的网络。最显著的是,在有挑战性的COCO数据集中,COCO的标准度量指标(mAP@[.5,.95])增长了6.0%,相对改善了28%。这种收益完全是由于学习表示。
表7. 在PASCAL VOC 2007/2012测试集上使用基准Faster R-CNN的目标检测mAP(%)。更好的结果请看附录。
表8. 在COCO验证集上使用基准Faster R-CNN的目标检测mAP(%)。更好的结果请看附录。
基于深度残差网络,我们在ILSVRC & COCO 2015竞赛的几个任务中获得了第一名,分别是:ImageNet检测,ImageNet定位,COCO检测,COCO分割。更多细节请看附录。
附录
A.目标检测基线
这一节我们介绍我们基于Faster R-CNN系统11的检测方法。使用ImageNet分类模型初始化,然后使用目标检测数据微调。我们在ILSVRC & COCO 2015比赛中使用ResNet-50/101进行了实验。
不同于在11中使用的VGG-16,我们的ResNet没有隐藏的全连接层。我们使用22中提出的“在卷积特征图上的网络”(NoC)来解决这个问题。我们使用这些层(在图像上的不仅不超过16像素)计算整副图像的卷积特征图(如ResNet-101的conv1,conv2_x,conv3_x,conv4_x,一共91个卷积层;见表1)。我们认为这些层与VGG-16中的13个卷积层类似,并且通过这样做,ResNet和VGG-16都具有相同的总步进(16像素)的卷积特征图。这些层由区域提案网络(RPN,产生300个提案)11和一个Fast R-CNN检测网络8共享。在conv5_1之前执行RoI池化8。在这个RoI池化后的特征上,每个区域都使用了conv5_x及以上的所有层,扮演了VGG-16的fc层的角色。最终分类层由两个并行的层(分类和检测框回归8)代替。
对于BN层的使用,在预训练后,我们计算了ImageNet训练集中每层的BN统计(平均值和方差)。然后在微调期间BN层被固定以进行物体检测。因此,BN层变为具有不变偏移和尺度的线性激活,BN统计不通过微调来更新。我们固定BN层主要是为了减少Faster R-CNN训练中的内存消耗。
PASCAL VOC
依照8 11,对于PASCAL VOC 2007测试集,我们在VOC 2007中使用5k的训练图像和VOC 2012中的16k训练图像进行训练(“07 + 12”)。对于PASCAL VOC 2012测试集,我们在VOC 2007中使用10k的训练+测试图像和VOC 2012中的16k训练图像进行训练(“07 ++ 12”)。训练Faster R-CNN的超参数与11中相同。表7显示结果。 ResNet-101使VGG-16的mAP提高了3%。这个收益只是因为ResNet学到的特征有所改善。
MS COCO
MS COCO数据集48涉及80个目标类别。我们评估PASCAL VOC指标(mAP@IoU = 0.5)和标准COCO指标(mAP@IoU=.5:.05:.95)。我们使用测试集上的80k图像进行训练,将40k图像用于评估。我们的COCO检测系统类似于PASCAL VOC检测系统。我们用8-GPU实现训练COCO模型,因此RPN具有8个图像的小批量大小(即每个GPU 1个),而Fast R-CNN部分的小批量大小为16图片。RPN部分和Fast R- CNN部分都训练了240k次迭代,学习率为0.001,然后用0.0001进行80k次迭代。
表8显示了MS COCO验证集的结果。相比VGG-16,ResNet-101的mAP@[.5, .95]增长了6%,相比之下,这是28%的相对改进,仅仅是由更好的网络学习的特征。更重要的是,mAP@[.5, .95]的绝对增长(6.0%)几乎与[email protected](6.9%)一样大。这表明更深层的网络可以改善识别和定位。
B.目标检测改进
完善起见,我们报告了对比赛的改进。这些改进是基于深度特征,因此应该从残差学习中受益。
MS COCO
检测框精修。我们的检测框竞秀部分地遵循10中的迭代定位。在Faster R-CNN中,最终输出是与其提案框不同的回归框。所以在向前传播是,我们从回归框上池化一个新特征,并获得一个新的分类分数和一个新的回归框。我们将这300项新预测与起始的300项预测相结合。使用IoU阈值0.315,应用非极大值抑制(NMS),随后为框投票10。检测框精修使mAP提高了约2个点(表9)。
表9. 使用Faster R-CNN和ResNet-101对MS COCO进行的目标检测改进。
全局上下文。我们将全局上下文应用于Fast R-CNN步骤中。给出全图像卷积特征图,我们通过全局空间金字塔池18(具有“单级”金字塔)来池化一个特征,其可以使用整个图像的边界框作为RoI被实现为“RoI”池化。这个池化特征被送到后面的层以获得全局上下文特征。这个全局特征与原始的每个区域特征相吻合,然后是并列的分类和检测框框回归层。这种新结构是端到端的训练。全局上下文将[email protected]提高约1个点(表9)。
多尺度测试。在上文中,所有结果都是通过11中的单次训练/测试获得的,其中图像的短边是$s = 600$像素。在18 8中通过从特征金字塔中选择一个尺度,并在22中通过使用Maxout层来开发多尺度训练/测试。在我们目前的实现中,我们已经进行了多尺度测试22。由于时间有限,我们还没有进行多尺度训练。另外,我们只针对Fast R-CNN步骤进行了多尺度测试(但还没有进行RPN步骤)。使用训练好的模型,我们计算图像金字塔上的卷积特征图,其中图像的短边是$s \in \lbrace 200,400,600,800,1000 \rbrace$。依据22,我们金字塔中选择两个相邻的尺度。RoI池化和后续层在这两个尺度22的特征图上执行,然后由maxout合并,如[33]所述。多尺度测试将mAP提高了2个点以上(表9)。
使用验证数据。接下来,我们使用80k + 40k的trainval和20k的test-dev进行评估。test-dev没有公开的标定,结果由评估服务器报告。在这种情况下,结果[email protected]为55.7%,mAP@[.5,.95]为34.9%(表9)。这是我们的单模型结果。
融合。在Faster R-CNN中,系统旨在学习区域提案和目标分类器,因此可以使用一个融合来提升这两个任务。我们使用一个融合来提出区域,所有提案由每个区域分类器的融合来处理。表9显示了融合3个网络的整体的结果。test-dev的mAP是59.0%和37.4%。这一成果在COCO 2015的检测任务中排名第一。
PASCAL VOC
我们根据上述模型重新审视PASCAL VOC数据集。使用COCO数据集上的单一模型(表9中为55.7%[email protected]),我们在PAS-CAL VOC集上对该模型进行微调。还采用了检测框精修,全局上下文和多尺度测试的改进。通过这样做,我们实现了PASCAL VOC 2007(表10)85.6%和PASCAL VOC 2012 83.8%的mAP(表11)(http://host.robots.ox.ac.uk:8080/anonymous/3OJ4OJ.html, 提交时间2015.11.26)。 PASCAL VOC 2012的结果比以前的最先进的结果高出10个点10。
表10. PASCAL VOC 2007测试集的检测结果。基线是Faster R-CNN系统。系统“基线+++”包括表9中的检测框精修,全局上下文和多尺度测试。
表11. PASCAL VOC 2012测试集上的检测结果(http://host.robots.ox.ac.uk:8080/leaderboard/displaylb.php?challengeid=11&compid=4)。基线是Faster R-CNN系统。系统“基线+++”包括表9中的检测框精修,全局上下文和多尺度测试。
ImageNet检测
ImageNet Detection(DET)任务涉及200个目标类别。精度由[email protected]评估。我们的ImageNet DET目标检测算法与表9中的MS COCO相同。网络在1000类ImageNet分类集上进行了预训练,并在DET数据上进行了微调。我们将验证集按照15所述拆分为两部分(val1/val2)。我们使用DET训练集和val1集来微调检测模型。 val2集合用于验证。我们不使用其他ILSVRC 2015数据。我们使用ResNet-101的单模型具有58.8%的mAP,我们的3个模型的融合在DET测试集上具有62.1%的mAP(表12)。该结果在2015年ILSVRC的ImageNet检测任务中名列第一,超过第二名,达到了8.5个点(绝对)。
表12. 我们在ImageNet检测数据集上的结果(mAP,%)。我们的检测系统是Faster R-CNN11,使用ResNet-101和表9中的改进。
C.ImageNet定位
ImageNet定位(LOC)任务17需要对目标进行分类和定位。依照5 20,我们假设图像级分类器首先被用于预测图像的类标签,并且定位算法仅考虑基于预测类的边界框预测。我们采用“每类回归”(PCR)策略5 20,为每个类学习边界框回归。我们对网络进行ImageNet分类预训练,然后对其定位进行微调。我们使用1000类的ImageNet训练集上训练网络。
我们的定位算法基于11的RPN框架进行了一些修改。与11中类别无关的方式不同,我们的定位RPN是按照每个类的形式设计的。这个RPN结束于二分类(cls)和框回归(reg)的两个共享$1 \times 1$卷积层,如11所述。与11相反,cls和reg层都是一个类。特别地,cls层具有1000维输出,每个维度都是用于预测是否存在目标类的二值逻辑回归。reg层具有1000x4维输出,由1000个类的检测框回归器组成。如11中,我们的边界框回归参考了每个位置上的多个平移不变的“锚点”框。
如同我们的ImageNet分类训练(3.4节),我们随机抽样$224 \times224$的图像块用于数据增强。我们使用256个图像的小批量进行微调。为了避免负样本过多,每个图像随机抽取8个锚点,其中采样的正负锚点的比例为1:111。对于测试,全卷积网络应用于图像。
表13比较了定位结果。遵循20,我们首先使用真值类进行“oracle”测试作为分类预测。 VGG的论文20报告了使用真值类别的center-crop的误差为33.1%(表13)。在同样的环境下,我们使用ResNet-101网络的RPN方法显着将center-crop误差降至13.3%。这个比较表明了我们框架的出色表现。通过密集(全卷积)和多尺度测试,我们使用真值类的ResNet-101错误11.7%。使用ResNet-101来预测类(4.6%的top-5分类错误,表4),top-5个定位错误是14.4%。
以上结果仅基于Faster R-CNN11中的区域提案网络(RPN)。可以使用Faster R-CNN中的检测网络(Fast R-CNN8)来改善结果。但是我们注意到,在这个数据集上,一个图像通常包含一个主要的对象,并且提案区域彼此高度重叠,因此具有非常相似的RoI池化特征。因此,Fast R-CNN8以图像为中心的训练产生了小变化的样本,这可能不适合随机训练。受此驱动,在我们目前的实验中,我们使用以RoI为中心的原始R- CNN15代替Fast R-CNN。
我们的R-CNN实现如下。我们用在训练图像上训练的每类RPN来预测真值类的边界框。这些预测框是类相关的。对于每个训练图像,提取最高得分的200个提案作为训练样本来训练R-CNN分类。图像区域从提案中剪切,缩放为$224 \times 224$像素,并像R-CNN15中的那样进入分类网络。该网络的输出由用于cls和reg的两个并列fc层组成,也是类相关的形式。这个R-CNN网络以RoI-centric以小型批量大小为256在训练集上进行了微调。对于测试,RPN为每个预测类别生成了得分最高的200个提案,而R-CNN网络用于更新这些提案的分数和检测框位置。
表13. ImageNet验证集的定位错误(%)。在“LOC error on GT class”([41])这一列中,使用了真值类。在“test”这一列中,“1-crop”表示对$224 \times 224$像素的中心裁剪进行测试,“dense”表示密集(全卷积)和多尺度测试。
表14. ImageNet数据集上的定位误差(%)与最先进的方法进行比较。
该方法将top-5定位误差降低到10.6%(表13)。这是我们在验证集上的单模型结果。使用融合网络进行分类和定位,我们在测试集上实现了9.0%的top-5定位错误。这个数字显著地超出了ILSVRC 14的结果(表14),64%的误差相对减少。该结果在ILSVRC 2015的ImageNet定位任务中荣获第一名。
参考文献:
-
Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard, W. Hubbard, and L. D. Jackel. Backpropagation applied to hand-written zip code recognition. Neural computation, 1989. ↩
-
A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
W. Venables and B. Ripley. Modern applied statistics with s-plus. 1999. ↩ ↩2
-
N. N. Schraudolph. Centering neural network gradient factors. In Neural Networks: Tricks of the Trade, pages 207–226. Springer, 1998. ↩
-
P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11
-
R. K. Srivastava, K. Greff, and J. Schmidhuber. Training very deep networks. 1507.06228, 2015. ↩ ↩2 ↩3
-
S. Ioffe and C. Szegedy. Batch normalization: Accelerating deep network training by reducing internal covariate shift. In ICML, 2015. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
R. Girshick. Fast R-CNN. In ICCV, 2015. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
K. He and J. Sun. Convolutional neural networks at constrained time cost. In CVPR, 2015. ↩
-
S. Gidaris and N. Komodakis. Object detection via a multi-region & semantic segmentation-aware cnn model. In ICCV, 2015. ↩ ↩2 ↩3 ↩4
-
S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. In NIPS, 2015. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8 ↩9 ↩10 ↩11 ↩12 ↩13 ↩14 ↩15 ↩16
-
J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015. ↩
-
G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R. R. Salakhutdinov. Improving neural networks by preventing coadaptation of feature detectors. arXiv:1207.0580, 2012. ↩
-
Y. Bengio, P. Simard, and P. Frasconi. Learning long-term dependencies with gradient descent is difficult. IEEE Transactions on Neural Networks, 5(2):157–166, 1994. ↩
-
R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
Y. LeCun, L. Bottou, G. B. Orr, and K.-R. Müller. Efficient backprop. In Neural Networks: Tricks of the Trade, pages 9–50. Springer, 1998. ↩
-
O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, et al. Imagenet large scale visual recognition challenge. arXiv:1409.0575, 2014. ↩ ↩2
-
K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV, 2014. ↩ ↩2 ↩3 ↩4 ↩5 ↩6
-
I. J. Goodfellow, D. Warde-Farley, M. Mirza, A. Courville, and Y. Bengio. Maxout networks. arXiv:1302.4389, 2013. ↩
-
K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
C. M. Bishop. Neural networks for pattern recognition. Oxford university press, 1995. ↩ ↩2
-
S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun. Object detection networks on convolutional feature maps. arXiv:1504.06066, 2015. ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
A. Vedaldi and B. Fulkerson. VLFeat: An open and portable library of computer vision algorithms, 2008. ↩ ↩2 ↩3
-
Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv:1408.5093, 2014. ↩
-
A. Romero, N. Ballas, S. E. Kahou, A. Chassang, C. Gatta, and Y. Bengio. Fitnets: Hints for thin deep nets. In ICLR, 2015. ↩ ↩2 ↩3
-
A. Krizhevsky. Learning multiple layers of features from tiny images. Tech Report, 2009. ↩ ↩2
-
H. Jegou, F. Perronnin, M. Douze, J. Sanchez, P. Perez, and C. Schmid. Aggregating local image descriptors into compact codes. TPAMI, 2012. ↩ ↩2
-
F. Perronnin and C. Dance. Fisher kernels on visual vocabularies for image categorization. In CVPR, 2007. ↩
-
K. Chatfield, V. Lempitsky, A. Vedaldi, and A. Zisserman. The devil is in the details: an evaluation of recent feature encoding methods. In BMVC, 2011. ↩
-
T. Vatanen, T. Raiko, H. Valpola, and Y. LeCun. Pushing stochastic gradient towards second-order methods–backpropagation learning with transformations in nonlinearities. In Neural Information Processing, 2013. ↩
-
H. Jegou, M. Douze, and C. Schmid. Product quantization for nearest neighbor search. TPAMI, 33, 2011. ↩
-
W. L. Briggs, S. F. McCormick, et al. A Multigrid Tutorial. Siam, 2000. ↩ ↩2
-
C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich. Going deeper with convolutions. In CVPR, 2015. ↩ ↩2
-
R. Szeliski. Fast surface interpolation using hierarchical basis functions. TPAMI, 1990. ↩ ↩2
-
C.-Y. Lee, S. Xie, P. Gallagher, Z. Zhang, and Z. Tu. Deeply-supervised nets. arXiv:1409.5185, 2014. ↩ ↩2 ↩3
-
N. N. Schraudolph. Accelerated gradient descent by factor-centering decomposition. Technical report, 1998. ↩
-
A. M. Saxe, J. L. McClelland, and S. Ganguli. Exact solutions to the nonlinear dynamics of learning in deep linear neural networks. arXiv:1312.6120, 2013. ↩
-
T. Raiko, H. Valpola, and Y. LeCun. Deep learning made easier by linear transformations in perceptrons. In AISTATS, 2012. ↩
-
R. Szeliski. Locally adapted hierarchical basis preconditioning. In SIGGRAPH, 2006. ↩
-
R. K. Srivastava, K. Greff, and J. Schmidhuber. Highway networks. arXiv:1505.00387, 2015. ↩
-
S. Hochreiter and J. Schmidhuber. Long short-term memory. Neural computation, 9(8):1735–1780, 1997. ↩
-
V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In ICML, 2010. ↩
-
K. He, X. Zhang, S. Ren, and J. Sun. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification. In ICCV, 2015. ↩ ↩2
-
X. Glorot and Y. Bengio. Understanding the difficulty of training deep feedforward neural networks. In AISTATS, 2010. ↩ ↩2
-
M. Lin, Q. Chen, and S. Yan. Network in network. arXiv:1312.4400, 2013. ↩
-
B. D. Ripley. Pattern recognition and neural networks. Cambridge university press, 1996. ↩
-
M. Everingham, L. Van Gool, C. K. Williams, J. Winn, and A. Zisserman. The Pascal Visual Object Classes (VOC) Challenge. IJCV, pages 303–338, 2010. ↩
-
T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollár, and C. L. Zitnick. Microsoft COCO: Common objects in context. In ECCV. 2014. ↩