EfficientNet: 重新思考卷积神经网络的模型缩放技术

EfficientNet: 重新思考卷积神经网络的模型缩放技术

EfficientNet 是一种创新的神经网络架构,它通过一种称为"复合缩放"(compound scaling)的方法,实现了在准确率和效率之间的优异平衡。这篇论文由谷歌研究团队的 Mingxing Tan 和 Quoc V. Le 在 2019 年发表,提出了一种系统性的方法来扩展神经网络的规模,从而在资源有限的情况下获得更高的性能。本文将详细解析EfficientNet的核心思想、技术创新与实验结果。

1. 研究背景与动机

1.1 神经网络缩放的重要性

卷积神经网络(ConvNets)的规模对其性能有着显著影响。大型网络通常能够捕获更复杂的特征并实现更高的准确率,但也需要更多的计算资源和内存。因此,如何高效地扩展神经网络,成为深度学习研究中的一个重要问题。

1.2 传统缩放方法的局限性

传统的卷积神经网络(ConvNets)通常是在固定资源预算下开发的,然后如果有更多资源可用,就通过增加网络规模来提高准确率。常见的缩放方法有:

  1. 深度缩放(Depth Scaling):增加网络层数,如从ResNet-18扩展到ResNet-200。深层网络能够学习更复杂的特征并提高非线性表达能力,但可能面临梯度消失问题。
  2. 宽度缩放(Width Scaling):增加每层的通道数,如WideResNet和MobileNets。更宽的网络可以捕获更细粒度的特征并且训练更容易,但超宽网络可能难以捕获高级特征。
  3. 分辨率缩放(Resolution Scaling):增加输入图像的尺寸,如从224×224扩展到480×480。更高分辨率的输入可以帮助网络捕获更多细节,但计算成本会显著增加。

然而,传统上这些缩放维度通常是单独调整的,而没有系统性地考虑它们之间的相互关系。这种做法往往导致次优的准确率和效率。论文研究表明,任意缩放这些维度需要繁琐的手动调整,并且通常会产生次优的准确率和效率。

2. 研究发现与方法

2.1 关键观察

作者通过系统性研究不同缩放方法的效果,提出了两个重要观察:

观察1:增加网络的宽度、深度或分辨率任何一个维度都能提高准确率,但对于更大的模型,准确率增益会逐渐减少。

作者进行了一系列实验,分别缩放网络的深度、宽度和分辨率,结果如下:

  • 深度缩放:当深度系数从d=1.0增加到d=8.0时,准确率从76%提高到80%,但随后增益变得很小。
  • 宽度缩放:当宽度系数从w=1.0增加到w=5.0时,准确率从76%提高到80%左右,但继续增加宽度收益递减。
  • 分辨率缩放:当分辨率从r=1.0(224×224)增加到r=2.5(560×560)时,准确率也从76%提高到80%左右,但高分辨率的收益递减明显。

观察2:为了追求更好的准确率和效率,在扩展网络规模时平衡宽度、深度和分辨率这三个维度至关重要。

作者发现,在不同基线网络下比较宽度缩放效果时,当同时增加深度(d=2.0)和分辨率(r=2.0)时,相同FLOPS下可以获得更高的准确率。这表明不同缩放维度不是独立的,需要协调和平衡。

2.2 复合缩放法(Compound Scaling Method)

基于上述观察,作者提出了一种新颖的复合缩放方法,该方法使用统一的系数来同时缩放网络的宽度、深度和分辨率:

深度: d = α ϕ 宽度: w = β ϕ 分辨率: r = γ ϕ 约束条件: α ⋅ β 2 ⋅ γ 2 ≈ 2 α ≥ 1 , β ≥ 1 , γ ≥ 1 \begin{aligned} \text{深度:} d &= \alpha^\phi \\ \text{宽度:} w &= \beta^\phi \\ \text{分辨率:} r &= \gamma^\phi \\ \text{约束条件:} \alpha \cdot \beta^2 \cdot \gamma^2 &\approx 2 \\ \alpha \geq 1, \beta \geq 1, \gamma &\geq 1 \end{aligned} 深度:d宽度:w分辨率:r约束条件:αβ2γ2α1,β1,γ=αϕ=βϕ=γϕ21

其中:

  • ϕ \phi ϕ 是用户指定的系数,控制可用于模型缩放的资源
  • α \alpha α, β \beta β, γ \gamma γ 是常数,可以通过小型网格搜索确定
  • 约束条件 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 αβ2γ22 保证了当 ϕ \phi ϕ 增加1时,总体FLOPS(浮点运算次数)大约增加2倍

