ResNext(2017)解读
论文链接
看网络的名字,可以推想出,它是在ResNet(2016)的升级版。在网络结构上,它和ResNet相似,采用短路连接(shortcut connection).那么它有什么不同点呢?先看下这两个网络的一个block的结构,如下图。直观的感觉,ResNext变宽了,而且卷积层的输入输出通道数不一样。
图 1
网络结构设计的规则主要是:
- 沿用VGG/ResNet高度模块化的设计
网络由一些残差块(residual block)堆叠而成,这些残差块有相同的拓扑结构,而且受VGG/ResNet启发:1)如果经过残差块得到的特征图尺寸相同,那么这些残差块有相同的超参数(卷积核的数量和尺寸相同)。2)每经过一次下采样,残差块的宽度*2(这使得不同残差块间的计算复杂度-FLOPs相同。). - 每个模块采用Splitting-Transforming-Aggregating(划分-变换-整合)操作
图2
这三个步骤与单个神经元的计算过程相似。
-
Splitting:——>
-
Transforming:对做线性变换
-
Aggregating:对所有变形后的结果求和
将这个想法应用到ResNext中就变成了: -
Splitting: 图一右侧的一个个分支
-
Transforming:.文中所有的有相同的拓扑结构
-
Aggregating:对所有变形后的结果求和
最终,一个残差块的作用可看成:
C是基数(cardinality),即分支数
模型的每个分支都相同,figure3(a)可以等价成figure3(b)和figure3(c). -
模型参数量的计算。以图1右侧的结构为例
-
C是基数-32,d是宽度-4
ResNet-50与ResNext-50对比
ResNext中的一些技巧: