ResNet变体:ResNeXt

论文标题:

在这里插入图片描述

1.对ResNet的改进思想

作者受到了如下几篇论文的启发:

(1)Going deeper with convolutions.

(2)Batch normalization: Accelerating deep network training by reducing internal covariate shift.

(3)Rethinking the inception architecture for computer vision.

(4)Inceptionv4, inception-resnet and the impact of residual connections on learning.

这几篇论文对传统的卷积层结构做出了一些改进,将传统的卷积层改进为下面几个图的结构:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

此处我们不关心这些结构的具体细节,只需要在意2点:

(1)它们属于Inception系列网络,Inception系列推动了CNN架构的发展;

(2)它们均采用了split-transform-merge策略,即分离输入特征(split)、对分离后的输入特征分别处理(transform)、合并它们输出(merge)。

使用split-transform-merge方法构建的CNN,能够使用比较少的计算量达到比较高的性能。但是Inception系列的结构有一个特点,即网络的每个组件都比较繁琐复杂,分支较多,且每个分支的操作类型复杂多变。

作者参考了Inception系列的结构,对ResNet结构进行改进,同时规避了Inception系列结构复杂多样的特点,原ResNet基本结构和改进后的ResNet基本结构如下图所示:

在这里插入图片描述

上图中左图为原ResNet的基本组件,右图为作者在参考了Inception系列后改进的ResNet结构的基本组件,作者将改进后的ResNet称作ResNeXt

从图中可以看出,ResNeXt借鉴了Inception系列多分支的思想,并将其和残差模块结合;与Inception系列不同的是,ResNeXt中每个分支的结构完全相同,简化了网络结构设计。

2.Aggregated Transformation

作者将如下公式所表示的网络结构称作Aggregated Transformation:

F ( x ) = ∑ i = 1 C T i ( x ) \mathcal{F}(\mathbf{x})=\sum_{i=1}^{C} \mathcal{T}_{i}(\mathbf{x}) F(x)=i=1CTi(x)

上式中的 T i \mathcal{T}_{i} Ti表示分支结构,上面的公式表示使用多分支结构处理输入特征 x \mathbf{x} x,并将多分支的结果累加。将ResNet中残差结构的思想与Aggregated Transformation结合,即为下面的公式:

y = x + ∑ i = 1 C T i ( x ) \mathbf{y}=\mathbf{x}+\sum_{i=1}^{C} \mathcal{T}_{i}(\mathbf{x}) y=x+i=1CTi(x)

在上式中,若所有的 T i \mathcal{T}_{i} Ti表示的分支结构完全相同,就是ResNeXt的基本组件,如下图图(a)所示:

在这里插入图片描述

为了有利于工程化实现,作者将上图图(a)的结构简化为图(b),需要注意的是,图(a)和图(b)中的结构是完全等价的。

而图(b)中的结构完全可以用分组卷积(Grouped Convolution)代替,即上图中图(c)的形式。上图中图(c)表示:

(1)先对256个通道的输入特征进行 1 × 1 1 \times 1 1×1卷积,输出128通道的特征;

(2)将128个通道的特征分为32组,每组4个通道;在每一组中,对这4个通道的输入特征做 3 × 3 3 \times 3 3×3卷积,输出4个通道的特征;将32组输出的特征在通道维度聚合,形成128个通道的输出特征;

(3)对128个通道的特征做 1 × 1 1 \times 1 1×1卷积,输出256个通道的特征;

(4)将上述输出结果与输入特征进行元素相加,即shotcut connection。

3.ResNeXt

使用上述基本组件来构造ResNeXt网络,ResNeXt的整体结构以及与ResNet的对比如下表所示:

在这里插入图片描述

上面的表格表示了ResNet-50与ResNeXt-50(32x4d)的区别,中括号内表示基本模块的结构,中括号外面的数字表示该模块重复的次数。

在网络总体结构上,ResNeXt与ResNet类似:

(1)ResNeXt在conv3、conv4和conv5的第1个 3 × 3 3 \times 3 3×3卷积中设置步长为2,完成下采样的功能;

(2)在带有下采样功能的残差模块中,shortcut connection使用 1 × 1 1 \times 1 1×1卷积来解决输入、输出特征尺寸不一致的问题;

(3)每当feature map进行了一次下采样操作时,feature map的通道数变为原来2倍;

(4)每个卷积后面都带有BN和ReLU操作。

上面表格中ResNet-50(32x4d)括号里表示在conv2的残差模块中, 3 × 3 3 \times 3 3×3卷积层是有32组、每组4通道的分组卷积。

从上面表格的最后2行可以看出,ResNet-50和ResNeXt-50(32x4d)有着几乎相同的参数量和计算量。

需要注意的是,与ResNet系列网络类似,ResNeXt系列网络也是可拓展的,比如也存在与ResNet-101结构类似的ResNeXt-101。

4.ResNeXt的性能提升

相比于ResNet系列网络,与之同等计算量的ResNeXt系列网络的性能提升情况如下表所示:

在这里插入图片描述

上面的表格分为上下2部分,ResNet-50和不同配置的ResNeXt-50网络有大致相同的计算量;ResNet-101和不同配置的ResNeXt-101网络有大致相同的计算量。

表格中的“setting”表示残差模块conv2中 3 × 3 3 \times 3 3×3卷积的配置情况,比如“ 1 × 64 d 1 \times 64d 1×64d”表示64通道的普通卷积,“ 2 × 40 d 2 \times 40d 2×40d”表示分组为2、每组40通道的分组卷积,以此类推。

“top-1 error(%)”表示网络在ImageNet数据集上的错误率。

从上图中可以看出,随着分组卷积的分组数量增加,为保证同等计算量,每一组的通道数会降低,网络性能会提高。

将ResNeXt网络与其他网络对比,在ImageNet验证集上的错误率如下表所示:

在这里插入图片描述

从上表中可以看出,ResNeXt-101(64x4d)有着比ResNet-200更高的性能,即使ResNet-200更深。

5.总结

作者借鉴了Inception系列网络结构,将其与ResNet中的残差结构结合,并且简化了Inception中分支的设计方法,使其模块化,设计出了ResNeXt结构。

ResNeXt结构拥有很强的可拓展性,且比同等计算量的ResNet有着更强的性能,能够在多种计算机视觉任务中替换掉ResNet。

推荐阅读:
ResNet从理论到实践(一)ResNet原理

扫描下面的二维码添加作者微信,回复“ResNeXt”,可直接下载ResNeXt论文和Inception系列论文
在这里插入图片描述
如果你对计算机视觉中的目标检测、跟踪、分割、轻量化神经网络感兴趣,扫描下面二维码,关注公众号一起交流学习~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CV51

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值