这种复合缩放方法的直观理解是:

  • 如果输入图像更大,网络需要更多层来增加感受野,以捕获更大图像上的相似特征
  • 同时,网络也需要更多通道来捕获更大图像上更细粒度的模式
  • 网络深度、宽度和分辨率三个维度应该协调增长,而不是独立缩放

2.3 复合缩放法的理论基础

常规卷积操作的FLOPS计算如下:

FLOPS ∝ d ⋅ w 2 ⋅ r 2 \text{FLOPS} \propto d \cdot w^2 \cdot r^2 FLOPSdw2r2

其中:

  • d d d 代表网络深度(层数)
  • w w w 代表网络宽度(通道数)
  • r r r 代表输入分辨率

因此:

  • 将网络深度加倍,FLOPS也会加倍
  • 将网络宽度或分辨率加倍,FLOPS会增加4倍

这就是为什么约束条件设为 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 αβ2γ22,因为这确保了对于任何新的 ϕ \phi ϕ 值,总FLOPS将大约增加 2 ϕ 2^\phi 2ϕ 倍。

3. EfficientNet 架构

为了更好地展示复合缩放方法的有效性,作者开发了一个新的基准网络,称为 EfficientNet-B0,并对其进行缩放以创建一系列更大的模型。

3.1 基准网络设计

EfficientNet-B0 基准网络利用多目标神经架构搜索(NAS)优化,同时考虑准确率和计算效率。具体地,作者使用与MnasNet相同的搜索空间,并将优化目标设定为:

ACC ( m ) × [ FLOPS ( m ) / T ] w \text{ACC}(m) \times [\text{FLOPS}(m)/T]^w ACC(m)×[FLOPS(m)/T]w

其中:

  • ACC ( m ) \text{ACC}(m) ACC(m) FLOPS ( m ) \text{FLOPS}(m) FLOPS(m) 分别代表模型 m m m 的准确率和FLOPS
  • T T T 是目标FLOPS
  • w = − 0.07 w=-0.07 w=0.07 是用于控制准确率和FLOPS之间权衡的超参数

EfficientNet-B0的主要构建模块是移动反向瓶颈卷积(MBConv, Mobile Inverted Bottleneck Convolution),并添加了挤压-激励(Squeeze-and-Excitation)优化。MBConv首先由MobileNetV2提出,具有以下特点:

  1. 使用1×1卷积扩展通道数(通常扩展6倍)
  2. 使用深度可分离卷积进行高效特征提取
  3. 使用1×1卷积将通道数降回原来水平
  4. 添加残差连接以改善梯度流

EfficientNet-B0的架构详细信息如下表所示:

阶段 操作符 分辨率 通道数 层数
1 Conv3x3 224×224 32 1
2 MBConv1, k3x3 112×112 16 1
3 MBConv6, k3x3 112×112 24 2
4 MBConv6, k5x5 56×56 40 2
5 MBConv6, k3x3 28×28 80 3
6 MBConv6, k5x5 14×14 112 3
7 MBConv6, k5x5 14×14 192 4
8 MBConv6, k3x3 7×7 320 1
9 Conv1x1 & Pooling & FC 7×7 1280 1

其中:

  • MBConv1表示扩展因子为1的MBConv(即不扩展通道数)
  • MBConv6表示扩展因子为6的MBConv
  • k3x3和k5x5表示卷积核大小

3.2 EfficientNet 系列缩放

从EfficientNet-B0基准网络出发,作者应用复合缩放方法分两步进行缩放:

步骤1:固定 ϕ = 1 \phi = 1 ϕ=1,假设资源增加一倍,进行小规模网格搜索确定 α \alpha α, β \beta β, γ \gamma γ 的最佳值。对于EfficientNet-B0,最佳值为 α = 1.2 \alpha = 1.2 α=1.2, β = 1.1 \beta = 1.1 β=1.1, γ = 1.15 \gamma = 1.15 γ=1.15,满足约束条件 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 αβ2γ22

步骤2:固定 α \alpha α, β \beta β, γ \gamma γ 为常量,使用不同的 ϕ \phi ϕ 值缩放基准网络,得到EfficientNet-B1到B7。

这种两步缩放方法的优势在于,只需要在小型基准网络上搜索一次 α \alpha α, β \beta β, γ \gamma γ 值(步骤1),然后就可以使用相同的缩放系数来扩展所有其他模型(步骤2)。这避免了在更大的模型上进行昂贵的搜索。

4. 实验结果

