【机器学习&深度学习】ResNet结构分析

转载自:https://blog.csdn.net/Jing_xian/article/details/78878966

 

本文主要分析残差网络(ResNet)及其变种的结构。残差网络在论文Deep Residual Learning for Image Recognition中被提出。论文链接:https://arxiv.org/pdf/1512.03385.pdf

1. Building block和Bottleneck结构 
首先resnet由building block或bottleneck组成。building block的结构如下: 

【机器学习&深度学习】ResNet结构分析


building block结构包含一个残差支路和short-cut支路,比传统的卷积结构多了一个short-cut支路,用于传递低层的信息使得网络能够训练地很深。 
bottleneck的结构如下: 

【机器学习&深度学习】ResNet结构分析


bottleneck先通过一个1x1的卷积减少通道数,使得中间卷积的通道数减少为1/4;中间的普通卷积做完卷积后输出通道数等于输入通道数;第三个卷积用于增加(恢复)通道数,使得bottleneck的输出通道数等于bottleneck的输入通道数。这两个1x1卷积有效地较少了卷积的参数个数和计算量。 
不同数量的building block或bottleneck组成了不同的resnet: 

【机器学习&深度学习】ResNet结构分析


从上图可以看到,ResNet共有5组卷积。第一组卷积的输入大小是224x224,第五组卷积的输出大小是7x7,缩小了32(2^5)倍。每次缩小2倍,总共缩小5次,且每次都是在每组卷积的第一层上使stride为2。

 

实际使用中,很多网络几乎原封不动地使用resnet中的卷积层结构,上图中的resnet-50和resnet-101的在各种任务重是很常见的。为了提高应用能力,上面中卷积层的个数有必要记下来。上图中第一栏layer name分为5组,feature map的通道数依次乘2。由于上下组的卷积层通道数不同(类似于VGG网络通道数的特点),使得短路连接不能直接相加,故需要在后四组连接上一组的第一个卷积层的短路连接通路添加投影卷积。

2. ResNet与Batch Normalization 
由于ResNet的结构有别于传统的卷积结构,使得信号的前向传播和梯度的反向传播变得更复杂。为了稳定训练时信号的前向传播和梯度的反向传播,从ResNet开始,网络普遍使用Batch Normalization。

3. ResNet-V2 
当然,上面的ResNet的结构并非就是完美的了,因此有些论文中对resnet的结构略微进行了修改(仍属于resnet结构)。修改存在两方面,一方面是修改building block本身的结构,另一种是修改上面各组卷积层的数量搭配。 
何凯明在论文Identity Mappings in Deep Residual Networks中修改了残差块的结构,结构如下图: 

【机器学习&深度学习】ResNet结构分析


新结构将relu移到残差支路,有利于信号的前向传播和梯度的反向传播,这篇文章的数学表示是比较漂亮的,论文下载地址:https://arxiv.org/abs/1603.05027 
虽然ResNet-V2似乎有以上优点,但在各种任务中较少用来用作backbone网络。

 

4. SphereFaceNet 
SpherefaceNet也是一个修改ResNet结构的实际例子,残差块结构比较接近上面的ResNet-V2。它也将building block中relu从加号后放到了残差支路,使得训练的收敛速度加快。而且,它还修改了各组卷积层的卷积层个数,当然,它的每组卷积层个数和通道数的变化趋势还是跟上表中的安排比较一致的:都是倒数第二组卷积层最多且通道数随组递增。sphereface的结构如下表: 

【机器学习&深度学习】ResNet结构分析

 

5. ResNeXt 
出自论文“Aggregated Residual Transformations for Deep Neural Networks”,主要是将残差块的中间的3x3卷积层变成group卷积,同时扩大了3x3卷积的输入输出通道数,使得在与对应的ResNet网络的计算量和参数个数相近的同时提高网络的性能。值得一提的是,ResNeXt与常用的ResNet对应的层数完全相同,都是50、101、152层。ResNeXt已经被很多网络用来当作backbone,例如Mask RCNN中除了使用ResNet,也尝试使用了ResNeXt-101和ResNeXt-152。

References 
1. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR. (2016) 
2. He, K., Zhang, X., Ren, S., Sun, J.: Identity Mappings in Deep Residual Networks. In: ECCV (2016) 
3. W. Liu, Y. Wen, Z. Yu, M. Li, B. Raj, L. Song.: SphereFace: Deep Hypersphere Embedding for Face Recognition. In: CVPR (2017)