本文主要分析残差网络(ResNet)及其变种的结构。残差网络在论文Deep Residual Learning for Image Recognition中被提出。论文连接:https://arxiv.org/pdf/1512.03385.pdfweb
1. Building block和Bottleneck结构
首先resnet由building block或bottleneck组成。building block的结构以下:
网络
实际使用中,不少网络几乎原封不动地使用resnet中的卷积层结构,上图中的resnet-50和resnet-101的在各类任务重是很常见的。为了提升应用能力,上面中卷积层的个数有必要记下来。上图中第一栏layer name分为5组,feature map的通道数依次乘2。因为上下组的卷积层通道数不一样(相似于VGG网络通道数的特色),使得短路链接不能直接相加,故须要在后四组链接上一组的第一个卷积层的短路链接通路添加投影卷积。app
2. ResNet与Batch Normalization
因为ResNet的结构有别于传统的卷积结构,使得信号的前向传播和梯度的反向传播变得更复杂。为了稳定训练时信号的前向传播和梯度的反向传播,从ResNet开始,网络广泛使用Batch Normalization。ide
3. ResNet-V2
固然,上面的ResNet的结构并不是就是完美的了,所以有些论文中对resnet的结构略微进行了修改(仍属于resnet结构)。修改存在两方面,一方面是修改building block自己的结构,另外一种是修改上面各组卷积层的数量搭配。
何凯明在论文Identity Mappings in Deep Residual Networks中修改了残差块的结构,结构以下图:
svg
4. SphereFaceNet
SpherefaceNet也是一个修改ResNet结构的实际例子,残差块结构比较接近上面的ResNet-V2。它也将building block中relu从加号后放到了残差支路,使得训练的收敛速度加快。并且,它还修改了各组卷积层的卷积层个数,固然,它的每组卷积层个数和通道数的变化趋势仍是跟上表中的安排比较一致的:都是倒数第二组卷积层最多且通道数随组递增。sphereface的结构以下表:
性能
5. ResNeXt
出自论文“Aggregated Residual Transformations for Deep Neural Networks”,主要是将残差块的中间的3x3卷积层变成group卷积,同时扩大了3x3卷积的输入输出通道数,使得在与对应的ResNet网络的计算量和参数个数相近的同时提升网络的性能。值得一提的是,ResNeXt与经常使用的ResNet对应的层数彻底相同,都是50、10一、152层。ResNeXt已经被不少网络用来看成backbone,例如Mask RCNN中除了使用ResNet,也尝试使用了ResNeXt-101和ResNeXt-152。ui
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)orm