EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

参考文献:https://arxiv.org/pdf/1905.11946.pdf
代码实现:原论文提供https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet
pytorch提供https://github.com/lukemelas/EfficientNet-PyTorch
包括理解!

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

摘要

卷积神经网络(ConvNets)通常是在固定的资源预算下发展起来的,如果有更多的资源可用,则会扩大规模以获得更好的精度。在本文中,我们系统地研究了模型缩放,并仔细验证了网络深度/宽度/分辨率之间的平衡可以获得更好的性能。在此基础上,我们提出了一种新的缩放方法,该方法使用简单而高效的复合系数来对深度/宽度/分辨率的所有维度进行统一缩放,我们在MobileNets和ResNet上展示了这种缩放方法的有效性。

为了进一步研究,我们使用神经架构搜索设计了一个新的baseline网络,并将其扩大以获得一个称为EfficientNets的模型族,该模型比以前所有的卷积神经网络具有更好的精度和效率。特别是,我们的EfficientNet-B7在ImageNet上达到了最先进的84.4%的top-1精度和97.1%的top-5精度,同时比现有最好的卷积神经网络小8.4倍,速度快6.1倍。我们的EfficientNets也可以很好的迁移,并且实现了最先进的精度——CIFAR-100(91.7%)、Flowers(98.8%)、其他3个迁移学习数据集。

两个重要贡献:第一,提出平衡网络深度/宽度/分辨率三个维度的缩放方法;第二,神经架构搜索出EfficientNet骨干网络。

1 引言

为了获得更好的精度,扩大ConvNets规模被广泛使用。例如,ResNet(He et al.,2016)可以通过使用更多的层从ResNet-18扩展到ResNet-200;最近,GPipe(Huang et al.,2018)通过将baseline模型放大四倍,在ImageNet 数据集上实现了84.3%的top-1精度。然而,扩大卷积神经网络的过程从来没有被很好地理解过,目前最常见的方法是放大深度(He et al.,2016)或宽度(Zagoruyko&Komodakis,2016),另一种不太常见但越来越流行的方法是放大图像分辨率(Huang等人,2018)。在以前的工作中,通常只缩放深度、宽度和分辨率三维中的一个,尽管任意放大两个或者三个维度也是可能的,但任意缩放需要繁琐的人工调参,并且常常会产生次优精度和效率。

本文旨在研究和重新思考ConvNets的扩大过程。特别是我们研究了一个中心问题:是否有一种原则性的方法来扩大ConvNets,以获得更好的精度和效率?我们的实验研究表明,平衡网络宽度/深度/分辨率的3个维度是至关重要的,令人惊讶的是,这种平衡可以通过简单地以常量比率缩放每个维度来实现。在此基础上,我们提出了一种简单而有效的复合缩放方法,与传统的任意缩放这些因子的方法不同,我们的方法使用一组固定的缩放系数统一缩放网络宽度、深度和分辨率。例如,如果我们想要使用 2 N 2^N 2N倍的计算资源,那么我们可以简单地将网络深度扩大 α N α^N αN,宽度扩大 β N β^N βN,分辨率扩大 γ N γ^N γN,其中 α , β , γ α,β,γ αβγ是由原始小模型上做小网格搜索确定的常量系数。图2说明了我们的缩放方法和传统方法之间的区别。(理解:从图2可以看出,宽度指通道数、深度指网络叠加层数、分辨率指输入图像尺寸大小)
在这里插入图片描述
直观来讲,如果图像尺寸变大,复合缩放方法是有意义的,因为当图像尺寸变大意味着网络需要更多层来增加接收野,同时需要更多的通道来捕获更大图像上的更细粒度信息。事实上,以往的理论(Raghu et al.,2017;Lu et al.,2018)和实证结果(Zagoruyko&Komodakis,2016)都表明网络宽度和深度之间存在一定的关系,但据我们所知,我们首次实证量化了网络宽度、深度和分辨率三个维度之间的关系。

