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 右)
图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 的大小减半,则通道数增加一倍

图3
上面展示了 ResNeXt 的两个等价形式
图4

3.4 模型容量

表2
表 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.

猜你喜欢

转载自blog.csdn.net/u014061630/article/details/80800829