4.1 在现有网络上应用复合缩放法

为了验证复合缩放法的有效性,作者将其应用于现有的流行网络,包括MobileNetV1、MobileNetV2和ResNet-50。

实验结果如下表所示:

模型 FLOPS Top-1 准确率
基准 MobileNetV1 0.6B 70.6%
通过宽度缩放 MobileNetV1 (w=2) 2.2B 74.2%
通过分辨率缩放 MobileNetV1 (r=2) 2.2B 72.7%
复合缩放 MobileNetV1 (d=1.4, w=1.2, r=1.3) 2.3B 75.6%
基准 MobileNetV2 0.3B 72.0%
通过深度缩放 MobileNetV2 (d=4) 1.2B 76.8%
通过宽度缩放 MobileNetV2 (w=2) 1.1B 76.4%
通过分辨率缩放 MobileNetV2 (r=2) 1.2B 74.8%
复合缩放 MobileNetV2 1.3B 77.4%
基准 ResNet-50 4.1B 76.0%
通过深度缩放 ResNet-50 (d=4) 16.2B 78.1%
通过宽度缩放 ResNet-50 (w=2) 14.7B 77.7%
通过分辨率缩放 ResNet-50 (r=2) 16.4B 77.5%
复合缩放 ResNet-50 16.7B 78.8%

结果表明,与单维度缩放方法相比,复合缩放方法在所有这些网络上都能显著提高准确率,证明了该方法对一般现有ConvNets的有效性。

4.2 ImageNet上的结果

作者在ImageNet数据集上训练了EfficientNet系列模型(B0-B7),使用以下设置:

  • RMSProp优化器,衰减0.9,动量0.9
  • 批量归一化动量0.99
  • 权重衰减1e-5
  • 初始学习率0.256,每2.4个epochs衰减0.97
  • 使用Swish激活函数
  • 使用AutoAugment进行数据增强
  • 使用随机深度(stochastic depth)进行正则化,存活概率为0.8
  • 从EfficientNet-B0到B7线性增加Dropout比例(从0.2到0.5)

EfficientNet模型在ImageNet数据集上取得了令人印象深刻的结果:

模型 Top-1 准确率 Top-5 准确率 参数数量 FLOPS
EfficientNet-B0 77.1% 93.3% 5.3M 0.39B
EfficientNet-B1 79.1% 94.4% 7.8M 0.70B
EfficientNet-B2 80.1% 94.9% 9.2M 1.0B
EfficientNet-B3 81.6% 95.7% 12M 1.8B
EfficientNet-B4 82.9% 96.4% 19M 4.2B
EfficientNet-B5 83.6% 96.7% 30M 9.9B
EfficientNet-B6 84.0% 96.8% 43M 19B
EfficientNet-B7 84.3% 97.0% 66M 37B

与现有最先进模型的对比:

  • EfficientNet-B7达到了84.3%的top-1准确率,与当时最先进的GPipe模型(84.3%)相当,但参数量减少了8.4倍(66M vs 557M),推理速度提高了6.1倍
  • 与广泛使用的ResNet-50相比,EfficientNet-B4将top-1准确率从76.3%提高到83.0%(+6.7%),同时FLOPS相似
  • EfficientNet-B3比ResNeXt-101高0.7%准确率,但使用的FLOPS少18倍

这些结果表明,EfficientNet不仅规模小,而且计算效率高。作者还测量了CPU上的实际推理延迟:

  • EfficientNet-B1比ResNet-152快5.7倍
  • EfficientNet-B7比GPipe快约6.1倍

4.3 迁移学习结果

作者还评估了EfficientNet在八个广泛使用的迁移学习数据集上的性能:

  1. CIFAR-10
  2. CIFAR-100
  3. Birdsnap
  4. Stanford Cars
  5. Flowers
  6. FGVC Aircraft
  7. Oxford-IIIT Pets
  8. Food-101

实验采用ImageNet预训练的检查点,然后在新数据集上微调。结果如下:

数据集 最佳公开可用模型 准确率 参数数量 EfficientNet模型 准确率 参数数量(比率)
CIFAR-10 NASNet-A 98.0% 85M EfficientNet-B0 98.1% 4M (21x)
CIFAR-100 NASNet-A 87.5% 85M EfficientNet-B0 88.1% 4M (21x)
Birdsnap Inception-v4 81.8% 41M EfficientNet-B5 82.0% 28M (1.5x)
Stanford Cars Inception-v4 93.4% 41M EfficientNet-B3 93.6% 10M (4.1x)
Flowers Inception-v4 98.5% 41M EfficientNet-B5 98.5% 28M (1.5x)
FGVC Aircraft Inception-v4 90.9% 41M EfficientNet-B3 90.7% 10M (4.1x)
Oxford-IIIT Pets ResNet-152 94.5% 58M EfficientNet-B4 94.8% 17M (5.6x)
Food-101 Inception-v4 90.8% 41M EfficientNet-B4 91.5% 17M (2.4x)

