残差网络

作者: SmallRookie | 来源:发表于2018-06-09 22:10 被阅读9次

Residual Network


原文:Deep Residual Learning for Image Recognition

博文参考:

代码参考:https://github.com/tornadomeet/ResNet


简介

深度卷积神经网络的出现使得图像分类问题的研究突飞猛进,但随之也出现了两个问题:

  • 梯度消失、爆炸问题;
  • 退化问题(degradation problem)。

前者,通常在初始化时,对数据进行归一化处理,以及添加正则化层处理。而后者,实验表明除了在浅层网络模型的基础上添加恒等映射(identity mapping)来构建深度网络模型之外,作者还没有找到其他的好的解决方案。


退化问题:随着网络层数的增加,模型准确度达到某一值后迅速降低,如下图一所示:

其中,y和x均为残差块所在层的输入与输出向量,函数F(x, {Wi})为训练残差映射所学习到的。

以图二的残差块为例,其残差函数为F=W2sigma(W1x),其中sigma表示ReLU激活函数,出于简化省略偏置项。对于F(x)+x运算,由一个shortcut connection和以element-wise方式累加实现的,其值为二阶非线性。

对于y=F(x,{Wi})+x,要求x与F维数相同。若出现维数不同的情况,则在shortcut connection上添加一个线性投影Ws来匹配维度:

注:残差函数F同样适用于卷积层,且形式灵活。

网络结构

Plain Network

卷积层的filter大多为3*3大小,且遵循两个设计原则:

  • 对于相同大小的输出特征图,其层需含有相同数量的filter;
  • 若特征图的大小减半,则filter的数量需翻倍,以保证每层的时间复杂度。

在卷积层上以步长为2进行下采样操作。在网络末端以全局的均值池化层和1000个激活函数为softmax函数的全连接层结束。含权重的层总数为34层。

ResNet

在plain network的基础上添加shortcut connection,将网络变为ResNet。当维度增加时,可考虑如下两个方法:

  • 使用0来填补增加的维数,且此方法不会引入额外参数;
  • 在shortcut connection上添加一个线性投影Ws来匹配维数(通过卷积核大小为1*1的卷积实现)。

对于以上两种方法,其步长均为2。


注:

对于添加线性投影,实际上有两种情况:

  • 只对维数增加的数据进行处理;
  • 对所有数据进行处理。

后续实验表明,后者比前者效果好,但引入了额外参数,且线性投影与退化问题无关。因此,为了降低内存的使用、时间复杂度以及模型大小,作者采用前者进行处理。


相关文章

  • 残差网络

  • 残差网络

    Residual Network 原文:Deep Residual Learning for Image Reco...

  • 残差网络

    残差网络(Residual Network简称ResNet)是在2015年继Alexnet Googlenet V...

  • 秒懂深度残差收缩网络

    深度残差收缩网络(Deep Residual Shrinkage Networks),是深度残差网络或者说Sque...

  • 残差网络 resnet

    1) 优点 残差网络更容易优化,并且能够通过增加相当的深度来提高准确率。(网络越深,提取到的特征越多,表达能力越强...

  • 残差网络理解

    何为残差网络? 为什么使用残差结构之后的深度学习网络深度跳跃式? 理解: 原来的网络网络映射的方式是: z= Z(...

  • ResNet 残差网络

    一、引言 由于深度学习的广泛应用,出现了一个新问题:训练一个更好的网络是否和堆叠更多的层一样简单呢?解决这一问题的...

  • 残差网络(ResNet)

    残差操作这一思想起源于论文《Deep Residual Learning for Image Recognitio...

  • 残差网络RseNet

    残差网络解决了什么问题 残差网络 是为了解决深度神经网络(DNN)隐藏层过多时的网络退化问题而提出。退化(degr...

  • 残差网络ResNet

    (一)ResNet 残差网络 这是卷积神经网络中的巨佬,它能够将网络做到上百层。更深更大的网络。那他是怎么设计出来...

网友评论

    本文标题:残差网络

    本文链接:https://www.haomeiwen.com/subject/lvfmsftx.html