【没有哪个港口是永远的停留~论文解读】ResNet

文章地址:《Deep Residual Learning for Image Recognition》

开始

成就

ILSVRC和COCO2015比赛 ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation. 的第一名

介绍

在这里插入图片描述

残差结构

如图
剩余函数 : H ( x ) = F ( x ) + x H(x) = F(x) + x H(x)=F(x)+x
其中:x是输入,H(x)是输出,F(x)是中间层

定义block

在这里插入图片描述
在这里插入图片描述
其中:X是输入,Y是输出,F是要学习的函数,可以是多层,单层没啥用,相同维度用上公式,反之下公式

网络结构:

在这里插入图片描述
可以注意到:
VGG-19(196亿FLOPs)作为参考
中间:具有34个参数层(36亿FLOP)的普通网络)。
右:具有34个参数层(36亿FLOP)的剩余网络)
shotcut:有1X1卷积匹配尺寸
在这里插入图片描述

恒等映射(Identity Mapping)

就是说,深的网络之所以表现不好,是因为很多层都是多余的,那么通过将不必要的层置零,就会找到这个合适的恒等映射

训练

预处理:类似[21,41],下采样,其较短的侧面随机采样在[256,480]的尺度增强,随机水平翻转,随即裁剪成 224×224 大小,按每个通道减去均值,[21]中色彩增强
初始化:类似于[13]初始化权重
归一化:在卷积后激活前加一个BN层[16]
训练:从0开始 60 X 104 次迭代
优化器:SGD
批量:256
学习率: 刚开始0.1,在不继续收敛的时候降低10%
正则:0.0001
momentum:0.9
dropout:不使用,因为[16]

测试
方式:全卷积,Q={224, 256, 384, 480, 640}
测试集:Image Net2012

实验 一

在这里插入图片描述
在这里插入图片描述

实验二

ResNet-34 A)零填充 shortcuts方式用于增加尺寸,所有 shortcuts方式都是无参数的(与表2和图相同。 右4);
ResNet-34 B)投影 shortcuts方式用于增加尺寸,其他 shortcuts方式是标识;
ResNet-34 C)所有 shortcuts方式都是投影。
在这里插入图片描述

表3显示,所有三个选项都比普通选项要好得多。
B比A略好。 我们认为这是因为A中的 zero-padded 维度确实没有剩余学习。
C略优于B,我们将其归因于许多(13) projection shortcuts 方式引入的额外参数。
但A/B/C之间的微小差异表明, projection shortcuts 方式对于解决退化问题并不重要。
因此,在本文的其余部分中,我们不使用C,来降低内存/时间复杂度和模型大小。 Identity shortcuts方式对于不增加下面介绍的bottleneck架构的复杂性尤为重要

实验三
更深的 Bottleneck 架构

block 修改为 Bottleneck 设计。 对于每个剩余函数F,我们使用3层的叠加而不是2层(图5)。
在这里插入图片描述

这三层是1×1、3×3和1×1卷积,其中1层负责减少和增加(恢复)尺寸,使3层×3层成为输入/输出尺寸较小的bottleneck。 两种设计具有相似的时间复杂度。
parameter-free identity shortcuts 对于 bottleneck 架构尤为重要。 如果图中的identity shortcut 用 projection shortcut,可以显示时间复杂度和模型大小加倍,因为 shortcut 连接到两个高维端。 因此, identity shortcuts 为 bottleneck 设计提供了更有效的模型。

实验部分

50-layer ResNet: 替换 34-layer 中的 block为 3-layer Bottleneck 我们使用选项B来增加维度。 该模型有38亿FLOP。
101-layer and 152-layer ResNets: 使用更多的 3-layer blocks 值得注意的是,虽然深度显著增加,但152层ResNet(113亿FLOP)的复杂性仍然低于VGG-16/19网(15.3/19.6亿FLOP)。
在这里插入图片描述
50/101/152层的Res Net比34层的Res Net 更精确(表3和表4)。 我们没有观察到退化问题,因此从大大增加的深度中获得了显著的精度增益。 所有评价指标都见证了深度的好处(表3和表4)。