与最先进的结果相比:

数据集 最佳报告模型 准确率 参数数量 EfficientNet模型 准确率 参数数量(比率)
CIFAR-10 GPipe 99.0% 556M EfficientNet-B7 98.9% 64M (8.7x)
CIFAR-100 GPipe 91.3% 556M EfficientNet-B7 91.7% 64M (8.7x)
Birdsnap GPipe 83.6% 556M EfficientNet-B7 84.3% 64M (8.7x)
Stanford Cars DAT 94.8% - EfficientNet-B7 94.7% -
Flowers DAT 97.7% - EfficientNet-B7 98.8% -
FGVC Aircraft DAT 92.9% - EfficientNet-B7 92.9% -
Oxford-IIIT Pets GPipe 95.9% 556M EfficientNet-B6 95.4% 41M (14x)
Food-101 GPipe 93.0% 556M EfficientNet-B7 93.0% 64M (8.7x)

总结:

  1. 与公开可用模型相比,EfficientNet模型平均减少了4.7倍(最高21倍)的参数,同时实现了更好的准确率。
  2. 与最先进模型相比,包括动态自适应迁移学习(DAT)和使用专门的流水线并行库训练的GPipe,EfficientNet模型在8个数据集中的5个上超过了它们的准确率,同时平均减少了9.6倍参数。

5. 可视化分析

为了更好地理解为什么复合缩放方法优于其他方法,作者比较了不同缩放方法的类激活图(Class Activation Map, CAM)。选取了几个有代表性的模型进行比较,这些模型都从相同的基线缩放而来:

模型 FLOPS Top-1 准确率
基准模型 (EfficientNet-B0) 0.4B 77.3%
通过深度缩放 (d=4) 1.8B 79.0%
通过宽度缩放 (w=2) 1.8B 78.9%
通过分辨率缩放 (r=2) 1.9B 79.1%
复合缩放 (d=1.4, w=1.2, r=1.3) 1.8B 81.1%

结果表明,使用复合缩放的模型倾向于关注更多相关区域和更多对象细节,而其他模型要么缺乏对象细节,要么无法捕获图像中的所有对象。这直观地解释了为什么复合缩放模型能够实现更高的准确率。

6. 复合缩放法的进一步分析

为了更清楚地了解复合缩放法的贡献,作者分离了缩放方法与EfficientNet架构的影响,对EfficientNet-B0基准网络使用不同的缩放方法进行比较。

结果表明:

  • 所有缩放方法都能随着FLOPS增加而提高准确率
  • 复合缩放法能够比其他单维度缩放法提高多达2.5%的准确率
  • 当FLOPS增加到5亿以上时,复合缩放法与单维度缩放法的差距更加明显

这充分证明了复合缩放法的重要性,并强调了在神经网络缩放中平衡不同维度的必要性。

7. 结论与意义

7.1 主要贡献

EfficientNet的主要贡献包括:

  1. 复合缩放方法:提出了一种简单而高效的复合缩放方法,使用复合系数统一缩放网络宽度、深度和分辨率,解决了卷积神经网络缩放中的一个重要但缺失的部分
  2. 系统性研究:系统性研究了模型缩放的影响,发现平衡网络宽度、深度和分辨率可以获得更好的性能
  3. EfficientNet架构:开发了新的EfficientNet系列模型,在ImageNet和多种迁移学习数据集上取得了最先进的性能,同时大幅减少了模型大小和计算成本

7.2 实践意义

EfficientNet的成功为未来的神经网络设计提供了重要启示:

  1. 平衡不同维度:在网络缩放中平衡不同维度至关重要,而不是仅关注单一维度的扩展
  2. 资源高效模型:对于资源受限的环境(如移动设备)特别有价值,因为它允许以最少的资源获得最大的性能提升
  3. 迁移学习能力:EfficientNet展示了出色的迁移学习能力,表明其学习的特征具有很好的泛化性

EfficientNet参考文献

  • Tan, M., & Le, Q. V. (2019). EfficientNet: Rethinking model scaling for convolutional neural networks. Proceedings of the 36th International Conference on Machine Learning (ICML), 6105-6114.