EfficientNet:Rethinking Model Scaling for Convolutional Neural Networks(中文翻译)

摘要

卷积神经网络 (ConvNets) 通常是在固定资源预算下开发的,如果有更多资源可用,则可以扩大规模以提高准确性。 在本文中,我们系统地研究了模型缩放并确定仔细平衡网络深度、宽度和分辨率可以带来更好的性能。 基于这一观察,我们提出了一种新的缩放方法,该方法使用简单而高效的复合系数统一缩放深度/宽度/分辨率的所有维度。 我们证明了这种方法在扩大 MobileNets 和 ResNet 方面的有效性。
为了更进一步,我们使用神经架构搜索来设计一个新的基线网络并将其扩展以获得一系列模型,称为 EfficientNets,它比以前的 ConvNets 实现了更好的准确性和效率。 特别是,我们的 EfficientNet-B7 在 ImageNet 上达到了最先进的 84.3% 的 top-1 准确率,同时比现有最好的 ConvNet 小 8.4 倍,推理速度快 6.1 倍。 我们的 EfficientNets 在 CIFAR-100(91.7%)、Flowers (98.8%) 和其他 3 个迁移学习数据集上也能很好地迁移并达到最先进的精度,参数少了一个数量级。 源代码位于添加链接描述

1 引言

扩大 ConvNets 被广泛用于实现更好的准确性。 例如,ResNet (He et al., 2016) 可以通过使用更多层从 ResNet-18 扩展到 ResNet-200; 最近,GPipe(Huang 等人,2018 年)通过将基线模型放大四倍,实现了 84.3% 的 ImageNet top-1 准确率。 然而,扩展 ConvNets 的过程从来没有被很好地理解,目前有很多方法可以做到。 最常见的方法是按深度(He 等人,2016 年)或宽度(Zagoruyko 和 Komodakis,2016 年)扩展 ConvNet。 另一种不太常见但越来越流行的方法是按图像分辨率放大模型(Huang et al., 2018)。 在之前的工作中,通常只缩放三个维度中的一个——深度、宽度和图像大小。 尽管可以任意缩放两个或三个维度,但任意缩放需要繁琐的手动调整,并且仍然经常产生次优的精度和效率。
在本文中,我们想研究和重新思考扩大 ConvNets 的过程。特别是,我们研究了一个核心问题:是否有一种原则性的方法来扩大 ConvNets 以实现更好的准确性和效率?我们的实证研究表明,平衡网络宽度/深度/分辨率的所有维度至关重要,令人惊讶的是,这种平衡可以通过简单地以恒定比率缩放每个维度来实现。基于这一观察,我们提出了一种简单而有效的复合缩放方法。与任意缩放这些因素的传统做法不同,我们的方法使用一组固定缩放系数统一缩放网络宽度、深度和分辨率。例如,如果我们想使用 2^N 倍的计算资源,那么我们可以简单地将网络深度增加 α ^N ,宽度增加 β ^N ,图像大小增加 γ ^N ,其中 α, β, γ 是由下式确定的常数系数对原始小模型的小网格搜索。图 2 说明了我们的缩放方法与传统方法之间的区别。
直观上,复合缩放方法是有意义的,因为如果输入图像更大,那么网络需要更多层来增加感受野和更多通道以在更大的图像上捕获更多细粒度的图案。 事实上,之前的理论(Raghu et al., 2017; Lu et al., 2018)和实证结果(Zagoruyko & Komodakis, 2016)都表明网络宽度和深度之间存在一定的关系,但据我们所知,我们 是第一个凭经验量化网络宽度、深度和分辨率三个维度之间关系的人。
我们证明我们的缩放方法在现有的 MobileNets(Howard 等人,2017;Sandler 等人,2018 年)和 ResNet(He 等人,2016 年)上运行良好。值得注意的是,模型缩放的有效性在很大程度上取决于基线网络;为了更进一步,我们使用神经架构搜索(Zoph & Le,2017 年;Tan 等人,2019 年)来开发一个新的基线网络,并对其进行扩展以获得一系列模型,称为 EfficientNets。图 1 总结了 ImageNet 的性能,其中我们的 EfficientNet 明显优于其他 ConvNet。特别是,我们的 EfficientNet-B7 超过了现有的最佳 GPipe 精度(Huang et al., 2018),但使用的参数减少了 8.4 倍,推理运行速度提高了 6.1 倍。与广泛使用的 ResNet-50 (He et al.,2016) 相比,我们的 EfficientNet-B4 将 top-1 的准确率从 76.3% 提高到 83.0% (+6.7%),并具有类似的 FLOPS。除了 ImageNet,EfficientNets 在 8 个广泛使用的数据集中的 5 个上也能很好地传输并实现最先进的精度,同时将参数减少高达现有 ConvNet 的 21 倍。
在这里插入图片描述
在这里插入图片描述

