Rethinking the Inception Architecture for Computer Vision

2015 多 GPU 稠密训练 被引用 565 次
下载 PDF

Rethinking the Inception Architecture for Computer Vision - 中文验证版

英文原文卡片:inception_v3_2015.md

状态:已翻译。

元数据

  • Slug: inception_v3_2015
  • 年份: 2015
  • 会议: CVPR
  • 作者: Christian Szegedy et al.
  • 阅读状态: read complete
  • 计算范式: 多 GPU 密集训练
  • 主要来源: PDF抽取文本

计算设置

论文明确列出 TensorFlow 分布式训练,50 个 replicas,每个运行在一块 NVIDIA Kepler GPU 上。使用 batch size 32 每个 replica,训练 100 个 epoch,学习率每两个 epoch 以指数衰减率 0.94 衰减。这将 Inception v3 置于多 GPU 密集 CNN 范式中,架构由 ImageNet 准确率、计算量和参数存储量来评判。

论文还给出了一个具体的推理预算:少于 25M 参数和约 5B multiply-adds 每次推理,达到 21.2% top-1 和 5.6% top-5 单帧误差。集成结果使用四个模型和多裁剪评估,因此最佳的榜单式数字花费了远多于单帧模型的推理计算。

瓶颈

瓶颈是直接粗暴的 CNN 缩放。更大的滤波器、更宽的层和更密集的堆叠能提高准确率,但计算量和参数数量也急剧增加。论文指出 GoogLeNet 的 5M 参数相对 AlexNet 是 12 倍缩减,而 VGGNet 使用约 AlexNet 3 倍的参数。这一对比框定了设计问题:VGG 式的单体卷积准确但昂贵,而 Inception 式的因式分解试图在固定计算预算下保持表示的表达力。

设计原则以内存和计算为着眼点:避免表示瓶颈,平衡宽度和深度,将大卷积分解为更便宜的序列,并在不将大部分计算花在更大网格上的前提下减小网格尺寸。瓶颈是整个 CNN 图,而非一个卷积核。

方法适配

Inception v3 通过因式分解适配 CNN 图。一个输入输出通道数相同的 5 x 5 卷积的成本是 3 x 3 卷积的 25/9 = 2.78 倍;将其替换为两个 3 x 3 层,报告获得约 28% 的净增益。还将 n x n 卷积分解为 1 x n 后接 n x 1;对于 3 x 3,当输入输出滤波器数量相等时便宜 33%。所选架构在 17 x 17 网格上使用 1 x 7 后接 7 x 1。

网格尺寸缩减是另一个计算适配。论文使用并行的池化和步进卷积分支,其输出被拼接,在降低空间分辨率的同时增加通道数。这避免了瓶颈,也避免了在未缩减网格上支付大卷积的全部成本。

训练正则化器也适配分布式设置。标签平滑(label smoothing)将硬 one-hot 目标替换为使用均匀概率的混合,减少过度自信并改善泛化。batch-normalized 辅助分类器被用作正则化器,而非主要作为梯度捷径;论文称辅助分类器未改善早期收敛,但在训练接近结束时有所帮助。

证据

核心计算-质量结果是单帧模型:在 ILSVRC 2012 验证集上达到 21.2% top-1 和 5.6% top-5 误差,约 5B multiply-adds 且参数少于 25M。结论称这相对 BatchNorm-Inception 式前身是 2.5 倍的计算增加,但仍远少于更密集网络。还称模型在计算上便宜六倍且参数至少少五倍的情况下,优于 He et al. 的结果。

多裁剪结果展示了推理预算如何改变准确率。单个 Inception-v3 在 12-crop 下达到 19.47% top-1 和 4.48% top-5 误差;在 144-crop 下达到 18.77% top-1 和 4.2% top-5。集成表报告四个 Inception-v3 模型加 144-crop 达到 17.2% top-1 和 3.58% top-5,验证 top-5 为 3.46%。这些数字是更高计算的评估模式,不应与 5B multiply-add 的单帧预算混淆。

消融实验支持这些改变。标签平滑改善 top-5 和 top-1 误差约 0.2 个百分点。分解的 7 x 7 卷积和 batch-normalized 辅助分类器被报告为累积修改,且更低分辨率的感受野仍可达到高质量。

历史影响

Inception v3 将计算可感知的 CNN 设计确立为超越 Inception 家族的准则:分解大空间滤波器,避免狭窄的图切割,平衡宽度和深度,使用网格缩减模块而非生硬的下采样,并将标签平滑视为简单正则化器。

在历史上,本文将 GoogLeNet 的手工设计效率连接到后来系统性分解卷积的架构。它还提供了自动化架构搜索普及之前多 GPU 架构工程的清晰示例:设计在真实的分布式 TensorFlow 设置和声明的每次推理 multiply-add 预算下进行评估。

局限

设计原则有部分是启发式的。论文明确将部分指导表述为有用的原则而非正式保证,所得的架构与后来更简洁的模块相比仍然复杂。其最佳数字也混合了不同的推理预算:单帧、12-crop、144-crop 和集成结果从计算角度看不可互换。

报告设置以 TensorFlow 分布式训练为前提,使用 50 块 Kepler GPU replicas。论文未提供单 GPU 等效训练时间、功耗预算或详细的输入管线测量。最后,本地抽取文本因双栏 PDF 布局而交错,因此表值可恢复但实验表周围部分正文是碎片化的。

链接