CSDN话题挑战赛第2期
参赛话题:学习笔记
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢?
论文
Deep Residual Learning for Image Recognition
论文地址
https://openaccess.thecvf.com/content_cvpr_2016/papers/He_Deep_Residual_Learning_CVPR_2016_paper.pdf
摘要
本文提出了一个残差学习框架,以简化网络的训练,这些网络比以前使用的网络更深。我们明确地将层重新表示为参考层输入的学习残差函数,而不是学习未参考函数。我们提供了全面的经验证据,表明这些残差网络更容易优化,并且可以从深度显著增加中获得精度。
网络结构
普通基线(plain network):(中图)主要受VGG网络[40]的理念启发(左图)。卷积层大多具有3×3滤波器,并遵循两个简单的设计规则:
1.对于相同的输出特征图大小,层具有相同数量的滤波器;
2.如果特征图大小减半,则滤波器的数量加倍,以保持每层的时间复杂度。我们通过步长为2的卷积层直接执行下采样。
网络以全局平均池层和1000路全连接层结束。加权层的总数在图3(中间)中为34
本文的模型比VGG网络有更少的过滤器和更低的复杂度。基础网络有36亿的FLOPS,仅为VGG-19的18%
残差网络
基于基线网络(plain network),插入shortcut层:当输入和输出具有相同尺寸时,可以直接使用同一快捷方式(实线)
当维度增加(输入输出不同)时,可以选择在维度少的矩阵中填充0或者增加一个额外的矩阵(维度为n*m)。当跳跃连接跨越这两种大小的特征映射时,它们的步长stride为2(虚线)
实验
ImageNet分类
在ImageNet2012分类数据集[35]上评估了我们的方法,该数据集包含1000个类。模型在128万张训练图像上进行训练,并在50k的验证图像上进行评估,评估了Top-1和top-5的错误率。
与未加skip connection的基础网络比较
较深的34层基础网络比较浅的18层基础网络具有更高的验证误差
尽管18层基础网络的解空间是34层基础网络解空间的子空间,但34层基础网络在整个训练过程中具有较高的训练误差。
推测:深基础网络可能具有指数级的低收敛速度,影响了训练误差,问题不能通过简单地使用更多的迭代来解决(未来研究的一个方向)
残差网络
1、对18层和34层残网络(ResNets)进行了比较,在基础网络中对所有shortcut使用标识映射,对增加维度使用零填充(选项A)。因此,与普通的对应方式相比,它们没有额外的参数。
34层ResNet比18层ResNet好(2.8%)。更重要的是,34层ResNet显示出相当低的训练误差,并可推广到验证数据。
这表明,在这种设置下,退化问题得到了很好的解决,我们设法通过增加深度获得了精度的提高。
2、其次,与普通ResNet相比,34层ResNet减少了3.5%的top-1误差,这是由于ResNet成功地减少了训练误差。
表明残差学习在极深系统上的有效性。
3、18层普通/残差网络相对来说误差是相近的(表2),但18层ResNet收敛更快(图4左右对比)。当网络“不是太深”(这里是18层),当前SGD求解器仍然能够找到普通网的良好解决方案。
在这种情况下,ResNet通过在早期提供更快的收敛来简化优化。
Identity shortcut 和 projection shortcut
(A)使用零填充的快捷方式来增加维度,并且所有的shortcut都是无参数的;
(B)projection shortcut用于增维,其他捷径为Identity shortcut;
©所有的shortcut都是projection shortcut;
这三种方式进行比较:
1、它们比普通方式(plain network)要好很多
2、性能c>b>a 但abc之间的差异很小,
说明projection shortcut对于解决退化问题并不是必要的。
更深层次的瓶颈架构
无参数的Identity shortcut方式对于瓶颈架构特别重要。
如果将图(右)中的恒等快捷方式替换为投影,可以看出,由于该shortcut连接到两个高维端点,时间复杂度和模型大小都翻倍了。
因此,identity shortcut为瓶颈设计带来了更有效的模型。
50层Resnet
我们用这个3层瓶颈块替换34层网络中的每个2层块,得到50层ResNet(上表)。我们使用选项B来增加维度。这个模型有38亿个flop。
101层和152层Resnet
我们使用更多的3层块来构建101层和152层ResNet(上表)。
值得注意的是,虽然深度显著增加,但152层ResNet(113亿FLOPs)的复杂度仍然低于VGG-16/19网(153/196亿FLOPs)
从大幅增加的深度中获得显著的精度提高。所有评估指标都见证了深度的好处。
与最先进的方法相比
基线34层ResNets达到了非常有竞争力的准确性。我们的152层ResNet单模型top-5验证误差为4.49%。该单模型结果优于以往所有集成结果。
将6个不同深度的模型组合成一个集成(最后只有两个152层集成在一起)top-5误差为3.57%(比赛第一)
CIFAR-10数据集分析
该数据集由10个类中的50k训练图像和10k测试图像组成。我们在训练集上进行实验训练,并在测试集上进行评估。
本文使用0.0001的权值衰减和0.9的动量,并在[12]和BN[16]中采用权值初始化,但没有dropout。这些模型在两个gpu上用128的小批大小进行训练。
我们从0.1的学习率开始,在32k和48k迭代时除以10,在64k迭代时终止训练,这是由45k/5k的train/val分割决定的。
我们遵循[24]中的简单数据增强进行训练:每边填充4个像素,从填充图像或其水平翻转中随机抽样3个2×32裁剪。为了测试,我们只评估原始32×32图像的单个视图。
我们比较n ={3, 5, 7, 9},得到20,32,44和56层(6n+2)网络。上图(左)显示了普通基础网络的行为。较深的普通基础网受深度增加的影响,在向深部发展时训练误差较大。这表明,优化网络深度是一个基本问题。
加上resnet之后的网络,成功地克服了优化的困难,并在深度增加时证明了准确性的提高。
进一步探索了n=18的110层的ResNet,初始学习速率0.1略大,无法开始收敛。所以我们用0.01来热身训练,直到训练误差低于80%(约400次迭代),然后回到0.1继续训练。剩下的学习进度和之前一样,110层网络的收敛性很好。与FitNet[34]和Highway[41]等其他深度和thin网络相比,它的参数较少,但也是最先进的结果之一。
层响应分析
响应是BN(批量归一化)之后和其他非线性(ReLU/加法)之前每个3×3层的输出。对于RESNET,该分析揭示了剩余函数的响应强度。
上图示出了Resent通常比它们的plain network具有更小的响应。即残差函数通常比非残差函数更接近零
较深的ResNet具有较小的响应幅度,如图中ResNet-20、56和110之间的比较所示。当存在更多层时,单个ResNet层倾向于较少地修改信号。
探索超过1000层
我们设置n=200,这导致了1202层网络,该网络如上所述进行训练。我们的方法没有显示出优化困难,并且该103层网络能够实现<0.1%的训练误差,测试误差仍然很好。
但在这种激进的深度模型上,仍然存在一些问题。这个1202层网络的测试结果比110层网络差,尽管两者都有相似的训练误差。
我们认为这是因为过度拟合。对于这个小数据集,1202层网络可能不必要地大(19.4M)。应用强正则化,如maxout[9]或dropout[13],以获得该数据集的最佳结果([9,25,24,34])。
将在未来进行研究 结合更强的正则化可能会改善结果,
基于PASCAL VOC2007/2012和MS COCO的目标检测
本文方法在其他识别任务上具有良好的泛化性能。
上表和下表显示了PASCAL VOC 2007和2012[5]以及COCO[26]的目标检测基线结果。我们采用更快的R-CNN[32]作为检测方法。
对用ResNet-101替代VGG-16[40]改进。使用两种模型的检测实现是相同的,因此增益只能归因于更好的网络。
在具有挑战性的COCO数据集上,我们获得了COCO标准度量(mAP@[5,95])的6.0%的增长,相对改进28%(6/21.2)。这种增益完全是由于学习的表示。
成就
基于深度残差网络,在ILSVRC和COCO 2015竞赛中获得了多个赛道的第一名:ImageNet检测、ImageNet定位、COCO检测和COCO分割。