1. 概述
论文提出了ResNet网络升级版——ResNeXt网络,以往提高模型准确率的方法都是加深网络或者加宽网络。然而随着超参数数量的增加,网络设计的难度和计算开销也会增加。所以本文提出了ResNeXt结构,该结构可以在不增加参数复杂度的前提下提高模型的准确率,同时也可减少超参数数量。将论文中提出的方法在ILSVRC 2016分类数据集与COCO检测数据集上都比原始ResNet网络要好。
本文作者在论文中说到该结构是ResNet与VGG-Net设计思想组合的产物,使用ResNet的shortcut链接思想,VGG网络中模块堆叠。其实这里涉及到了Inception网络的部分思想——多分支,其在文章提出网络中的体现便是“cardinality”(基数)。文中还指出通过实验证明在增加网络深度与宽度带来的网络性能提升幅度下降的情况下,增加“cardinality”的数量对与增加网络精度具有重要的意义。这里将整个的残差结构定义为一个Block,之后作者总结了以下两个设计原则:
1)如果Block输出的特征图的空间尺寸相同,那么它们具有相同的超参数;
2)如果特征图的空间维度减半,那么Block的宽度加倍。
除此之外,所有的Block具有相同的拓扑结构(上图中每个path都是一样的),以下三个模型是等效的:
2. 网络结构
对于一个计算网络的输出,可以使用下面这幅图进行描述:
公式表达为:
∑
i
=
1
D
w
i
x
i
\sum_{i=1}^{D}w_ix_i
i=1∑Dwixi
对于一个ResNeXt Block中的基数块输出可以表示为:
F
(
x
)
=
∑
i
=
1
C
T
i
(
x
)
F(x)=\sum_{i=1}^{C}T_i(x)
F(x)=i=1∑CTi(x)
其中,参数
C
C
C代表基数块的数目,
T
i
T_i
Ti代表对应的基数块。那么对应的残差网络输出就可以被表示为:
y
=
x
+
F
(
x
)
y=x+F(x)
y=x+F(x)
另外,对于基数块中的深度(depth)论文中做了讨论,发现深度为2时与紧密链接效果是一样的,因而论文中建议深度
d
e
p
t
h
≥
3
depth\ge3
depth≥3,见下图:
使用本文提出的结构对原来的ResNet-50网络进行改进,从而得到新的网络与原始网络对照:
表1列举了ResNet-50和ResNeXt-50 的内部结构,最后两行说明二者之间的参数复杂度差别很小。
表2主要列举了一些参数,来说明图1的左右两个结构的参数复杂度差不多。第二行的d表示每个path的中间channels数量,最后一行则表示整个block的宽度,是第一行C和第二行d的乘积。这里拿图1中的参数设置来进行计算可以得到左图中的浮点运算(相同feature map输入)与参数量为
256
⋅
64
+
3
⋅
3
⋅
64
⋅
64
+
64
⋅
256
≈
70
k
256·64 + 3·3·64·64 + 64·256≈70k
256⋅64+3⋅3⋅64⋅64+64⋅256≈70k,那么经过修改之后的呢?
C
⋅
(
256
⋅
d
+
3
⋅
3
⋅
d
⋅
d
+
d
⋅
256
)
C · (256·d + 3·3·d·d + d·256)
C⋅(256⋅d+3⋅3⋅d⋅d+d⋅256),这里
C
=
32
C=32
C=32,
d
=
4
d=4
d=4。
3. 实验结果
3.1 “基数”属性影响
文章使用“基数”的个数
C
C
C与宽度
d
d
d对分类网络性能的影响,其实验结果见下图5与表3:
从上面的结果是在保持运算量相对一致的情况下,变化“基数”的数量得到的,可以看到随着数量的增多,网络的性能得到提升,在ResNet-50中大概提升了1.7%。
3.2 传统更宽更深与本文结构对比
对于文章之前说到的增加网络的宽度和深度,文章在这里增加ResNet的深度和宽度发现在参数量变为两倍之后,网络的性能提升并不是很大,但是在换用文章提出的结构之后在相对较少参数增加的情况下(为其50%),网络性能得到了较大提升,见下表:
3.3 shortcut连接的影响
文章使用本文的结构与原始ResNet结构去除shortcut连接的网络进行前后实验对比,发现去除掉shortcut连接对与网络性能的对带来较大负面影响。
3.4 与当前先进网络的性能对比
将本文的结构与当前的先进网络进行实验对比,得到的结果见下表: