ResNeXt: Aggregated Residual Transformations for Deep Neural Networks
Saining Xie
UC San Diego, Facebook AI research, 2017
一种高效的网络结构。说明了增加势是比增加网络宽度和深度更高效的提升精度方式。ResNeXt-101比ResNet-200精度高,复杂度却只有一半。这一降维-计算-合并的思路在很多网络结构中也可以见到。
1. Introduction
视觉识别的研究正在从“特征工程”向“网络工程”转变。而随着超参数(通道数、卷积核尺寸,步长等)的数量上升,架构的设计也变得非常困难。VGG-nets提出了一个构建极深网络的简单但高效的策略:堆叠同样形状的block。这一策略被ResNet继承,堆叠有同样拓扑结构topology的模块。这一准则降低了超参数选择数量,深度则成为了神经网络的关键维度。
Inception系列证明了小心设计的结构能用理论上低的复杂度获得相当的准确率。Inception模型演化了很久,但一有一个重要的共同属性,split-transform-merge策略。在Inception module里,输入被$1\times1$卷积分割为一些低维embedding,由一系列专门的卷积核($3\times3,5\times5,etc$)transform,并通过concatenation merge。可以证明这一架构的解空间是一个单独的更大层(如$5\times5$)在高维embedding上操作的解空间的严格子空间。
虽然Inception有很优秀的性能,但其实现有很多复杂因素。卷积核数量与大小都是为各个独立transformation所定制的,而module是stage-by-stage定制的。虽然这些元素的小心组合得到了非常好的神经网络配方,但通常还不清楚怎么把Inception结构应用到新的任务或数据集上。
我们提出了ResNeXt,利用了split-transform-merge策略,同时能很简单而可扩展的方式。其模块架构见图1。
我们的方法说明势cardinality(transformation集的大小)是一个具体的concrete、可度量的维度。实验证明增加势是比增加宽度或深度更高效的增加准确率的方式。
3. Method
3.1 Template
我们采用了与VGG/ResNet一样的高度模块化的设计。一系列Residual block的堆叠,它们有相同的拓扑结构,且遵从两个原则:(i)如果生成同样大小的特征图,block则有相同的超参数(width和卷积核尺寸),(ii)每次特征图以2x下采样时,block的width翻倍。第二个原则保证了每个block基本有同样的FLOPs。网络结构见表1。
3.2 Revisiting Simple Neurons
神经网络里最简单的元是进行内积操作的,内积可以看做:
其中$\mathbf x=[x_1, x_2,…,x_D]$是神经元的D维输入向量,$w_i$是第i个通道的核权重。这一操作(通常包括一些非线性输出操作)被称为“神经元”,见图2。
上面的操作可被重做为splitting, transforming和aggregating的组合。(i)Splitting: 向量x分割为低维embedding,作为单维子空间。(ii)Transforming: 低维表达进行转变,在内积里这就是$w_ix_i$。(iii)Aggregatting,即$\sum$