Xception: Deep Learning with Depthwise Separable Convolutions

2016 多 GPU 稠密训练 被引用 358 次
下载 PDF

Xception: Deep Learning with Depthwise Separable Convolutions - 中文验证版

英文原文卡片:xception_2016.md

状态:已翻译。

元数据

  • Slug: xception_2016
  • 年份: 2016
  • 会议: CVPR
  • 作者: Francois Chollet
  • 阅读状态: read complete
  • 计算范式: 多 GPU 密集训练
  • 主要来源: PDF抽取文本

计算设置

论文明确列出了训练基础设施:所有网络在 TensorFlow 中实现并在 60 块 NVIDIA K80 GPU 上训练。ImageNet 实验使用数据并行与同步梯度下降以最大化分类性能,而 JFT 实验使用异步梯度下降以加速训练。论文还给出了运行时间:ImageNet 实验每次约需 3 天,JFT 实验每次超过一个月,完全收敛 JFT 模型每次实验需超过三个月。

数据集规模解释了两种训练模式。ImageNet 是 1000 类单标签基准;JFT 包含超过 3.5 亿张高分辨率图像和 17,000 个类别,以 FastEval14k MAP@100 评估。大小/速度表是设备约束的:在 60 块 K80 GPU 上运行同步 ImageNet 训练时,Inception V3 有 23,626,728 个参数,以每秒 31 个梯度步运行,而 Xception 有 22,855,952 个参数,以每秒 28 步运行。

瓶颈

瓶颈不仅在于参数数量。Inception V3 和 Xception 在规模上是匹配的,因此论文追问 Inception 式模块是否高效使用了参数和加速器操作。标准卷积在一次运算中混合了空间相关性和跨通道相关性。Inception 模块通过多塔结构和 1x1 投影对此进行了分解,但设计手工复杂。

深度可分离卷积将分解推向极致:逐通道独立应用空间滤波器,然后使用逐点 1x1 卷积混合通道。论文的速度表暴露了一个硬件层面的提醒:在 60 块 K80 上,Xception 尽管参数更少,但比 Inception V3 稍慢。深度可分离操作可能更高效地使用参数,但 2016 年的 GPU 库通常对常规卷积优化更好。

方法适配

Xception 通过用深度可分离卷积替代手工设计的 Inception 多塔模块来适配 Inception。论文将此表述为"极端 Inception"假说:跨通道相关性和空间相关性可以独立映射。每个可分离卷积使用一个逐通道空间卷积后接一个逐点卷积,所有卷积/可分离卷积层之后都跟有 batch normalization。该架构包含 36 个卷积层,组织为 14 个模块,包括入口流、重复八次的中间流和出口流。

残差连接稳定了深层可分离操作的堆叠。论文的残差消融表明它们对该架构的收敛至关重要,这在每次运行占用 60 块 GPU 数天到数月的情况下很关键。

该方法还保持了框架兼容性:Xception 在 TensorFlow/Keras 中使用现有的可分离卷积原语实现。它接受了一些近期的训练速度损失,以换取更好的参数利用和更简单的架构规律性。

证据

ImageNet 单裁剪单模型比较报告 VGG-16 的 top-1/top-5 准确率为 0.715/0.901,ResNet-152 为 0.770/0.933,Inception V3 为 0.782/0.941,Xception 为 0.790/0.945。在匹配规模的比较下,相对 Inception V3 的增益虽小但为正。在 JFT 上,改善更大:无全连接层时,FastEval14k MAP@100 从 Inception V3 的 6.36 提升到 Xception 的 6.70;在 logistic 回归层前加入两个 4096 单元全连接层后,从 6.50 提升到 6.78。

大小/速度表使权衡显式化。Inception V3 在 ImageNet 上使用 60 块 K80 GPU 时参数为 23,626,728,速度为 31 步/秒;Xception 参数为 22,855,952,速度为 28 步/秒。论文指出两者规模差异在 3.5% 以内,因此增益并非来自增加的容量。设备结果防止了过度声称:可分离卷积并未自动使该 TensorFlow 实现在 K80 上更快。

运行时间规模也影响解读。JFT 结果是在 3000 万次迭代(约一个月训练)后报告的,而非完全收敛。这意味着 JFT 增益是在有限计算预算下观察到的,可能不代表完全饱和的性能。

历史影响

Xception 的历史重要性在于其计算抽象:Inception 模块可被视为常规卷积和深度可分离卷积之间谱系上的点。该框架将空间滤波与通道混合分离,使深度可分离卷积在成为移动端 CNN 核心之前进入主流。

本文主要不是边缘部署结果,而是使用 60 块 K80 和月级 JFT 实验的分布式训练结果。它表明可分离卷积可以超越小模型,在相似参数数量下与 Inception V3 竞争。

局限

关键局限是 Xception 在论文的 K80 训练速度测量中稍慢:28 步/秒对比 Inception V3 的 31 步/秒。论文预期深度卷积优化将改善这一点,但这不是实测结果。ImageNet 增益也较温和,因此最有力的实证支持来自 JFT。

JFT 运行未完全收敛,论文指出超参数未单独为 Xception 优化。正则化和优化设置部分继承自 Inception V3,包括 weight decay 选择和辅助塔的省略。最后,本卡片文件日期为 2016 年,而抽取的 arXiv 文本是 2017 年 4 月的 v3;上述计算事实来自该本地抽取版本。

链接