2 Related Work

**ConvNet Accuracy:**自从 AlexNet(Krizhevsky 等人,2012 年)赢得 2012 年 ImageNet 竞赛以来,ConvNets 通过变得更大而变得越来越准确:而 2014 年 ImageNet 冠军 GoogleNet(Szegedy 等人,2015 年)实现了 74.8% 的 top-1 准确率,约为 6.8 M 个参数,2017 年 ImageNet 获胜者 SENet(Hu et al., 2018)在 145M 参数下达到了 82.7% 的 top-1 准确率。最近,GPipe (Huang et al., 2018) 使用 557M 参数进一步将最先进的 ImageNet top-1 验证准确率推到了 84.3%:它太大了,只能用专门的管道并行库进行训练通过划分网络并将每个部分分散到不同的加速器。虽然这些模型主要是为 ImageNet 设计的,但最近的研究表明,更好的 ImageNet 模型在各种迁移学习数据集(Kornblith 等人,2019 年)和其他计算机视觉任务(如对象检测)中也表现得更好(He 等人, 2016 年;谭等人,2019 年)。尽管更高的精度对于许多应用程序至关重要,但我们已经达到了硬件内存限制,因此进一步的精度提升需要更高的效率。
**ConvNet Efficiency:**深度卷积网络通常被过度参数化。模型压缩(Han 等人,2016 年;He 等人,2018 年;Yang 等人,2018 年)是一种通过以精度换取效率来减小模型大小的常用方法。随着手机变得无处不在,手工制作高效的移动尺寸 ConvNets 也很常见,例如 SqueezeNets(Iandola 等人,2016 年;Gholami 等人,2018 年)、MobileNets(Howard 等人,2017 年;Sandler 等人,2018 年)。 , 2018) 和 ShuffleNets (Zhang et al., 2018; Ma et al., 2018)。最近,神经架构搜索在设计高效的移动尺寸 ConvNet 方面变得越来越流行(Tan 等人,2019 年;Cai 等人,2019 年),并且通过广泛调整网络宽度、深度,实现了比手工制作的移动 ConvNets 更高的效率,卷积核类型和大小。然而,尚不清楚如何将这些技术应用于具有更大设计空间和更昂贵调整成本的更大模型。在本文中,我们旨在研究超越最先进精度的超大型 ConvNet 的模型效率。为了实现这个目标,我们求助于模型缩放。
**Model Scaling:**有多种方法可以针对不同的资源限制缩放 ConvNet:ResNet (He et al.,2016) 可以通过调整网络深度 (#layers) 缩小(例如,ResNet-18)或放大(例如,ResNet-200) ,而 WideResNet (Zagoruyko & Komodakis, 2016) 和 MobileNets (Howard et al., 2017) 可以按网络宽度 (#channels) 进行缩放。 众所周知,更大的输入图像尺寸将有助于提高准确性,但会带来更多 FLOPS 的开销。 尽管先前的研究(Raghu 等人,2017 年;Lin 和 Jegelka,2018 年;Sharir 和 Shashua,2018 年;Lu 等人,2018 年)表明网络深度和宽度对于 ConvNets 的表达能力都很重要,但它仍然是一个 如何有效地扩展 ConvNet 以实现更高的效率和准确性的开放性问题。 我们的工作系统地和实证地研究了网络宽度、深度和分辨率的所有三个维度的 ConvNet 缩放。

3 Compound Model Scaling

在本节中,我们将制定缩放问题,研究不同的方法,并提出我们新的缩放方法。

3.1 Problem Formulation

ConvNet 层 i 可以定义为一个函数: Y i = F i ( X i ) Y i =F i (X i ) Yi=Fi(Xi),其中 F i F i Fi是算子, Y i Y i Yi 是输出张量, X i X i Xi 是输入张量,张量形状为 < H i , W i , C i > 1 <H i , Wi , C i>^1 <Hi,Wi,Ci>1 ,其中 H i H i Hi W i W i Wi 是空间维度, C i C i Ci 是通道维度。
ConvNet N 可以由 J 个组合层列表表示:。 在实践中,ConvNet 层通常被划分为多个阶段,每个阶段的所有层共享相同的架构:例如,ResNet (He et al., 2016) 有五个阶段,每个阶段的所有层都具有相同的卷积类型,除了 第一层执行下采样。 因此,我们可以将 ConvNet 定义为:

3.2 Scaling Dimensions

问题2的主要难点是最优的d、w、r相互依赖,在不同的资源约束下,其值会发生变化。 由于这个困难,传统方法主要在以下维度之一中扩展 ConvNets:
Depth(d): 缩放网络深度是许多 ConvNet 最常用的方法(He 等,2016;Huang 等,2017;Szegedy 等,2015;2016)。 直觉是,更深层次的 ConvNet 可以捕获更丰富、更复杂的特征,并能很好地泛化新任务。 然而,由于梯度消失问题,更深的网络也更难训练(Zagoruyko & Komodakis,2016 年)。尽管有几种技术,例如跳过连接(He 等人,2016 年)和批量归一化(Ioffe & Szegedy,2015 年) ,缓解了训练问题,非常深的网络的精度增益会降低:例如,ResNet-1000 具有与 ResNet-101 相似的精度,即使它有更多的层。 图 3(中)显示了我们对具有不同深度系数 d 的基线模型进行缩放的实证研究,进一步表明非常深的 ConvNet 的准确度回报递减。
Width(w): 缩放网络宽度通常用于小尺寸模型(Howard 等人,2017 年;Sandler 等人,2018 年;Tan 等人,2019 年)2。 正如 (Zagoruyko & Komodakis, 2016) 中所讨论的那样,更广泛的网络往往能够捕获更细粒度的特征并且更容易训练。 然而,极宽但浅的网络往往有困难
捕获更高级别特征的关系。 我们在图 3(左)中的实证结果表明,当网络随着 w 的增大而变得更宽时,准确度会迅速饱和。
**Resolution®:**使用更高分辨率的输入图像,ConvNets 可以捕获更细粒度的模式。从早期 ConvNets 的 224x224 开始,现代 ConvNets 倾向于使用 299x299 (Szegedy et al., 2016) 或 331x331(Zoph et al., 2018) 以获得更好的准确性 . 最近,GPipe (Huang et al., 2018) 以 480x480 的分辨率实现了最先进的 ImageNet 精度。 更高分辨率,例如 600x600,也广泛用于目标检测 ConvNets (He et al., 2017; Lin et al., 2017)。 图 3(右)显示了缩放网络分辨率的结果,其中确实更高的分辨率提高了精度,但精度增益在非常高的分辨率下会降低(r = 1.0 表示分辨率 224x224,r = 2.5 表示分辨率 560x560) 。
上述分析使我们得出第一个观察结果:扩大网络宽度、深度或分辨率的任何维度都可以提高精度,但对于更大的模型,精度增益会降低。

3.3 Compount Scaling

我们凭经验观察到不同的缩放维度不是独立的。 直觉上,对于更高分辨率的图像,我们应该增加网络深度,这样更大的感受野可以帮助捕获更大图像中包含更多像素的相似特征。 相应地,我们也应该在分辨率较高时增加网络宽度,以便在高分辨率图像中以更多像素捕获更细粒度的图案。 这些直觉表明我们需要协调和平衡不同的缩放维度而不是传统的单维缩放。
为了验证我们的直觉,我们比较了不同网络深度和分辨率下的宽度缩放,如图 4 所示。如果我们只缩放网络宽度 w 而不改变深度 (d=1.0) 和分辨率 (r=1.0),精度会很快饱和。 随着更深 (d=2.0) 和更高分辨率 (r=2.0),宽度缩放在相同的 FLOPS 成本下实现了更好的精度。 这些结果使我们得出第二个观察结果:
为了追求更好的精度和效率,在 ConvNet 缩放过程中平衡网络宽度、深度和分辨率的所有维度至关重要。
事实上,之前的一些工作(Zoph 等人,2018 年;Real 等人,2019 年)已经尝试任意平衡网络宽度和深度,但它们都需要繁琐的手动调整。
在本文中,我们提出了一种新的复合缩放方法,它使用复合系数 Ø Ø Ø 以有原则的方式统一缩放网络宽度、深度和分辨率:
在这里插入图片描述
其中 α α α β β β γ γ γ 是可以通过小型网格搜索确定的常数。 直观地说, Ø Ø Ø 是用户指定的系数,用于控制模型缩放可用的资源数量,而 α α α β β β γ γ γ分别指定如何将这些额外资源分配给网络宽度、深度和分辨率。 值得注意的是,常规卷积运算的 FLOPS 与 d d d, w 2 w^2 w2 , r 2 r^2 r2 成正比,即网络深度加倍会使 FLOPS 加倍,但网络宽度或分辨率加倍会使 FLOPS 增加四倍。 由于卷积运算通常在 ConvNet 中占主导地位,因此使用等式 3 缩放 ConvNet 将大约增加总 FLOPS ( ( (α · β 2 β^2 β2 · γ 2 γ^2 γ2)^ Ø Ø Ø 。 在本文中,我们约束 α α α · β 2 β^2 β2 · γ 2 γ^2 γ2 ≈ 2 使得对于任何新的 Ø Ø Ø,总 FLOPS 将大约 3 增加 2 Ø 2^Ø 2Ø

4 EfficeintNet Architecture

由于模型缩放不会改变基线网络中的层算子 F i Fi Fi ,因此拥有一个好的基线网络也很关键。 我们将使用现有的 ConvNet 评估我们的缩放方法,但为了更好地证明我们的缩放方法的有效性,我们还开发了一个新的移动尺寸基线,称为 EfficientNet。

受 (Tan et al., 2019) 的启发,我们通过利用优化准确性和 FLOPS 的多目标神经架构搜索来开发我们的基线网络。具体来说,我们使用与 (Tan et al., 2019) 相同的搜索空间,并使用 A C C ( m ) x [ F L O P S ( m ) / T ] w ACC(m)x[FLOPS(m)/T]^w ACC(m)x[FLOPS(m)/T]w 作为优化目标,其中 A C C ( m ) x [ F L O P S ( m ) / T ] w ACC(m)x[FLOPS(m)/T]^w ACC(m)x[FLOPS(m)/T]w 表示模型 m m m 的精度和 FLOPS, T T T 是目标 FLOPS, w w w=-0.07 是控制精度和 FLOPS 之间权衡的超参数。与 (Tan et al., 2019;Cai et al., 2019) 不同,这里我们优化 FLOPS 而不是延迟,因为我们不针对任何特定的硬件设备。我们的搜索产生了一个高效的网络,我们将其命名为 EfficientNet-B0。由于我们使用与 (Tan et al., 2019) 相同的搜索空间,因此架构类似于 MnasNet,除了我们的 EfficientNet-B0 由于更大的 FLOPS 目标(我们的 FLOPS 目标是 400M)而稍微大一些。表 1 显示了 EfficientNet-B0 的架构。它的主要构建块是移动反向瓶颈 MBConv(Sandler 等人,2018 年;Tan 等人,2019 年),我们还添加了挤压和激励优化(Hu 等人,2018 年)。从基线 EfficientNet-B0 开始,我们应用我们的复合缩放方法通过两个步骤对其进行缩放:
• 第 1 步:我们首先确定 Ø Ø Ø = 1,假设有两倍以上的可用资源,然后根据等式 2 和 3 对 α α α β β β γ γ γ 进行小的网格搜索。特别是,我们发现 EfficientNet-B0 的最佳值为 α α α = 1.2, β β β =1.1, γ γ γ = 1.15, 在 α α α · β 2 β^2 β2 · γ 2 γ^2 γ2 ≈ 2 的约束下。
• 第 2 步:然后我们将 α α α β β β γ γ γ固定为常数,并使用等式 3 扩大具有不同 Ø Ø Ø的基线网络,以获得 EfficientNet-B1 到 B7(表 2 中的详细信息)。
值得注意的是,通过直接在大型模型周围搜索 α α α β β β γ γ γ 可以实现更好的性能,但在大型模型上搜索成本变得高得令人望而却步。 我们的方法通过仅在小型基线网络上搜索一次(步骤 1)来解决这个问题,然后对所有其他模型使用相同的缩放系数(步骤 2)。

5 实验

在本节中,我们将首先评估我们在现有 ConvNets 和新提出的 EfficientNets 上的缩放方法。

5.1 Scaling Up MobileNets and ResNets

作为概念证明,我们首先将我们的缩放方法应用于广泛使用的 MobileNets(Howard 等人,2017 年;Sandler 等人,2018 年)和 ResNet(He 等人,2016 年)。 表 3 显示了以不同方式缩放它们的 ImageNet 结果。 与其他单维缩放方法相比,我们的复合缩放方法提高了所有这些模型的准确性,表明我们提出的缩放方法对现有的通用卷积网络的有效性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.2 ImageNet Results for EfficientNet

我们使用与 (Tan et al., 2019) 类似的设置在 ImageNet 上训练我们的 EfficientNet 模型:RMSProp 优化器,衰减为 0.9,动量为 0.9; 批量规范动量 0.99;权重衰减 为1e-5; 初始学习率为 0.256,每 2.4 个 epoch 衰减 0.97。 我们还使用 SiLU (Swish-1) 激活,AutoAugment(Cubuk 等人,2019 年)和随机深度(Huang 等人,2018 年)生存概率为 0.8。众所周知,更大的模型需要更多的正则化,我们将 EfficientNet-B0 的 dropout 比率从 0.2 线性增加到 B7 的 0.5。我们将训练集中随机抽取的 25K 个图像保留为一个 minival 集,并在这个 minival 上执行提前停止; 然后我们评估原始验证集上的早期停止检查点,以报告最终验证的准确性。
在这里插入图片描述
在这里插入图片描述
表 2 显示了从相同基线 EfficientNet-B0 扩展的所有 EfficientNet 模型的性能。我们的 EfficientNet 模型通常使用的参数和 FLOPS 比其他具有相似精度的 ConvNet 少一个数量级。特别是,我们的 EfficientNet-B7 在 66M 参数和 37B FLOPS 下达到了 84.3% 的 top1 准确率,比之前最好的 GPipe(Huang et al.,2018)更准确,但小 8.4 倍。这些收益来自为 EfficientNet 定制的更好的架构、更好的扩展和更好的训练设置。

图 1 和图 5 说明了代表性 ConvNet 的参数准确度和 FLOPS 准确度曲线,其中我们的缩放 EfficientNet 模型比其他 ConvNet 以更少的参数和 FLOPS 实现了更高的准确度。 值得注意的是,我们的 EfficientNet 模型不仅体积小,而且计算成本也更低。 例如,我们的 EfficientNet-B3 实现了比 ResNeXt-101 (Xie et al., 2017) 高 18 倍的 FLOPS。为了验证延迟,我们还在真实 CPU 上测量了几个代表性 CovNet 的推理延迟,如图所示 在表 4 中,我们报告了 20 次运行的平均延迟。 我们的 EfficientNet-B1 的运行速度比广泛使用的 ResNet-152 快 5.7 倍,而 EfficientNet-B7 的运行速度比 GPipe 快约 6.1 倍(Huang et al., 2018),这表明我们的 EfficientNets 在实际硬件上确实很快。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 Transfer Learning Results for EfficientNet

我们还在一系列常用的迁移学习数据集上评估了我们的 EfficientNet,如表 6 所示。我们从 (Kornblith et al., 2019) 和 (Huang et al., 2018) 中借用了相同的训练设置,它们采用 ImageNet 预训练检查点并在新数据集上进行微调。表 5 显示了迁移学习的性能:
(1) 与 NASNet-A (Zophet al., 2018) 和 Inception-v4 (Szegedy et al., 2017) 等公开可用模型相比,我们的 EfficientNet 模型以 4.7 倍的平均(最高 21 倍)参数实现了更好的精度减少。
(2) 与最先进的模型相比,包括动态合成训练数据的 DAT (Ngiam et al., 2018) 和 GPipe (Huang
et al., 2018) 使用专门的管道并行性进行训练,我们的 EfficientNet 模型在 8 个数据集中的 5 个中仍然超过其精度,但使用的参数减少了 9.6 倍 图 6 比较了各种模型的精度-参数曲线。
总的来说,我们的 EfficientNets 始终以比现有模型少一个数量级的参数实现更好的准确性,包括 ResNet(He 等人,2016)、DenseNet(Huang 等人,2017)、Inception(Szegedyet al.,2017)、和 NASNet(Zoph 等人,2018 年)。

6 Discussion

为了区分我们提出的缩放方法对 EfficientNet 架构的贡献,图 8 比较了相同 EfficientNet-B0 基线网络的不同缩放方法的 ImageNet 性能。一般来说,所有缩放方法都以更多的 FLOPS 为代价来提高准确性,但我们的复合缩放方法可以比其他单维缩放方法进一步提高准确性,最多可提高 2.5%,这表明我们提出的复合缩放方法的重要性。为了进一步理解为什么我们的复合缩放方法比其他方法更好,图 7 比较了几个具有不同缩放方法的代表性模型的类激活图 (Zhou et al., 2016)。所有这些模型都从相同的基线进行缩放,其统计数据如表 7 所示。图像是从 ImageNet 验证集中随机挑选的。如图所示,复合缩放的模型倾向于关注具有更多物体细节的相关区域,而其他模型要么缺乏物体细节,要么无法捕捉图像中的所有物体。

7 Conclusion

在本文中,我们系统地研究了 ConvNet 缩放,并发现仔细平衡网络宽度、深度和分辨率是一个重要但缺失的部分,这阻碍了我们提高准确性和效率。为了解决这个问题,我们提出了一种简单高效的复合缩放方法,它使我们能够以更原则的方式轻松地将基线 ConvNet 扩展到任何目标资源约束,同时保持模型效率。在这种复合缩放方法的支持下,我们证明了移动大小的 EfficientNet 模型可以非常有效地扩展,在 ImageNet 和五个常用的传输上以更少的参数和 FLOPS 数量级超过最先进的精度 学习数据集。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值