ResNeXt 论文笔记
ResNeXt:Aggregated Residual Transformations for Deep Neural Networks
摘要
提出了 ResNeXt 架构,该架构依然采用堆叠构建块的方式构建。构建块内部采用分支结构。分支的数目称为 “基数”,作者认为,增加分支的数量比增加深度、宽度更高效。ResNeXt 在 ILSVRC 2016 分类比赛中获第二名。作者在 ImageNet-5K分类、COCO探测数据集上进行了实验,性能超过了 ResNet。代码和模型见[1]。
1. 简介
VGG、ResNet 采用了堆叠相同构建块来构建网络。Inception 对网络的组件进行精心设计,从而在更低的计算量取得较高的准确率。Inception 有一个核心逻辑:split-transform-merge。虽然 Inception 的解空间是 大卷积层的解空间的子空间,但我们期待使用 split-transform-merge 策略去接近大卷积、dense层的表示能力。
经过对组件精心的设计,Inception 的性能很高,但怎么去针对新数据集调整 Inception 的各个模块呢?
所以作者提出了 ResNeXt,它采用 VGG / ResNet 类似的堆叠方式,同时以一种简单,可扩展的方式实现了 Inception 中的 split-transform-merge 策咯。(结构如图 1 右)
上面的结构有两种等价形式(图 3)。图 3b 和 Inception-ResNet 模块类似,但这里的各个 path 一样。图 3c 采用了 AlexNet 中的分组卷积。
在实验中,ResNeXt 的性能超过 ResNet。增加基数比增加深度、宽度更加有效。ResNeXt(指的是下一个维度)性能超过了 ResNet-101/152/200、Inception v3、Inception-ResNet-v2。100层的 ResNeXt 的性能超过了200层的 ResNet,并且计算量只有一半。ResNeXt 的结构比 Inception 简单很多。
2. 相关工作
- 多分支卷积网络: Inception 就是精心设计的多分支结构。ResNet 可以被看作一个两分支结构,一个分支是 identity mapping。深度神经决策森林是树状多分支网络,学习多个分离的函数。
- 分组卷积: 分组卷积最早可以追溯到 AlexNet。AlexNet 中分组卷积主要是为了用两块 GPU 来分布式训练。分组卷积的一个特例就是 Channel-wise 卷积。
- 压缩卷积网络: 卷积分解(在空间 and/or 通道层面)是一种常用的卷积网络冗余、加速、压缩网络的常用技术。相比于压缩,作者希望有更强的表示能力。
- 多模型集成: 对多个单独训练的网络进行平均是一种提高准确率的办法(在识别类比赛中广泛使用)。因为ResNet采用 additive behaviors,有人将 ResNet 理解为 一系列浅层网络 的集成。作者采用 加法 来聚合一系列的变换。但是作者认为将 ResNeXt 看作集成是不准确的,因为各个分支是同时训练的。
3. 方法
下面是 ResNeXt-50 的结构:
主要遵从了两个原则:
- feature map 大小不变时,标准堆叠
- 当 feature map 的大小减半,则通道数增加一倍
上面展示了 ResNeXt 的两个等价形式
3.4 模型容量
表 1 中的两个模型的参数量 和 计算量 接近,基于此,作者认为两个模型的模型容量相近。(注:模型容量真应该这么算吗???)
4. 实施细节
- 表 1 中 conv3、conv4、conv5 的下采样过程采用 stride 为 2 的 3x3 卷积。
- 使用 8 块 GPU 来训练模型
- 优化器:SGD
- momentum:0.9
- batch size:256 (每块 GPU 上 32)
- weight decay:0.0001
- 初始学习速率:0.1
- 学习速率衰减策略同:[11]
- 测试时从 短边为 256 的图像中裁出一个 224x224 的图像进行测试
代码实现基于 图 3c ,并且在卷积后加BN+ReLU,在 shortcuut 加和只有使用ReLU。图3的三种形式是等价的,之所以选择 c 来实现,因为它更简单、代码更高效。
5. 实验
5.1 ImageNet-1K 数据集的实验
基数 vs. 宽度
在保持计算量不变的情况下,增大基数,能够减少误差。并且 ResNeXt 的训练误差更低,说明 表示能力更强。
通过上图可以看出,增加基数可以减小误差;并且训练误差更低,所以表示能力没有下降。
基数 vs. 更深、更宽
通过上表可以看出,增加基数比深度、宽度更高效
残差的影响
残差很有必要
和当前最好的算法的对比
5.2 ImageNet-5K 数据集的实验
效果基本同 ImageNet-1K
5.3 CIFAR 数据集的实验
增加模型宽度 和 增加模型基数的对比
通过上图可以看出:增加基数是一个更高效的办法
[11] S. Gross and M. Wilber. Training and investigating Residual Nets. https://github.com/facebook/fb.resnet.torch, 2016.