论文信息
论文名称:Deep Residual Learning for Image Recognition
论文地址:https://arxiv.org/pdf/1512.03385.pdf
发表期刊:CVPR
发表年份:2016
主要问题
在引言中作者提出了一个问题:训练一个更好的网络是否像堆叠更多的层一样容易?答案当然是否定的,因为在网络训练的过程中存才梯度消失
和梯度爆炸
的问题,这个问题阻碍了网络的收敛。当然梯度消失和梯度爆炸的问题很大程度上通过初始归一化
和中间层归一化
解决了。
但是当更深层的网络收敛后,网络退化
的问题暴露了出来:当网络层数增加,精度先饱和,然后急剧下降。这并不是由过拟合引起的(这也是本文着重需要解决的问题
)。如图所示,当往一个适当深度的网络中添加层时,网络的训练误差会上升。
为了解决这个问题作者提出了基于残差结构的残差网络。
主要工作——两种残差结构
作者设计了两种残差结构,作为残差网络的基本结构。
左侧的网络包含两个残差层,右侧的包含三个残差层,左侧的用在ResNet-18和ResNet-34中,右侧的用在ResNet-50\101\152中。当作者在文章和特地强调了下,残差结构包含更多的残差层也是可以的,但如果只有一层的话与其他网络相比没有任何优势。
主要工作——两种网络
为了方便实验对比,作者根据VGG网络搭建了不含残差结构的Plain Network。(下图中间),作者在Plain Network的基础上加入残差结构,就得到了Residual Network。这里面有两个注意点:①虚线部分的残差连接需要进行维度升降
,②在每一个卷积层后面加上Batch Normalization(BN)
作者设计了五种残差网络结构,如下图所示:
identity shortcut和projection shortcut方式对比
作者在文中提到两种shortcut 方式:
(1)identity shortcut: 一种不需要extra parameters的shortcut
(2)projection shortcut: 一种需要extra parameters的shortcut
作者给出了三种方案,并进行了实验对比:
A:都是identity,zero-padding来升维,所有shortcuts都没有参数要学
B:projection来升维,其他都是identity
C:所有都是projection
举例说明:
(1)在输入输出维度一样的时候:比如14x14x64 – > 14x14x64
identity shortcut会原封不动把x传出去,projection shortcut通过64个1x1x64的filter,映射到输出。这些projection 的filters都是需要learn的。
(2)在输入输出维度不一样的时候: 比如14x14x64 – > 7x7x128
identity shortcut会先把14x14x64 downsample到7x7x64。 然后和输出差的那64个feature map全部zero padding补上,以实现free of parameters的前提。projection shortcut会用128个1x1x64的filters搭配上stride 2实现空间降维,深度升维的骚操作。然而这个也是需要learn的。
参考文献
https://blog.csdn.net/Pcl2001/article/details/125177750
https://blog.csdn.net/m0_50143220/article/details/113488457(identity和projection shortcut对比)
https://blog.csdn.net/weixin_44381334/article/details/106659787(identity和projection shortcut对比)