SOTA
在提交时只有两个152层的模型,赢得了ILSVRC2015的第一名。
在这里插入图片描述

实验四 CIFAR-10 and Analysis

我们对CIFAR-10数据集[20]进行了更多的研究,该数据集包括10个类中的50k训练图像和10k测试图像。 我们提出了在训练集上训练的实验,并在测试集上进行了评估。 我们的重点是非常深的网络的行为,但不是推动最先进的结果,所以我们故意使用简单的体系结构如下。
在这里插入图片描述

网络模型:图3(中/右)。 第一层为3×3个卷积步长为2,滤波器的个数分别为{16,32,64},然后特征图为 {32、16、8}, 网络以一个全局平均池、一个10路完全连接层和softmax结束
网络输入:32×32 ,每像素减均值。
shortcuts: identity shortcuts
训练参数:0.0001的权重衰减和0.9的动量,并在[13]和BN中采用权重初始化[16]但没有dropout。lr=0.1,在32k和48k迭代中除以10,在64k迭代中终止训练
批量:128
这些模型是在两个GPU上训练的。
数据增强:[24]:每边填充4个像素,从填充图像或其水平翻转中随机采样32×32 图像。
测试:我们只评估原始32×32图像

  • 我们比较了n={3,5,7,9},分别是 20,32,44和56层网络。
  • 我们进一步探索n=18,也就是110层ResNet。 在这种情况下,我们发现0.1的初始学习率略大,无法开始收敛。 因此,我们使用0.01来热身训练,直到训练误差低于80%(约400次迭代),然后回到0.1,继续训练。 其余的lr计划和以前一样。
  • 探索超过1000层。 我们探索了一个超过1000层的积极深度模型。 我们设置n=200,也就是1202层网络,这个103层网络能够达到<0.1%训练误差。 其测试误差仍然相当好(7.93%,表6)。【 但在如此激进的深度模型上仍然存在一些悬而未决的问题。 这个1202层网络的测试结果比我们的110层网络差,尽管有类似的训练误差。论文关于这个现象说法还都只是猜测】
    在这里插入图片描述
    在这里插入图片描述
响应是每3×3层的输出,在BN之后和其他非线性(ReLU/加法)之前。

对于ResNet,残差函数的响应强度。
在这里插入图片描述
resnet通常比net更接近于零。
我们还注意到,较深的ResNet具有较小的响应程度
当有更多的层时,单个的ResNet层倾向于更少地修改信号。

Object Detection on PASCAL and MS COCO

我们的方法在其他识别任务上具有良好的泛化性能。
表7和表8显示了PASCAL VOC2007和2012年[5]和COCO[26]的目标检测基线结果。
我们采用FasterR-CNN[32]作为检测方法。
在这里,我们感兴趣的是用ResNet-101取代VGG-16[41]的改进。
使用这两种模型的检测实现(见附录)是相同的,因此增益只能归因于更好的网络。
最值得注意的是,在具有挑战性的COCO数据集上,COCO的标准度量mAP@[.5,.95]
在这里插入图片描述

基于深度残差网,我们在ILSVRC和COCO2015竞赛中获得了几个方面的第一名:ImageNet detection, ImageNet localization, COCO detection,
and COCO segmentation。 详情见附录。

附录

在这一节中,我们介绍了基于基线FasterR-CNN[32]系统的检测方法。 模型由ImageNet分类模型初始化,然后对对象检测数据进行微调。 我们在ILSVRC和COCO2015检测竞赛时对ResNet-50/101进行了实验。
网络

与[32]中使用的VGG-16不同,我们的ResNet没有隐藏的FC层。
我们使用图像上的步长不大于16像素的层(即 ResNet-101中总共91个Conv层;表1)
这些层由 region proposal 网络(RPN,生成300个 proposal )共享[32]和Fast R-CNN检测网络[7]。 RoI池化[7]在conv51之前执行。 在这个RoI池化功能上,每个区域都采用Conv5x和以上的所有层,扮演VGG-16的FC层的角色。 最后的分类层被两个层(分类和框回归[7])所取代)。

