前言
上一篇给大家精读了图像分类中的shuffleNet论文,这次给大家带来EfficientNet 论文精讲,EfficientNet 网络的主要创新点是复合缩放(Compound Scaling):同时调整网络的深度、宽度和输入分辨率,而不是单独调整某一维度。这样能在有限计算资源下提高性能,同时减少计算量。
让我们来看一下吧
原文地址:https://arxiv.org/pdf/1905.11946.pdf
官方代码:https: //github.com/tensorflow/tpu/tree/ master/models/official/efficientnet.
论文讲解+代码讲解:B站 智算学术
领取100G深度学习资料,500多篇经典论文,论文辅导等请关注作者公众号: 智算学术 回复:资料 领取
前景回顾
LeNet 论文精读 | 深度解析+PyTorch代码复现(上)
LeNet 论文精读 | 深度解析+PyTorch代码复现(下)
AlexNet 论文精读 | 深度解析+PyTorch代码复现 (上)
AlexNet 论文精读 | 深度解析+PyTorch代码复现 (下)
GoogleNet论文精读 | 翻译+学习笔记+PyTorch代码复现
ResNet论文精读:翻译+学习笔记+Pytorch代码复现
MobileNetV1论文精读(八):翻译+学习笔记+pytorch代码复现
MobileNetV2论文精读(九):翻译+学习笔记+pytorch代码复现
MobileNetV3论文精读(十):翻译+学习笔记+pytorch代码复现
ShuffleNetV1论文精读(十一):翻译+学习笔记+pytorch代码复现
ShuffleNetV2论文精读(十二):翻译+学习笔记+pytorch代码复现
目录
三、Compound Model Scaling—混合模型缩放
四、EfficientNet Architecture—EfficientNet结构
5.1 Scaling Up MobileNets and ResNets—扩大MobileNets与ResNets
5.2 ImageNet Results for EfficientNet—在ImageNet上的测试
5.3 Transfer Learning Results for EfficientNet—Efficient迁移学习
Abstract—摘要
翻译
卷积神经网络(ConvNets)通常在固定的资源预算下开发,然后如果有更多资源可用,就通过扩展来提高精度。本文系统地研究了模型缩放,发现仔细平衡网络的深度、宽度和分辨率可以带来更好的性能。基于这一观察,我们提出了一种新的缩放方法,通过一个简单而高效的复合系数来均匀缩放深度、宽度和分辨率的所有维度。我们通过将这一方法应用于MobileNets和ResNet的扩展,证明了这一方法的有效性。
为了进一步提升,我们使用神经架构搜索设计了一个新的基准网络,并对其进行扩展,得到了一个模型家族,称为EfficientNets,其在精度和效率上超越了以往的卷积神经网络。特别是,EfficientNet-B7在ImageNet上达到了84.3%的Top-1精度,同时在推理时比现有最好的卷积神经网络小8.4倍,且推理速度快6.1倍。我们的EfficientNets也在CIFAR-100(91.7%)、Flowers(98.8%)以及另外3个迁移学习数据集上取得了最先进的精度,并且参数量少了一个数量级。
精读
主要工作
-
实验观察:单独扩展网络的深度(Depth)、宽度(Width)或分辨率(Resolution)效果有限,需要三者平衡扩展才能获得更好的性能。
-
提出方法:提出了一种新的复合缩放方法(Compound Scaling Method),用一个简单的复合系数统一缩放深度、宽度和分辨率。
-
方法验证:将该缩放方法应用于MobileNets和ResNet,验证了有效性。
-
设计网络:通过神经架构搜索(NAS),设计了新的基准网络,并基于此扩展,提出了新模型系列——EfficientNets。
-
实验结果:EfficientNet-B7在ImageNet上达到84.3% Top-1精度,参数量是最先进网络的1/8,推理速度快6倍。
一、Introduction—简介
翻译
放大卷积神经网络(ConvNets)规模是提升模型准确率的一种常用方法。例如,ResNet(He 等,2016)可以通过增加层数,从 ResNet-18 扩展到 ResNet-200;最近,GPipe(Huang 等,2018)通过将基线模型放大四倍,实现了 84.3% 的 ImageNet top-1 准确率。然而,如何有效地放大卷积神经网络的过程尚未被深入理解,目前也存在多种不同的放大方式。最常见的方法是通过增加网络深度(He 等,2016)或宽度(Zagoruyko 和 Komodakis,2016)来放大网络。另一种相对较少见但越来越流行的方法是通过增加输入图像的分辨率来放大模型(Huang 等,2018)。在以往的工作中,通常只放大深度、宽度或图像分辨率中的一个维度。虽然可以任意同时放大两个或三个维度,但这种随意放大需要繁琐的手动调参,并且通常仍会导致次优的准确率和效率。
在本文中,我们希望系统地研究并重新思考卷积神经网络放大的过程。特别地,我们关注一个核心问题:是否存在一种能够同时提升准确率和效率的、原则性的方法来放大卷积神经网络?我们的实证研究表明:在放大过程中,平衡网络的宽度、深度和输入分辨率至关重要,而且令人惊讶的是,只需以固定比例同时放大这三个维度,即可实现这种平衡。基于这一观察,我们提出了一种简单而有效的复合缩放方法(compound scaling method)。与传统方法随意放大网络宽度、深度或分辨率不同,我们的方法使用一组固定的缩放系数,统一地放大宽度、深度和分辨率。
例如,如果希望使用 2N 倍的计算资源,我们可以简单地将网络深度增加 αN,宽度增加 βN,图像尺寸增加 γN,其中 α、β、γ 是通过在原始小模型上进行小规模网格搜索确定的常数。图 2 直观展示了我们的缩放方法与传统缩放方法的不同之处。从直觉上讲,复合缩放方法是合理的,因为如果输入图像变大,网络就需要更多的层数来增加感受野,也需要更多的通道数来捕获更细粒度的图像特征。
实际上,已有的理论研究(Raghu 等,2017;Lu 等,2018)和实证结果(Zagoruyko 和 Komodakis,2016)都表明网络宽度与深度之间存在某种关系,但据我们所知,我们是首个实证量化网络宽度、深度和输入分辨率三者之间关系的工作。
我们展示了这种缩放方法在现有的 MobileNets(Howard 等,2017;Sandler 等,2018)和 ResNet(He 等,2016)上效果良好。值得注意的是,模型缩放的效果在很大程度上取决于基线网络。为了进一步提升效果,我们采用神经架构搜索(Zoph 和 Le,2017;Tan 等,2019)开发了一个新的基线网络,并通过复合缩放得到了一系列模型,称为 EfficientNets。
图 1 总结了在 ImageNet 上的性能结果,其中我们的 EfficientNets 显著优于其他卷积网络。特别地,EfficientNet-B7 超越了 GPipe(Huang 等,2018)的最佳准确率,但参数数量减少了 8.4 倍,推理速度提升了 6.1 倍。与广泛使用的 ResNet-50(He 等,2016)相比,我们的 EfficientNet-B4 在计算量(FLOPS)相近的情况下,将 top-1 准确率从 76.3% 提升到了 83.0%(提升了 6.7%)。除了在 ImageNet 上表现出色,EfficientNets 在 8 个广泛使用的数据集中的 5 个上也达到了新的最先进准确率。
精读
-
背景问题:
-
放大卷积神经网络(ConvNets)可以提升准确率,但传统上只单独放大深度、宽度或图像分辨率。
-
这种随意放大通常需要繁琐的调参,且效果不理想。
-
-
核心问题:
-
有没有一种原则性的方法,可以在提升准确率的同时保持或提升效率?
-
-
关键发现:
-
平衡放大网络的深度、宽度和分辨率非常重要。
-
只需以固定比例同时放大这三个维度,就能达到更好的效果。
-
-
提出的方法:
-
提出了一个简单但有效的复合缩放方法(Compound Scaling)。
-
使用一组固定的缩放系数(α、β、γ)同时放大深度、宽度和图像分辨率。
-
-
方法直觉:
-
输入图像更大时,需要更深的网络来增加感受野,以及更宽的网络来捕捉更细粒度的特征。
-
-
实验验证:
-
在 MobileNet 和 ResNet 上验证了复合缩放方法的有效性。
-
进一步通过神经架构搜索(NAS)设计了新的基线网络,得到了一系列模型,命名为 EfficientNet。
-
-
结果:
-
EfficientNet 在 ImageNet 上大幅度超越了其他卷积网络。
-
比如,EfficientNet-B7 在参数数量减少 8.4 倍、推理速度提高 6.1 倍的情况下,准确率超过了当时最好的 GPipe 模型。
模型对比图
-
二、Related Work—相关工作
翻译
卷积神经网络(ConvNet)的准确率: 自从 AlexNet(Krizhevsky 等人,2012)赢得 2012 年 ImageNet 比赛以来,卷积神经网络的准确率通过规模增大不断提升: 例如,2014 年的 ImageNet 冠军 GoogleNet(Szegedy 等人,2015)使用大约 680 万个参数,达到了 74.8% 的 top-1 准确率;而 2017 年的冠军 SENet(Hu 等人,2018)则使用 1.45 亿个参数,将 top-1 准确率提升到了 82.7%。 最近,GPipe(Huang 等人,2018)进一步将 ImageNet 验证集 top-1 准确率推高到 84.3%,但模型参数量达到了 5.57 亿,规模巨大,只能通过一种专门的流水线并行库进行训练,将网络分割并分配到不同的加速器上。 虽然这些模型主要是为 ImageNet 设计的,但近期研究表明,ImageNet 上表现更好的模型,在多种迁移学习数据集(Kornblith 等人,2019)和其他计算机视觉任务(如目标检测,He 等人,2016;Tan 等人,2019)上也表现更好。 尽管更高的准确率对于很多应用至关重要,但我们已经触碰到了硬件内存的上限,因此,进一步提升准确率需要提高模型效率。
卷积神经网络(ConvNet)的效率: 深度卷积神经网络通常是过度参数化的。模型压缩(Han 等人,2016;He 等人,2018;Yang 等人,2018)是一种通过牺牲一定准确率来提升效率、减少模型大小的常见方法。 随着手机的普及,手工设计高效、适合移动设备的卷积神经网络也变得常见,比如 SqueezeNets(Iandola 等人,2016;Gholami 等人,2018)、MobileNets(Howard 等人,2017;Sandler 等人,2018)和 ShuffleNets(Zhang 等人,2018;Ma 等人,2018)。 最近,神经架构搜索(Neural Architecture Search,NAS)在设计高效的移动端卷积网络中越来越流行(Tan 等人,2019;Cai 等人,2019),通过精细调整网络宽度、深度、卷积核类型和尺寸,甚至能比手工设计的模型取得更好的效率。 然而,目前尚不清楚这些技术如何应用于大规模模型,因为大模型设计空间更大、调优代价也更高。 在本文中,我们的目标是研究如何提高超大规模卷积神经网络的效率,同时超越当前最先进的准确率。为了达成这个目标,我们选择了模型缩放(model scaling)的方法。
模型缩放(Model Scaling): 根据不同的资源限制,有许多方法可以扩展卷积神经网络: ResNet(He 等人,2016)可以通过调整网络深度(即层数)来缩小(例如 ResNet-18)或扩大(例如 ResNet-200);而 WideResNet(Zagoruyko 和 Komodakis,2016)以及 MobileNets(Howard 等人,2017)可以通过调整网络宽度(即通道数)来扩展。 此外,人们也普遍认识到,增加输入图像尺寸可以提高准确率,但会带来更多的计算开销(FLOPS)。 虽然已有研究(Raghu 等人,2017;Lin 与 Jegelka,2018;Sharir 与 Shashua,2018;Lu 等人,2018)表明网络的深度和宽度对卷积神经网络的表达能力都非常重要,但如何有效地进行缩放以在效率和准确率之间取得更好平衡,仍然是一个开放问题。 我们的工作系统性且实证性地研究了在网络宽度、深度和分辨率三个维度上对卷积神经网络进行缩放的方法。
精读
前人工作的不足
虽然网络发展到现在,将 ImageNet 验证集 top-1 准确率推高到 84.3%,但模型参数量达到了 5.57 亿,规模巨大
在想提升准确率就要从模型的效率方向下手,而不是堆积大量的模型参数
改进方法
NAS用于设计高效的移动端卷积网络,但是如何应用于大规模模型还未可知,所以本文采用了模型缩放的方法
改进方向
前人在改进网络时,都是对网络深度,宽度,分辨率进行单一的改动,并没有有效的进行缩放以在效率和准确率之间取得更好平衡
三、Compound Model Scaling—混合模型缩放
3.1 Problem Formulation—范式化问题
翻译
卷积神经网络(ConvNet)中的第 i 层可以被定义为一个函数:Yi = Fi(Xi),其中 Fi 是操作符,Yi 是输出张量,Xi 是输入张量,张量的形状是〈Hi, Wi, Ci〉,其中 Hi 和 Wi 是空间尺寸,Ci 是通道维度。
一个卷积神经网络 N 可以表示为一组组合层的列表:N = Fk ... F2 F1(X1) = ⊙j=1...k Fj(X1)。
在实际中,卷积网络的层通常被划分为多个阶段(stages),每个阶段中的所有层具有相同的结构:例如,ResNet(He 等,2016)有五个阶段,每个阶段的所有层具有相同的卷积类型,除了第一个层执行下采样。
因此,我们可以将一个卷积网络定义为:N = ⊙i=1...s Fᶦᴸⁱ(X〈Hi, Wi, Ci〉) (式1)其中 Fᶦᴸⁱ 表示在第 i 阶段中将层 Fi 重复 Li 次,〈Hi, Wi, Ci〉表示第 i 层输入张量 X 的形状。
图 2(a) 展示了一个典型的卷积网络,其中空间尺寸逐渐缩小,但通道数随着层数增加而扩展,例如,从初始输入形状〈224, 224, 3〉到最终输出形状〈7, 7, 512〉。不同于常规卷积网络设计主要专注于寻找最优的层结构 Fi,模型扩展(model scaling)尝试在不改变基线网络中预定义的 Fi 的情况下,通过扩展网络的长度(Li)、宽度(Ci)和/或分辨率(Hi, Wi)来提升性能。通过固定 Fi,模型扩展简化了在新的资源约束下的设计问题,但在每层上探索不同的 Li、Ci、Hi、Wi 组合仍然是一个很大的设计空间。
为了进一步减少设计空间,我们限制所有层必须以固定比例进行统一缩放。
我们的目标是在给定资源约束下最大化模型准确率,这可以被表述为一个优化问题:最大化Accuracy(N(d, w, r))使得N(d, w, r) = ⊙i=1...s F̂ᶦᵈ·ᴸⁱ(X〈r·Ĥi, r·Ŵi, w·Ĉi〉)同时满足:
-
Memory(N) ≤ 目标内存限制
-
FLOPS(N) ≤ 目标计算量限制
其中 w、d、r 分别是用于缩放网络宽度、深度和输入分辨率的系数;F̂i、L̂i、Ĥi、Ŵi、Ĉi 是基线网络中预定义的参数(例如参见表1)。
精读
前人设计的网络都是设计一个小bottleneck,然后在进行罗列起来,作者的设计思路是进一步减少设计空间,我们限制所有层必须以固定比例进行统一缩放。
3.2 Scaling Dimensions—维度缩放
翻译
问题2的主要难点在于最优的d、w、r相互依赖,并且在不同的资源约束下它们的值会发生变化。由于这一难度,传统方法通常只在以下维度中扩展ConvNets:
-
深度 (ddd):扩展网络深度是许多ConvNet常用的方式。直觉上,较深的ConvNet能够捕捉到更丰富和复杂的特征,并且在新任务上有较好的泛化能力。然而,较深的网络也更难训练,因为容易出现梯度消失问题。虽然跳跃连接和批量归一化等技术能够缓解训练问题,但非常深的网络的准确性提升会变得越来越小。例如,ResNet-1000的准确性与ResNet-101相似,尽管它有更多层。图3(中)展示了我们在基准模型上使用不同深度系数d进行扩展的实验证明,深度过大的ConvNet的准确性增益是递减的。
-
宽度 (www):扩展网络宽度通常用于小型模型。正如(Zagoruyko & Komodakis,2016)所讨论的,较宽的网络能够捕捉更多细粒度的特征,且训练更容易。然而,极宽但浅的网络在捕捉更高层次特征时会遇到困难。我们的实验证据(图3左)表明,网络变得更宽时,准确性会迅速饱和。
-
分辨率 (rrr):通过更高分辨率的输入图像,ConvNets可以捕捉到更多细粒度的模式。从早期的224x224分辨率开始,现代的ConvNets通常使用299x299(Szegedy等,2016)或331x331(Zoph等,2018)来提高准确性。最近,GPipe(Huang等,2018)通过480x480分辨率实现了ImageNet的最先进准确性。更高分辨率,如600x600,也广泛应用于物体检测的ConvNets(He等,2017;Lin等,2017)。图3(右)展示了扩展网络分辨率的结果,确实较高的分辨率提高了准确性,但非常高分辨率时,准确性增益变得递减(r = 1.0表示224x224分辨率,r = 2.5表示560x560分辨率)。
以上分析得出第一个观察结果:
观察1 – 扩展网络的宽度、深度或分辨率可以提高准确性,但对于更大的模型,准确性增益会递减。
精读
网络宽度、深度和分辨率的最优比例相互依赖,并且在不同资源限制下会发生变化。传统方法通常只在这三个维度之一进行扩展。具体来说:
-
深度:增加网络深度通常可以提高模型的准确性,但深度过大时,准确性增益会递减,且训练变得更加困难。
-
宽度:增加网络宽度能够提高模型的特征提取能力,但当宽度增加到一定程度时,准确性会趋于饱和。
-
分辨率:提高输入图像的分辨率有助于捕捉更多细节,但在高分辨率下,准确性提升会变得缓慢。
3.3 Compound Scaling—混合缩放
翻译
我们通过实验证明,不同的扩展维度并不是独立的。直观地说,对于更高分辨率的图像,我们应该增加网络深度,这样更大的感受野可以帮助捕捉到包含更多像素的更大图像中的相似特征。相应地,当分辨率更高时,我们也应该增加网络宽度,以便在高分辨率图像中捕捉更多细粒度的模式。这些直觉表明,在进行卷积网络扩展时,我们需要协调和平衡不同的扩展维度,而不是采用传统的单一维度扩展。为了验证我们的直觉,我们在不同网络深度和分辨率下比较了宽度扩展,如图4所示。如果我们仅扩展网络宽度w而不改变深度(d=1.0)和分辨率(r=1.0),准确性会很快饱和。在更深的网络(d=2.0)和更高分辨率(r=2.0)下,宽度扩展在相同的FLOPS成本下能实现更好的准确性。这些结果得出第二个观察结论:
观察2 – 为了追求更好的准确性和效率,在扩展卷积网络时,平衡网络宽度、深度和分辨率的各个维度是至关重要的。事实上,之前的一些研究(Zoph等,2018年;Real等,2019年)已经尝试了任意平衡网络宽度和深度,但都需要繁琐的手动调优。
在本文中,我们提出了一种新的复合扩展方法,使用复合系数φ以一种有原则的方式统一扩展网络宽度、深度和分辨率:
深度:d = αφ 宽度:w = βφ 分辨率:r = γφ 使得 α · β² · γ² ≈ 2 α ≥ 1, β ≥ 1, γ ≥ 1
其中,α、β、γ是可以通过小范围网格搜索确定的常数。直观地说,φ是一个用户指定的系数,用来控制可用于模型扩展的额外资源量,而α、β、γ则指定如何将这些额外资源分配给网络宽度、深度和分辨率。值得注意的是,常规卷积操作的FLOPS与d、w²、r²成正比,即加倍网络深度将使FLOPS加倍,但加倍网络宽度或分辨率将使FLOPS增加四倍。由于卷积操作通常主导卷积网络中的计算成本,按照公式3扩展卷积网络将使总FLOPS大约增加(α · β² · γ²)φ。在本文中,我们约束α · β² · γ² ≈ 2,以便对于任何新的φ,总FLOPS大约增加2φ。
精读
本文提出了在扩展卷积神经网络(ConvNet)时,宽度、深度和分辨率需要协调平衡,而非单一维度扩展。
实验结果表明,在提高分辨率时,需要增加网络深度和宽度以提升准确性。在传统方法中,单一维度的扩展(如仅扩展宽度)会导致准确性很快饱和。
本文提出了一种新的复合扩展方法,使用复合系数φ来统一扩展网络的深度、宽度和分辨率。通过调整系数α、β、γ,用户可以控制资源如何分配到各个维度,从而在资源约束下实现最佳性能。
对不同基准网络扩展网络宽度。每个点表示具有不同宽度系数(w)的模型。所有基准网络来自表1。第一个基准网络(d=1.0,r=1.0)具有18个卷积层,分辨率为224x224,而最后一个基准网络(d=2.0,r=1.3)具有36个层,分辨率为299x299。
四、EfficientNet Architecture—EfficientNet结构
翻译
由于模型缩放不会改变基准网络中的层操作符 Fˆi,因此拥有一个良好的基准网络也至关重要。我们将使用现有的 ConvNets 来评估我们的缩放方法,但为了更好地展示我们缩放方法的有效性,我们还开发了一个新的移动设备尺寸的基准网络,称为 EfficientNet。
受 (Tan et al., 2019) 启发,我们通过利用多目标神经架构搜索来开发基准网络,该搜索同时优化准确性和 FLOPS。具体来说,我们使用与 (Tan et al., 2019) 相同的搜索空间,并使用 ACC(m)×[FLOPS(m)/T]w 作为优化目标,其中 ACC(m) 和 FLOPS(m) 分别表示模型 m 的准确性和 FLOPS,T 是目标 FLOPS,w = -0.07 是控制准确性与 FLOPS 之间权衡的超参数。与 (Tan et al., 2019; Cai et al., 2019) 不同,我们在此优化的是 FLOPS 而非延迟,因为我们不针对任何特定的硬件设备。我们的搜索生成了一个高效的网络,我们称之为 EfficientNet-B0。由于我们使用与 (Tan et al., 2019) 相同的搜索空间,架构类似于 Mnas-Net,但由于 FLOPS 目标更大(我们的 FLOPS 目标是 400M),因此我们的 EfficientNet-B0 稍大一些。表1展示了 EfficientNet-B0 的架构。其主要构建块是移动反向瓶颈 MBConv(Sandler et al., 2018; Tan et al., 2019),我们还加入了 squeeze-and-excitation 优化(Hu et al., 2018)。
从基准 EfficientNet-B0 开始,我们应用我们的复合缩放方法通过两步进行扩展: • 步骤 1:我们首先固定 φ = 1,假设有两倍的资源可用,并基于公式 2 和 3 进行小规模网格搜索 α、β、γ。特别地,我们发现 EfficientNet-B0 的最佳值是 α = 1.2,β = 1.1,γ = 1.15,并满足约束条件 α · β2 · γ2 ≈ 2。 • 步骤 2:然后我们将 α、β、γ 固定为常数,并使用公式 3 在不同的 φ 下对基准网络进行扩展,以获得 EfficientNet-B1 到 B7(详细信息见表 2)。
值得注意的是,通过直接在大型模型上搜索 α、β、γ,可能会获得更好的性能,但在较大模型上搜索的成本会变得异常昂贵。我们的方法通过仅在小基准网络上进行一次搜索(步骤 1),然后对所有其他模型使用相同的缩放系数(步骤 2)来解决这个问题。
精读
EfficientNet-B0 基准网络参数
表中第一层是一个conv3x3 的普通卷积,输入为224x224,卷积核个数32,layers 代表模块的重复次数
2到8层是重复MBConv6模块。其中MBConv模块后面跟的数字(MBConv1和MBConv6)代表的是MBConv模块的第一个升维的1x1卷积层,它的卷积核个数是输入特征矩阵channel的倍数
当N = 1 时,不要第一个升维的1x1卷积层,即stage2中的MBConv结构都没有第一个升维的1x1卷积层(这和MobileNetv3网络类似)
关于shortcut 连接,仅当输入MBConv结构的特征矩阵与输出的特征矩阵shape相同才会存在
五、Experiments—实验
在本节中,我们将首先评估我们的缩放方法在现有的卷积神经网络(ConvNets)和新提出的 EfficientNets 上的效果。
5.1 Scaling Up MobileNets and ResNets—扩大MobileNets与ResNets
翻译
作为概念验证,我们首先将我们的缩放方法应用于广泛使用的 MobileNets (Howard et al., 2017; Sandler et al., 2018) 和 ResNet (He et al., 2016)。表 3 显示了以不同方式缩放这些模型的 ImageNet 结果。与其他单一维度缩放方法相比,我们的复合缩放方法在所有这些模型上都提高了准确率,表明我们提出的缩放方法对于现有的卷积神经网络(ConvNets)具有有效性。
精读
缩放 MobileNets 和 ResNet。
表明 这个缩放方法对所有的模型有效!
5.2 ImageNet Results for EfficientNet—在ImageNet上的测试
翻译
我们在 ImageNet 上训练我们的 EfficientNet 模型,使用与 (Tan et al., 2019) 相似的设置:RMSProp 优化器,衰减 0.9,动量 0.9;批量归一化动量 0.99;权重衰减 1e-5;初始学习率 0.256,每 2.4 轮衰减 0.97。我们还使用了 SiLU (Swish-1) 激活函数 (Ramachandran et al., 2018; Elfwing et al., 2018; Hendrycks & Gimpel, 2016)、AutoAugment (Cubuk et al., 2019) 和随机深度 (Huang et al., 2016),生存概率为 0.8。通常知道,较大的模型需要更多的正则化,因此我们线性增加从 EfficientNet-B0 到 B7 的 dropout 比例,从 0.2 到 0.5。我们从训练集随机选取 25K 张图片作为 minival 集合,并在此 minival 上执行早停;然后我们在原始验证集上评估早停的检查点,报告最终的验证精度。
表 2 显示了从相同基线 EfficientNet-B0 扩展的所有 EfficientNet 模型的性能。我们的 EfficientNet 模型通常使用比其他具有类似精度的 ConvNets 少一个数量级的参数和 FLOPS。特别地,我们的 EfficientNet-B7 在 66M 参数和 37B FLOPS 下取得了 84.3% 的 top1 精度,比之前最好的 GPipe (Huang et al., 2018) 更精确,但参数量小 8.4 倍。这些增益来自于更好的架构、更好的扩展和更适合 EfficientNet 的训练设置。
图 1 和图 5 展示了代表性 ConvNets 的参数-精度和 FLOPS-精度曲线,我们扩展后的 EfficientNet 模型在使用更少参数和 FLOPS 的情况下实现了更好的精度。值得注意的是,我们的 EfficientNet 模型不仅体积小,而且计算成本较低。例如,我们的 EfficientNet-B3 在使用 18 倍更少的 FLOPS 的情况下,比 ResNeXt101 (Xie et al., 2017) 获得了更高的精度。
为了验证延迟,我们还测量了一些代表性 ConvNets 在真实 CPU 上的推理延迟,如表 4 所示,报告了 20 次运行的平均延迟。我们的 EfficientNet-B1 比广泛使用的 ResNet-152 快 5.7 倍,而 EfficientNet-B7 比 GPipe (Huang et al., 2018) 快约 6.1 倍,表明我们的 EfficientNet 在真实硬件上确实很快。
精读
列出了所有从 EfficientNet-B0 基线模型扩展的 EfficientNet 模型的性能。EfficientNet-B7 达到了 84.3% 的 top1 精度,参数数量为 66M,FLOPS 为 37B,比现有的最佳 GPipe 模型小 8.4 倍,并且在精度和计算效率上具有更好的平衡
展示了不同 ConvNets 在参数-精度和 FLOPS-精度曲线上的表现。EfficientNet 模型在精度上显著优于其他 ConvNets,同时在参数和 FLOPS 上使用更少的资源,证明了 EfficientNet 的高效性。
列出了不同 ConvNets 在实际 CPU 上的推理延迟。EfficientNet-B1 在推理速度上比 ResNet-152 快 5.7 倍,EfficientNet-B7 比 GPipe 快 6.1 倍,表明 EfficientNet 在实际硬件上的推理速度具有明显优势。
5.3 Transfer Learning Results for EfficientNet—Efficient迁移学习
翻译
我们还在一系列常用的迁移学习数据集上评估了我们的 EfficientNet,如表6所示。我们借用了 (Kornblith et al., 2019) 和 (Huang et al., 2018) 的相同训练设置,使用在 ImageNet 上预训练的检查点,并在新数据集上进行微调。
表5展示了迁移学习的性能:
-
与公开可用的模型相比,如 NASNet-A (Zoph et al., 2018) 和 Inception-v4 (Szegedy et al., 2017),我们的 EfficientNet 模型在减少 4.7 倍平均参数(最高可达 21 倍)的情况下,获得了更好的精度。
-
与最先进的模型相比,包括动态合成训练数据的 DAT (Ngiam et al., 2018) 和通过专用流水线并行训练的 GPipe (Huang et al., 2018),我们的 EfficientNet 模型在 8 个数据集中的 5 个数据集上仍然超越了它们的精度,但参数量少了 9.6 倍。
图6比较了多种模型的精度-参数曲线。总体而言,我们的 EfficientNet 模型在精度上始终优于现有模型,并且使用的参数量少了一个数量级,包括 ResNet (He et al., 2016)、DenseNet (Huang et al., 2017)、Inception (Szegedy et al., 2017) 和 NASNet (Zoph et al., 2018)。
精读
本文的EfficientNets在参数较少的情况下,始终比现有的模型取得更好的准确性。
六、Discussion—讨论
翻译
为了将我们提出的缩放方法的贡献与EfficientNet架构区分开来,图8比较了不同缩放方法对相同EfficientNet-B0基线网络的ImageNet表现。一般来说,所有缩放方法都在增加FLOPS的代价下提高了准确率,但我们的复合缩放方法比其他单维度缩放方法最多提高了2.5%的准确率,表明我们提出的复合缩放方法的重要性。
为了进一步理解为什么我们的复合缩放方法优于其他方法,图7比较了使用不同缩放方法的几个代表性模型的类激活图(Class Activation Map,CAM)。所有这些模型都是从相同的基线网络进行缩放的,其统计数据见表7。图中显示,采用复合缩放的模型往往会集中注意力在更相关的区域,并捕捉更多的物体细节,而其他模型要么缺乏物体细节,要么无法捕捉到图像中的所有物体。
精读
图8结果: 图8展示了不同缩放方法对相同的EfficientNet-B0基线网络的ImageNet表现进行的比较。总的来说,所有缩放方法都在增加计算量(FLOPS)的同时提高了精度,但相比其他单维度缩放方法,我们的复合缩放方法能够进一步提高精度,最多提高了2.5%。这表明了我们提出的复合缩放方法的重要性。
图7结果: 图7展示了使用不同缩放方法的几个代表性模型的类激活图(CAM)。所有这些模型都是从相同的基线网络进行缩放的,且它们的统计数据见表7。图中显示,采用复合缩放的方法倾向于关注更相关的区域,且能捕捉更多的物体细节,而其他模型要么缺乏物体细节,要么无法捕捉到图像中的所有物体。
七、Conclusion—总结
翻译
在本文中,我们系统地研究了ConvNet的缩放,并指出仔细平衡网络宽度、深度和分辨率是一个重要但被忽视的因素,这阻碍了我们在准确性和效率上的进一步提升。为了解决这个问题,我们提出了一种简单且高效的复合缩放方法,该方法使我们能够以更有原则的方式轻松地将基线ConvNet模型扩展到任何目标资源约束,同时保持模型的效率。在这个复合缩放方法的支持下,我们展示了一个移动端大小的EfficientNet模型可以非常有效地进行扩展,在ImageNet和五个常用的迁移学习数据集上,以比现有技术更少的参数和FLOPS超越了最先进的准确性。
精读
-
本文系统研究了ConvNet缩放,发现平衡网络宽度、深度和分辨率是提升准确性和效率的关键因素。
-
提出了一个简单且高效的复合缩放方法,用于在不同资源约束下扩展ConvNet模型,同时保持模型效率。
-
该复合缩放方法能够有效地扩展基线ConvNet,解决了传统单一维度缩放方法的局限性。
-
通过应用这一方法,EfficientNet模型能够在移动端尺寸下,以显著更少的参数和FLOPS,突破最先进的准确性水平。
-
在ImageNet和五个常用的迁移学习数据集上,使用复合缩放的EfficientNet模型在准确性上超过了现有最优模型。