ResNetDeep Residual Learning for Image Recognition 核心思想解读
Posted 浅然言而信
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ResNetDeep Residual Learning for Image Recognition 核心思想解读相关的知识,希望对你有一定的参考价值。
论文名称:Deep Residual Learning for Image Recognition
论文链接:链接
目录
一、问题描述
该篇文章主要解决的是一个随着网络层数的增加,出现退化问题(性能反而下降了)问题。
这个问题并不是因为你的层数增加,模型变复杂而导致的过拟合问题,因为过拟合会导致训练误差变低,测试误差变高,但是实际上以上问题的训练误差也变高了,所以这并不是一个过拟合现象。
二、解决办法
提出了深度残差网络,首先需要学的东西为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
Saliency Detection: A Spectral Residual Approach