ResNetDeep Residual Learning for Image Recognition 核心思想解读

Posted 浅然言而信

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ResNetDeep Residual Learning for Image Recognition 核心思想解读相关的知识,希望对你有一定的参考价值。

论文名称:Deep Residual Learning for Image Recognition

论文链接:链接

目录

一、问题描述

二、解决办法

三、ResNet不同架构的构成

关于ResNet-18和ResNet-34

关于ResNet-50(怎样构建更深的ResNet)


一、问题描述

该篇文章主要解决的是一个随着网络层数的增加,出现退化问题(性能反而下降了)问题。

这个问题并不是因为你的层数增加,模型变复杂而导致的过拟合问题,因为过拟合会导致训练误差变低,测试误差变高,但是实际上以上问题的训练误差也变高了,所以这并不是一个过拟合现象。

二、解决办法

提出了深度残差网络,首先需要学的东西为H(x),而假设之前浅层网络输出为x(即为浅层网络已经学到的东西),接下来需要学的不是H(x),而是F(x)=H(x)-x。也就是说之前已经学到的东西不需要再学习,只需要需要学的和之前学到的之间的残差即可(之前学到的不再需要优化)。所以最后的输出是当前网络学到的F(x)加上之前学到的x,即F(x)+x。

三、ResNet不同架构的构成

关于ResNet-18和ResNet-34

  • 五个版本的ResNet它们的conv1层、pooling层、average pool+1000的全连接层做输出是一样的
  • ResNet-18和ResNet-34中间4个block,,64代表有64个通道数,而在ResNet-34的conv2_x卷积层中有3个这样的block,每个block之间通过残差连接来实现的。
  • 为什么是34层?首先3+4+6+3=16,而每个里面又有两个所以是32层,加上conv1和最后一个全链接,即为34。
  • 从ResNet-18到ResNet-34,FLOPs(每秒浮点运算次数)翻了一倍。

下图是ResNet-34的网络结构

 

关于ResNet-50(怎样构建更深的ResNet)

  • 引入bottleneck结构

由于通道数的增加,使得计算复杂度大幅增加,所以利用bottleneck结构(降维、卷积、升维)

  • 降维:将256通过一个1*1的卷积映射投影回64
  • 常规卷积核的卷积:再做3*3通道数不变的卷积
  • 升维:最后投影回256(因为输入通道数是256,所以输出要与之匹配)

通过bottleneck结构可以看出50和34的计算复杂度差不多。

  • 从ResNet-34到ResNet-50虽然最后输出的通道数从512到2048翻了4倍,但它们的FLOPs(每秒浮点运算次数)却差不多。

 

以上是关于ResNetDeep Residual Learning for Image Recognition 核心思想解读的主要内容,如果未能解决你的问题,请参考以下文章

2019/11/21 Residual Learning论文学习

论文学习:Deep residual learning for image recognition

论文笔记之: Wide Residual Networks

Saliency Detection: A Spectral Residual Approach

Deep Residual Learning for Image Recognition

论文笔记:Deep Residual Learning