对于BN层的使用,经过预训练后,我们计算了图像网训练集上每个层的BN统计量(均值和方差。 然后,在微调过程中,BN层被固定,用于对象检测。 因此,BN层成为具有恒定偏移和尺度的线性激活,BN统计量不通过微调来更新。 我们修复BN层主要是为了Fast R-CNN训练中的内存消耗。

训练及测试
PASCAL VOC

对于PASCAL VOC2007测试集,
VOC2007 5k train
VOC2012 16k train

对于PASCAL VOC2012测试集
VOC2007 10k 测试加训练总和
VOC2012 16k train

用于训练FasterR-CNN的超参数与[32]相同。 表7显示了结果。 Res Net-101比VGG-16提高了mAP>3。 这仅仅是因为ResNet学习到的改进特性。

MS COCO
简介:MS COCO数据集[26]涉及80个对象类别
标准:PASCAL VOC度量(m AP@IoU=0.5)和标准COCO度量(m AP@IoU=.5:.05:.95)。
方式: 80k 训练集图像进行训练,使用Val集上的40k图像进行评估。
批次:我们的COCO检测系统类似于PASCAL VOC。 我们用8GPU实现训练COCO模型,因此RPN步骤具有 mini-batch = 8 和 Fast R-CNN步骤 mini-batch = 16 。 将RPN步骤和FastRCNN步骤都训练为240k epochs
学习率: 0.001,然后训练为80k迭代,学习速率为0.0001。
结果与比较
表8显示了MSCOCO验证集上的结果。 ResNet-101增加了6%的mAP@[. 5],. 相对于VGG-16,这是一个28%的相对改进,完全是由更好的网络所学习的特性所贡献的。 值得注意的是,mAP@[. 5,. 95]的绝对增长(6.0%)几乎和 mAP@.5’s (6.9%)。 这表明,更深的网络可以提高识别和定位。

Object Detection 改进

在这里插入图片描述

方框的完善。 我们的方框细化部分遵循[6]中的迭代定位。 在Fast R-CNN中,最终输出是一个回归的框,它与它的 proposal box 不同。 因此,为了进行推理,我们从回归框中汇集了一个新的特征,得到了一个新的分类分数和一个新的回归框。 我们将这300个新预测与最初的300个预测相结合。 非最大抑制(NMS)应用于预测框的联合集,使用IoU阈值为0.3[8],然后是框投票[6]。 此修改 提高mAP约2%(表9)。

全局上下文。 我们结合了Fast R-CNN步骤中的全局上下文。 给定完整的图像卷积特征映射,我们通过全局空间金字塔池化[12](具有“单级”金字塔)池一个特征,该特征可以使用整个图像的 bounding box 作为RoI实现为“RoI”池。 这个集合特性被输入后RoI层以获得全局上下文特性。 此全局特征与原始的每个区域特征连接,然后是分类和框回归层。 这种新结构是端到端训练的。 全局上下文改进mAP@。 约1%(表9)。

多尺度测试。 在上面,所有的结果都是通过单尺度训练/测试得到的,就像在[32]中一样,其中图像的较短的边是=600像素。 多尺度训练/测试是[12,7]通过从特征金字塔中选择一个尺度来开发的,[33]是通过使用maxout层来开发的。 在我们目前的实现中,我们在[33]之后进行了多尺度测试;由于时间有限,我们没有进行多尺度培训。 此外,我们只对 Fast R-CNN步骤(但RPN步骤尚未)进行多尺度测试)。 利用训练后的模型,我们计算图像金字塔上的Conv特征映射,其中图像的较短边∈{200,400,600,800,1000}。我们从[33]后的金字塔中选择两个相邻的尺度。 在这两个尺度[33]的特征映射上执行RoI池和后续层,这些特征映射由maxout合并,如[33]所示。 多尺度测试提高了mAP超过2%(表9)。
Ensemble。 在FasterR-CNN中,该系统的设计是为了学习区域建议和对象分类器,因此可以使用集成来促进这两个任务。 我们使用集合来提出区域,并且联合集的建议是由一个集合的每个区域分类器处理的。 表9显示了我们基于3个网络的集合的结果。 在测试设备集上,mAP为59.0%和37.4。 该结果在COCO2015年检测任务中获得第一名。

PASCAL VOC
在这里插入图片描述

基于上述模型,我们重新看 PASCAL VOC数据集。 在COCO数据集上使用单个模型(55.7%mAP@。 表9中的5),我们在PASCAL VOC集上对这个模型进行了微调。 还采用了改进框细化、上下文和多尺度测试。 我们在PASCAL VOC2007(表10)上达到85.6%的mAP,在PASCAL VOC2012(表11)上达到83.8。 在PASCAL VOC2012上的结果比以前最先进的结果[6]高10%。

图像网检测(DET)任务

简介:涉及200个对象类别。
精度:用mAP@.5
算法:与表9中的MSCOCO相同。 在1000级图像网分类集上对网络进行预训练,并对DET数据进行微调。
数据集分配:[8]我们将验证集分为两部分(val1/val2)我们使用DET训练集和val1集对检测模型进行微调。 val2集合用于验证。
在这里插入图片描述

图像网络定位(LOC)

[36]要求对对象进行分类和定位。
我们假设首先采用图像级分类器来预测图像的类标签,而定位算法只考虑基于预测类的边界框预测。 我们采用“每类回归”(PCR)策略[40,41],为每个类学习一个边界框回归器。 我们对图像网分类的网络进行预训练,然后对它们进行微调以实现本地化。 我们在提供的1000级图像网训练集上训练网络。

我们的定位算法是基于RPN框架的[32]进行了一些修改。 与[32]中的类别无关的方式不同,我们的定位RPN是以每类形式设计的。 这个RPN以两个兄弟1×1卷积层结束,用于二进制分类(CLS)和框回归(Reg),如[32]所示。 与[32]相比,cls和reg层都是每类的。 具体来说,CLS层有一个1000d的输出,每个维度都是用于预测是否是对象类的二元Logistic回归;reg层有一个1000×4d输出,由1000个类的盒回归器组成。 与[32]一样,我们的边界框回归是指每个位置的多个translation-invariant 的“anchor”框。

如我们的图像网络分类培训(SEC 3.4),我们随机抽取224×224种crop 进行数据增强。 我们使用256 batch-size 进行微调。 为了避免负样本占主导地位,每幅图像随机采样8个anchor,其中采样的正 nchor 和负 anchor 的比例为1:1[32]。 为了测试,将网络完全卷积 应用于图像上。

表13比较了定位结果。 在[41]之后,我们首先使用地面真相类作为分类预测来执行“Oracle”测试。
在这里插入图片描述
以上结果仅基于FasterR-CNN[32]中的proposal 网络(RPN)
可以在FasterR-CNN中使用检测网络(FastR-CNN[7])来改进结果。
但是我们注意到,在这个数据集上,一个图像通常包含一个单一的主导对象,并且建议区域彼此高度重叠,因此具有非常相似的RoI池特性。 因此Fast R-CNN[7]的以图像为中心的训练产生小变化的样本,这可能不是随机训练所需要的。 基于这一点,在我们目前的实验中,我们使用了原始的RCNN[8],即以RoI为中心,代替了FastR-CNN。

我们的R-CNN实现如下。 我们将上面训练的每类RPN应用于训练图像上。 这些预测框起着依赖于class-dependent proposals 的作用。 对于每个训练图像,最高得分200个proposals 被提取为训练样本,以训练一个R-CNN分类器。 图像区域从一个proposals 中裁剪,扭曲到224×224像素,并输入到分类网络中,如R-CNN[8]。 这个网络的输出由两个用于cls和reg 层组成,也是以每类的形式。 这个R-CNN网络是微调在训练集中使用mini-batch=256以RoI为中心的方式。 对于测试,RPN为每个预测类生成最高得分200个proposals ,R-CNN网络用于更新这些proposals 的分数和框位置。

该方法将前5位定位误差降低到10.6%(表13)。 这是我们在验证集上的单模型结果。 使用分类和定位的网络集合,我们在测试集上实现了9.0%的前5位定位误差。 这一数字明显优于ILSVRC14的结果(表14),显示误差相对减少了64。 这一结果在ILSVRC2015的图像网络定位任务中获得了第一名。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值