论文地址:  resnet 论文原文地址

文献翻译地址:https://blog.csdn.net/Quincuntial/article/details/77263562?locationNum=6

网络深度为何重要?

因为CNN能够提取low/mid/high-level的特征,网络的层数越多,意味着能够提取到不同level的特征越丰富。 并且,越深的网络提取的特征越抽象,越具有语义信息 。

众所周知网络深度约深模型的拟合程度越好,但是深层的网络意味着更多的参数,更大的计算量,对计算机硬件的要求更好,为了解决随着简单增加深度出现的梯度弥散梯度爆炸,解决办法就是正则化初始化和中间的正则化层,可训练几十层的网络。但是研究发现随着网络深度的增加准确率会趋于饱和,并且快速下降,这就是退化问题,Resnet主要解决的问题是神经网络产生的退化问题。

退化

        随着网络深度(网络的层数)的增加,开始网络的准确率是增加状态,当到达一定的层数以后,当网络开始收敛时准确率先缓慢饱和然后下降,这个下降过程就是退化,它并不是由于overfitting 引起的。

Deep Residual Learning For Image Recognition

      如图所示,网络随着深度的增加(20到56),训练误差和测试误差非但没有降低,反而变大了。

Deep Residual Learning Framework

为了解决上述问题作者提出了残差模块

Deep Residual Learning For Image Recognition

通俗理解上图就是:在原来的网络基础上,每隔2层(或者3层,或者更多,这篇文章作者只做了2层和3层)的输出F(x)上再加上之前的输入x。这样做,不会增加额外的参数和计算复杂度,整个网络也可以用SGD方法进行端对端的训练。

Resnet的核心思想:计算层到层的residual,也就是F(x),然后F(x)再加上原来的输入x作为输出,最极端的情况是,当某些层学习得不如之前好的时候,F(x)为0,这些曾就直接跳过了,之前的输入直接mapping到下一个block。也就是相当于恒等映射。

 

知乎上其他解释


  • F是求和前网络映射,H是从输入到求和后的网络映射。比如把5映射到5.1,那么引入残差前是F'(5)=5.1,引入残差后是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。这里的F'和F都表示网络参数映射,引入残差后的映射对输出的变化更敏感。比如s输出从5.1变到5.2,映射F'的输出增加了1/51=2%,而对于残差结构输出从5.1到5.2,映射F是从0.1到0.2,增加了100%。明显后者输出变化对权重的调整作用更大,所以效果更好。残差的思想都是去掉相同的主体部分,从而突出微小的变化,看到残差网络我第一反应就是差分放大器.。
  • 至于为何shortcut的输入时X,而不是X/2或是其他形式。kaiming大神的另一篇文章[2]中探讨了这个问题,对以下6种结构的残差结构进行实验比较,shortcut是X/2的就是第二种,结果发现还是第一种效果好啊。

Deep Residual Learning For Image Recognition

             这种残差学习结构可以通过前向神经网络+shortcut连接实现,如结构图所示。而且shortcut连接相当于简单执行了同等映射,不会产生额外的参数,也不会增加计算复杂度。 而且,整个网络可以依旧通过端到端的反向传播训练。

shortcut的详细解释:https://cloud.tencent.com/developer/article/1148375


这种残差块有两种情形:

  • 当F和X的维度相同时,直接进行矩阵的加法就可以也就是逐项相加,公式1:   Deep Residual Learning For Image Recognition,这种方法不会增加网络的参数以及复杂度。
  • 当F和X的维度不同时,需要给X进行一个线性映射(线性映射是从一个向量空间V到另一个向量空间W的的映射并且保持加法运算和数量乘法运算。线性映射总是把线性子空间变为线性子空间,但是维度可能会改变)来匹配低维度。公式2:Deep Residual Learning For Image Recognition

网络结构

 基准网络为:基于VGGNet,采用的卷积核为3x3,其中有两个设计原则,

  1. 对于有相同的输出feature map尺寸,filter的个数相同;
  2. 当feature map尺寸减半时,filter的数量加倍。下采样的策略是直接用stride=2的卷积核。网络最后末尾是一个global average pooling layer(不需要参数,参考http://www.cnblogs.com/hejunlin1992/articles/7750759.html)和一个1000的全连接层(后面接softmax)。

 残差网络为:在基准网络的基础上,插入了shortcut connections。当输入输出具有相同尺寸时,identity shortcuts可以直接使用(实线部分),就是公式1;当维度增加时(虚线部分),有以下两种选择:A)仍然采用恒等映射(identity mapping),超出部分的维度使用0填充;B) 利用1x1卷积核来匹配维度,就是公式2。对于上面两种方案,当shortcuts通过两种大小的feature map时,采取A或B方案的同时,stride=2。

Deep Residual Learning For Image Recognition

 

相关文章: