为什么ResNet深度残差网络广受好评呢?

一、简介

何凯明大神在CVPR 2016上发表的《Deep Residual Learning for Image Recognition 图像识别中的深度残差学习网络》深受工业界的欢迎,自提出以来已经成为工业界最受欢迎的卷积神经网络结构。在coco目标检测任务中提升28%的精度,并基于ResNet夺得ILSVRC的检测、定位,COCO 的检测和分割四大任务的冠军。接下来就一起来看这个广受好评的Resnet

二、论文解读

摘要原文:

Deeper neural networks are more difficult to train. We present a residual learning framework to ease the training of networks that are substantially deeper than those used previously. We explicitly reformulate the layers as learning residual functions with reference to the layer inputs, instead of learning unreferenced functions. We provide comprehensive empirical evidence showing that these residual networks are easier to optimize, and can gain accuracy from considerably increased depth. On the ImageNet dataset we evaluate residual nets with a depth of up to 152 layers—8× deeper than VGG nets [41] but still having lower complexity. An ensemble of these residual nets achieves 3.57% error on the ImageNet test set. This result won the 1st place on the ILSVRC 2015 classification task. We also present analysis on CIFAR-10 with 100 and 1000 layers. The depth of representations is of central importance for many visual recognition tasks. Solely due to our extremely deep representations, we obtain a 28% relative improvement on the COCO object detection dataset. Deep residual nets are foundations of our submissions to ILSVRC & COCO 2015 competitions1 , where we also won the 1st places on the tasks of ImageNet detection, ImageNet localization, COCO detection, and COCO segmentation.

摘要核心:

  • 1. 提出问题:深度卷积网络难训练
  • 2. 本文方法:残差学习框架可以让深层网络更容易训练
  • 3. 本文优点:ResNet易优化,并随着层数增加精度也能提升
  • 4. 本文成果:ResNet比VGG深8倍,但是计算复杂度更低,在ILSVRC-2015获得3.57%的top-error 5. 本文其它工作:CIFAR-10上训练1000层的ResNet
  • 6. 本文其它成果:在coco目标检测任务中提升28%的精度,并基于ResNet夺得ILSVRC的检测、定位,COCO 的检测和分割四大任务的冠军

 为什么要使用这样一种残差结构呢?

我们往往认为越深的网络拟合能力越强,因此越深的网络训练误差应该越低,但实际相反。如下图所示。实际上的原因并非是因为过拟合导致的,而是网络优化困难。

 因为提出一种残差结构来解决网络退化的能力,于此同时也解决了由于网络的加深从而带来的一些梯度问题。

三、残差结构

如上图所示,当输入为x时,其学习到的特征记为H(x),现在我们希望其可以学习到残差F(x)=H(x)-x,这样其实原始的学习特征是F(x)+x 。当残差为0时,此时堆积层仅仅做了恒等映射,至少网络性能不会下降,实际上残差不会为0,这也会使得堆积层在输入特征基础上学习到新的特征,从而拥有更好的性能。因此Residual learning:让网络层拟合H(x)-x, 而非H(x)

整个building block仍旧拟合H(x) ,注意区分building block与网络层的差异,两者不一定等价

 为什么要网络层拟合H(x)-x?

答:提供building block更容易学到恒等映射(identity mapping)的可能

为什么要恒等映射?

答:让深度网络不至于比浅层网络差

三、恒等映射 

  左图代表一个浅层网络-18层 ,右图代表一个深层网络-34层,蓝色框我们可认为是额外增加层

思考一下,如果蓝色框里的网络层能学习到恒等映射,34层网络至少能与18层网络有相同性能 那么我们如何让额外的网络层更容易的学习到恒等映射?

答:skip connection == residual learning == shortcut connection

 上图所示,若F(x)=0 , 那么H(X) = X,网络实现恒等映射。

我们求解H(x)梯度,梯度为xxx + 1。恒等映射使得梯度畅通无阻的从后向前传播,这使得ResNet结构可达到上千层。

四、Shortcut mapping 

因为我们最后有一个相加的操作,x输入到卷积层后通道数有可能会发生改变,那么在相加的时候,原始x和经过layer后的x通道数不一致是无法完成相加,针对这种问题,作者提出了三种解决方案

  • (A) zero-padding shortcuts are used for increasing dimensions, and all shortcuts are parameter-free  全零填充:维度增加的部分采用零来填充
  • (B) projection shortcuts are used for increasing dimensions, and other shortcuts are identity网络层映射:当维度发生变化的时候,通过网络映射的方式(例如1*1卷积)至相同的维度
  • (C) all shortcuts are projections. 所有的shortcuts均通过网络映射

 根据文章给出的实验数据结果,我们可以发现三种方案A<B<C   整体B和C效果相差不大,最终采用了B方案。

五、ResNet结构

 ResNet结构 划分为6个stage ,其中中间4个阶段为残差结构堆叠 ,对于残差结构堆叠方式有两种

  • Basic:两个3*3卷积堆叠   上图黄框1
  • Bottleneck:利用1*1卷积减少计算量    上图黄框2

右边 Bottleneck: 第一个1*1下降1/4通道数  第二个1*1提升4倍通道数

六、论文总结

 引入shortcut connection,让网络信息有效传播,梯度反传顺畅,使得数千层卷积神经网络都可以收敛 。注意是引入了而不是原创。在本文中:shortcut connection == skip connection == identity  mapping

 启发点:

  • 1. 大部分的梯度消失与爆炸问题,可通过良好初始化或者中间层的标准化来解决。
  • 2. shortcut connection有很多种方式,本文主要用的是恒等映射,即什么也不操作的往后传播
  • 3.借鉴VGG,本文模型设计原则:1.处理相同大小特征图,卷积核数量一样;2.特征图分辨率降低时,通道数翻倍
  • 4. 训练时,我们可以考虑本文种用到的预热训练Warm up

!!我们根据文章提供的超参数设置和训练tricks很容易就能达到文章中的实验结果,不像其他网络,我们的训练结果和论文中的实验结果达到相似十分困难。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>