ResNeXt详解
ResNeXt是2015年被提出的,其主要创新在于从深度、宽度之外的角度,思考神经网络结构。
github地址为:https://github.com/facebookresearch/ResNeXt
网络结构
ResNeXt实际上融合了ResNet中的恒等映射与GoogleNet中的分支合并思想,其基本结构ResX模块如下图所示:

乍一看,其实就是一个加入了恒等分支的Inception模块,但是原文中强调还有另外一点不同之处。传统的Inception模块,每条分支上的子结构不同,如下图所示:

因此针对特定任务设计网络结构时往往比较繁琐。而ResX模块让每个分支保持相同子结构,所需要设置的参数便只有支路数目,大大地简化了设计要求。
ResNeXt的整体结构如下图所示:

从中可以看出,共有四种ResX模块,每种模块的数目分别是3、4、6、3。
网络参数
网络的整体设计遵循两个准则:
- 如果不同模块的输出特征映射具有相同的尺寸,则它们具有相同的超参数,包括卷积核个数与尺寸。
- 如果不同模块的输出特征映射通过池化后,大小为输入尺寸的一半,则它们的卷积核个数也需要增长一倍。
整个网络的详细参数如下图所示,其中C代表支路数目。

原文中还有一点值得注意,即ResX模块的拓扑结构等效性。

上图中的a、b、c是等效的三种拓扑结构,其中a是ResX模块,b类似于Inception-ResNet,c则是组卷积。网络参数图中的模块结构便是通过c形式表达出来的。
总结
通过原文的实验证明,增加分支数目C比增加深度、宽度拥有更好的性能。