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

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

开始

成就

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

介绍

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

残差结构

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

定义block

【没有哪个港口是永远的停留~论文解读】ResNet
【没有哪个港口是永远的停留~论文解读】ResNet
其中:X是输入,Y是输出,F是要学习的函数,可以是多层,单层没啥用,相同维度用上公式,反之下公式

网络结构:

【没有哪个港口是永远的停留~论文解读】ResNet
可以注意到:
VGG-19(196亿FLOPs)作为参考
中间:具有34个参数层(36亿FLOP)的普通网络)。
右:具有34个参数层(36亿FLOP)的剩余网络)
shotcut:有1X1卷积匹配尺寸
【没有哪个港口是永远的停留~论文解读】ResNet

恒等映射(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
【没有哪个港口是永远的停留~论文解读】ResNet

实验二

ResNet-34 A)零填充 shortcuts方式用于增加尺寸,所有 shortcuts方式都是无参数的(与表2和图相同。 右4);
ResNet-34 B)投影 shortcuts方式用于增加尺寸,其他 shortcuts方式是标识;
ResNet-34 C)所有 shortcuts方式都是投影。
【没有哪个港口是永远的停留~论文解读】ResNet

表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)。
【没有哪个港口是永远的停留~论文解读】ResNet

这三层是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)。
【没有哪个港口是永远的停留~论文解读】ResNet
50/101/152层的Res Net比34层的Res Net 更精确(表3和表4)。 我们没有观察到退化问题,因此从大大增加的深度中获得了显著的精度增益。 所有评价指标都见证了深度的好处(表3和表4)。

SOTA
在提交时只有两个152层的模型,赢得了ILSVRC2015的第一名。
【没有哪个港口是永远的停留~论文解读】ResNet

实验四 CIFAR-10 and Analysis

我们对CIFAR-10数据集[20]进行了更多的研究,该数据集包括10个类中的50k训练图像和10k测试图像。 我们提出了在训练集上训练的实验,并在测试集上进行了评估。 我们的重点是非常深的网络的行为,但不是推动最先进的结果,所以我们故意使用简单的体系结构如下。
【没有哪个港口是永远的停留~论文解读】ResNet

网络模型:图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层网络差,尽管有类似的训练误差。论文关于这个现象说法还都只是猜测】
    【没有哪个港口是永远的停留~论文解读】ResNet
    【没有哪个港口是永远的停留~论文解读】ResNet
响应是每3×3层的输出,在BN之后和其他非线性(ReLU/加法)之前。

对于ResNet,残差函数的响应强度。
【没有哪个港口是永远的停留~论文解读】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的标准度量[email protected][.5,.95]
【没有哪个港口是永远的停留~论文解读】ResNet

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

附录