我们在已经存在的MobileNets(Howard等人,2017;Sandler等人,2018)和ResNet(He等人,2016)上展示了该缩放方法可以工作得很好。值得注意的是,模型缩放的有效性在很大程度上取决于baseline网络,为了进一步研究,我们使用神经架构搜索(Zoph&Le,2017;Tan et al.,2019)来开发新的baseline网络,并将其扩大以获得一系列模型,称为EfficientNets。图1总结了ImageNet的性能,EfficientNets的效率明显优于其他ConvNets,特别是EfficientNet-B7超过了现有的最佳GPipe精度(Huang等人,2018),并且使用的参数少了8.4倍,推理速度快了6.1倍。相比于广泛使用的ResNet-50(He et al.,2016),我们的EfficientNet-B4在相近的flops下将top-1的精度从76.3%提高到83.0%(+6.7%)。除了ImageNet,EfficientNets在其他数据集上表现也很好,在8个广泛应用的数据集中的5个实现了最先进的精度,同时比现有ConvNets减少了多达21倍的参数。
在这里插入图片描述

2 相关工作

ConvNet精度:自从AlexNet(Krizhevsky等人,2012年)赢得2012年ImageNet比赛以来,ConvNet变得越来越精确,变得越来越大,2014年ImageNet冠军GoogleNet(Szegedy等人,2015年)以约680万个参数达到74.8%的top-1精度,2017年ImageNet获奖者SENet(Hu等人,2018年)在145M参数下达到82.7%的top-1精度。最近,GPipe(Huang等人,2018)进一步提高了精度——使用557M参数获得了84.3%的top-1精度,但是它太大了,只能通过分割网络并将每个部分传递到不同的加速器,使用特定的并行化手段对其进行训练。虽然这些模型主要是为ImageNet设计的,但最近的研究表明,迁移到其他数据集(Kornblith等人,2019)和其他计算机视觉任务(例如目标检测)中也表现得很好(He等人,2016;Tan等人,2019)。虽然更高的精度对于许多应用来说是至关重要的,但是我们已经达到了硬件内存的极限,因此进一步的精度增益需要更好的效率。

ConvNet效率:ConvNet的参数过多,模型压缩(Han et al.,2016;He et al.,2018;Yang et al.,2018)是一种通过降低精度来减小模型大小以提高效率的常见方法。随着移动网络变得无处不在,手工制作的轻量化ConvNets也很常见,例如SqueezeNets(Iandola et al.,2016;Gholami et al.,2018)、MobileNets(Howard et al.,2017;Sandler et al.,2018)和ShuffleNets(Zhang et al.,2018;Ma et al.,2018)。最近,神经架构搜索在设计高效的ConvNets变得越来越流行(Tan等人,2019;Cai等人,2019),并且通过广泛搜索网络宽度、深度、卷积核类型和大小,实现了比手工制作的ConvNets更好的效率。然而,目前尚不清楚如何将这些技术应用于设计空间更大、微调成本更高的大模型。本文旨在研究更高精度更大规模模型的建模效率,为了实现这个目标,我们采用模型缩放。

模型缩放:有很多方法可以缩放ConvNet以适应不同的资源约束,例如ResNet(He et al.,2016)可以通过调整网络深度(层)来缩小(例如ResNet-18)或增大(例如ResNet-200),WideResNet(Zagoruyko&Komodakis,2016)和MobileNets(Howard et al.,2017)可以通过网络宽度(通道)来缩放。众所周知,较大的输入图像尺寸有助于提高精度,同时需要更多计算量。尽管先前的研究(Raghu等人,2017年;Lin&Jegelka,2018年;Sharir&Shashua,2018年;Lu等人,2018年)表明,网络深度和宽度对ConvNet的表达能力都很重要,但如何有效地缩放ConvNet以获得更好的效率和准确性仍然是一个悬而未决的问题。我们的工作是系统研究了ConvNet中网络宽度、深度和分辨率这三个维度平衡。

3 复合模型缩放

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

3.1 问题描述

卷积层 i i 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 Y

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值