ResNet-50网络理解

本文主要针对ResNet-50对深度残差网络进行一个理解和分析
ResNet已经被广泛运用于各种特征提取应用中,当深度学习网络层数越深时,理论上表达能力会更强,但是CNN网络达到一定的深度后,再加深,分类性能不会提高,而是会导致网络收敛更缓慢,准确率也随着降低,即使把数据集增大,解决过拟合的问题,分类性能和准确度也不会提高。Kaiming大神等人发现残差网络能够解决这一问题。这里首先放上一张ResNet的各种网络结构图(图1):
ResNet-50网络理解_第1张图片
重点说明一下ResNet-50,可以看到图1中所示,ResNet-50经过了4个Block,每一个Block中分别有3,4,6,3个Bottleneck,这里zyyupup给出了一张自己制作的网络图,我觉得这张图足够解释清楚ResNet-50(图2):

现在来看一下这个网络图,

  1. 首先输入的图片是3×224×224,也就是3个通道,图片尺寸为224×224;
  2. 进入第一个卷积层,卷积核大小为7*7,卷积核个数为64,步长为2,padding为3;所以输出应该是(224-7+2×3)/2+1=112.5,向下取整得到112,所以输出是 64 ×112 ×112;
  3. maxpool层会改变维度,但是不会影响个数

到此即将进入第一个实线方框中,图1中结构所示,第一个实线方框中本来应该有3个Bottleneck,图2作者只画出两个,其实每一个Bottleneck里面包含两种Block,第一种是Conv Block,一种是Identity Block。
首先说说Conv Block,也就是第一个实线方框中虚线连接的三层:
ResNet-50网络理解_第2张图片
可以看到,总体的思路是先通过1×1的卷积对特征图像进行降维,做一次3×3的卷积操作,最后再通过1×1卷积恢复维度,后面跟着BN和ReLU层;虚线处用256个1×1的卷积网络,将maxpool的输出降维到255×56×56。
再说Identity Block
ResNet-50网络理解_第3张图片
也就是实线连接所示,不经过卷积网络降维,直接将输入加到最后的1×1卷积输出上。

经过后面的Block,经过平均池化和全连接,用softmax实现回归。

对卷积、特征图、通道等理解可以参考:
https://blog.csdn.net/weixin_43430243/article/details/89512069

你可能感兴趣的:(计算机视觉,图片分类)