EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

2019 多 GPU 稠密训练 被引用 5.0k 次
下载 PDF

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks - 中文验证版

英文原文卡片:efficientnet_2019.md

状态:已翻译。

元数据

  • Slug: efficientnet_2019
  • 年份: 2019
  • 会议: ICML
  • 作者: Mingxing Tan, Quoc V. Le
  • 阅读状态: read complete
  • 计算范式: 多 GPU 密集训练
  • 主要来源: PDF抽取文本

计算设置

论文明确给出了用于延迟测量的推理设备:在单核 Intel Xeon CPU E5-2690 上以 batch size 1 测量,取 20 次运行的平均值。抽取文本未给出训练硬件。根据项目规则,训练环境推断为 2018-2019 年 Google 加速器基础设施,用于 ImageNet 规模的 CNN/NAS 工作,但论文本身优化准确率和 FLOPs,而非声称特定的 GPU 或 TPU 训练设置。

因此计算设置是双重的:训练足够大的模型以用于 ImageNet 和迁移学习,但通过参数数量、FLOPs 和实测 CPU 延迟来评判最终的模型族。EfficientNet-B0 通过以 400M-FLOP 为目标的神经架构搜索找到。然后通过以更大计算预算缩放相同的基线来生成 B1-B7 族。

瓶颈

瓶颈是 CNN 缩放的低效性。论文指出,传统的缩放通常只推一个维度:更深的网络、更宽的网络或更高的输入分辨率。每个维度产生不同的设备压力。深度增加顺序层数,可能使优化更难。宽度增加通道内存和卷积通道乘积的二次成本。分辨率增加激活大小和空间 FLOPs,对内存带宽和激活存储施加压力。

论文明确指出,高准确率 ConvNet 已经触及硬件内存限制,进一步的准确率提升需要更好的效率。GPipe 是高端比较点:它以 557M 参数达到 84.3% ImageNet top-1,但它如此之大以至于依赖专门的流水线并行。EfficientNet 的瓶颈是用更小、更便宜的 FLOPs 和在真实 CPU 上更快的模型达到相同的准确率区间。

方法适配

EfficientNet 通过两步将 CNN 缩放适配到资源约束。首先,它搜索一个紧凑的基线 EfficientNet-B0,使用包含准确率和 FLOPs 的多目标优化。基线使用移动端风格的 MBConv blocks 和 squeeze-and-excitation,为缩放过程提供了一个相对高效的起点。

其次,它使用复合缩放。单个系数 phi 同时增加深度、宽度和分辨率:深度乘以 alpha^phi,宽度乘以 beta^phi,分辨率乘以 gamma^phi。这是硬件感知的,因为卷积 FLOPs 与深度大致呈线性关系,但与宽度和分辨率呈二次关系。论文通过 phi=1 时的小型网格搜索确定 alpha、beta 和 gamma,然后固定它们以缩放 B1 到 B7。实际上,该方法将新增 FLOPs 分配到顺序深度、通道并行度和空间激活大小之间,而不是让一个维度饱和。

训练配方也随规模调整。论文报告了带 momentum 的 RMSProp、batch normalization 设置、weight decay、学习率衰减、SiLU/Swish 激活、AutoAugment、stochastic depth,以及 dropout 从 B0 的 0.2 到 B7 的 0.5。这些细节很重要,因为更大的模型需要更多的正则化;否则计算分配将与过拟合或不稳定优化混淆。

证据

ImageNet 表格是主要的计算证据。EfficientNet-B0 以 5.3M 参数和 0.39B FLOPs 达到 77.1% top-1,相比之下 ResNet-50 为 76.0%、26M 参数、4.1B FLOPs。EfficientNet-B1 以 7.8M 参数和 0.70B FLOPs 达到 79.1% top-1,而 ResNet-152 为 77.8%、60M 参数、11B FLOPs。EfficientNet-B3 以 12M 参数和 1.8B FLOPs 达到 81.6%;文本强调它超过了 ResNeXt-101,且使用的 FLOPs 少 18 倍。

在高端,EfficientNet-B7 以 66M 参数和 37B FLOPs 达到 84.3% top-1 和 97.0% top-5。GPipe 以 557M 参数和专门的流水线并行训练系统达到相同的 84.3%/97.0% ImageNet 准确率。论文将此概括为 EfficientNet-B7 比 GPipe 小 8.4 倍、快 6.1 倍。

CPU 延迟表将 FLOPs 与设备绑定。在一块 Xeon E5-2690 单核上以 batch size 1 运行,EfficientNet-B1 用 0.098 秒达到 78.8% 准确率,而 ResNet-152 用 0.554 秒达到 77.8% 准确率,加速 5.7 倍。EfficientNet-B7 列出的时间为 3.1 秒,准确率 84.4%,而 GPipe 为 19.0 秒和 84.3%,加速 6.1 倍。

历史影响

EfficientNet 将视觉缩放从临时的“做大”选择转变为在深度、宽度和分辨率之间显式分配计算。从历史上看,它是神经架构搜索和部署感知模型缩放之间的桥梁:搜索提供紧凑基线,复合缩放提供跨资源预算的可预测模型族。

其影响也体现在方法论层面:它使参数数量、FLOPs 和真实设备延迟成为高准确率 CNN 的核心报告列。这有助于将 ImageNet 进展从仅与非常大的流水线并行模型进行准确率比较的方向转移开。

局限

主要局限是 FLOPs 是实际加速器延迟的不完美代理。论文确实测量了代表性模型的 CPU 延迟,但复合搜索目标优化的是 FLOPs 而非完整的硬件成本模型。训练硬件、芯片数量和训练 wall-clock 未被抽取文本提及,因此训练规模的主张应限制在模型、FLOP 和基准证据上。

一些收益也结合了多个因素:B0 架构、复合缩放、AutoAugment、stochastic depth、激活选择和正则化调度。因此 EfficientNet 不是一个纯粹的缩放定律消融。最后,本地抽取文本交错包含列和图,尽管主要的硬件、延迟、FLOP、参数和准确率值是可读的。

链接