赞
踩
本文主要针对ResNet-50对深度残差网络进行一个理解和分析
ResNet已经被广泛运用于各种特征提取应用中,当深度学习网络层数越深时,理论上表达能力会更强,但是CNN网络达到一定的深度后,再加深,分类性能不会提高,而是会导致网络收敛更缓慢,准确率也随着降低,即使把数据集增大,解决过拟合的问题,分类性能和准确度也不会提高。Kaiming大神等人发现残差网络能够解决这一问题。这里首先放上一张ResNet的各种网络结构图(图1):
重点说明一下ResNet-50,可以看到图1中所示,ResNet-50经过了4个Block,每一个Block中分别有3,4,6,3个Bottleneck,这里zyyupup给出了一张自己制作的网络图,我觉得这张图足够解释清楚ResNet-50(图2):
【评论中很多朋友说画错了,这张图确实是有问题哈,我当初写这个博是为了帮助自己理解ResNet-50和卷积操作的,俺就不在图片作者zyyupup的基础上再改了,大家懂这个过程就行~】
现在来看一下这个网络图,
到此即将进入第一个实线方框中,图1中结构所示,第一个实线方框中本来应该有3个Bottleneck,图2作者只画出两个,其实每一个Bottleneck里面包含两种Block,第一种是Conv Block,一种是Identity Block。
首先说说Conv Block,也就是第一个实线方框中虚线连接的三层:
可以看到,总体的思路是先通过1×1的卷积对特征图像进行降维,做一次3×3的卷积操作,最后再通过1×1卷积恢复维度,后面跟着BN和ReLU层;虚线处用256个1×1的卷积网络,将maxpool的输出降维到255×56×56。
再说Identity Block,
也就是实线连接所示,不经过卷积网络降维,直接将输入加到最后的1×1卷积输出上。
经过后面的Block,经过平均池化和全连接,用softmax实现回归。
对卷积、特征图、通道等理解可以参考:
https://blog.csdn.net/weixin_43430243/article/details/89512069
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。