深度学习论文导航 | 17 EfficientNet:重新思考卷积神经网络模型缩放

举报
AI 菌 发表于 2021/08/04 22:52:20 2021/08/04
【摘要】 大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱编程、热爱分享! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~ 我的博客地址为:【AI 菌】的博客 我的Github项目地址是:【AI 菌】的Github 前言:这篇论文发表于机器学...

大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱编程、热爱分享! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

在这里插入图片描述


前言:这篇论文发表于机器学习国际顶级会议ICML2019,作者通过系统地研究发现,仔细平衡网络的深度、宽度和分辨率可以带来更好的性能。因此提出了一种新的缩放方法,即使用简单而高效的复合系数来均匀缩放深度、宽度和分辨率三个维度,从而使得模型效率大大提升。基于该项研究提出的EfficientNet-B7在ImageNet上达到了最先进的84.3%top-1精度,同时推理速度比最佳ConvNet还提高了6倍以上。


Github开源地址: EfficientNets-TensorFlow


摘要

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

EfficientNets不会像传统的方法那样任意缩放网络的维度,而是采用基于神经结构搜索的技术获得最优的一组参数(复合系数)。该模型系列比以前的ConvNets具有更高的准确性和效率。特别地,EfficientNet-B7在ImageNet上达到了最先进的84.3%top-1精度,同时它的模型比现有的最佳ConvNet缩小了8.4倍,推理速度提高了6.1倍。

一、引言

扩大ConvNets的规模被广泛使用以实现更高的准确性。例如,2016年何恺明通过使用跳层连接的思想将ResNet从ResNet-18扩展到ResNet-200。最近(2018年),GPipe通过扩大至四倍的基线模型在ImageNet上实现了84.3% top-1的精确度。

但是,对ConvNets扩展的过程从未得到很好的理解,目前有很多方法可以做到这一点。最常见的方法是按深度(何恺明,2016)或宽度(Zagoruyko等人,2016)扩大ConvNets的规模。另一种不常见但越来越流行的方法是通过图像分辨率放大模型(Huang等人,2018)。在以前的工作中,通常仅缩放三个维度之一(深度,宽度或图像大小)。尽管可以任意缩放两个或三个维度,但是任意缩放需要繁琐的手动调整,并且仍然经常得不到最优的精度和效率。

在本文中,我们想研究和重新考虑扩展ConvNets的过程。特别地,我们调查了一个中心问题:是否存在一种原则上的方法来扩展ConvNets,以实现更高的准确性和效率? 我们的经验研究表明,平衡网络宽度/深度/分辨率的所有维度至关重要,而令人惊讶的是,可以通过简单地以恒定比率缩放每个维度来实现这种平衡。基于此观察,我们提出了一种简单而有效的复合缩放方法。与传统做法随意缩放这些因素不同,我们的方法通过采用一组固定的缩放系数统一缩放网络宽度,深度和图像分辨率。

例如,如果要使用2N倍的计算资源,则可以简单地将网络深度增加αN,将宽度增加βN,将图像大小增加γN,其中α,β,γ是通过在原始的小模型上进行小网格搜索确定的常数系数。图2说明了缩放方法与常规方法之间的区别。
在这里插入图片描述

直观上,复合缩放方法是有意义的,因为如果输入图像更大,则网络需要更多的层来增大感受野,并且需要更多的通道来捕获更大的图像上的更细粒度的图案。实际上,先前的理论和经验结果都表明网络宽度和深度之间存在一定关系,但据我们所知,我们率先通过经验量化网络宽度,深度和分辨率这三个维度之间的关系

我们证明了我们的缩放方法可以在现有MobileNets和ResNet上能很好地工作。值得注意的是,模型扩展的有效性在很大程度上取决于基线网络。要走得更远,我们使用神经体系结构搜索开发了新的基准网络,并将其扩展以获得称为EfficientNets的一系列模型。
在这里插入图片描述
图1展示了EfficientNets系列模型在ImageNet上的分类性能,其中EfficientNets明显优于其他ConvNets。特别是,EfficientNet-B7超越了现有的最佳精度模型GPipe,但使用的参数减少了8.4倍,推理速度提高了6.1倍。与广泛使用的ResNet-50相比,我们的EfficientNet-B4在FLOPS相似的情况下将top-1的准确性从76.3%提高到83.0%。

二、相关研究

ConvNet准确性:自从AlexNet赢得2012年ImageNet竞赛以来,ConvNets变得越来越准确,模型越来越大。2014年ImageNet冠军GoogleNet达到74.8%的top-1准确性,大约有6.8 M个参数。2017年ImageNet获奖者SENet以1.45亿个参数达到了82.7%的top-1精度。2018年,GPipe使用557M参数将最新的ImageNet top-1验证准确性进一步提高到84.3%。尽管更高的精度对于许多应用至关重要,但是我们已经达到了硬件内存的极限,因此,进一步提高精度需要更高的效率。

ConvNet效率: 最近,神经体系结构搜索(Tan等人,2019; Cai等人,2019)在设计有效的轻量级ConvNets中变得越来越流行,并且通过广泛地调整网络的宽度,深度来实现比手工设计的轻量级ConvNets更好的效率。但是,尚不清楚如何将这些技术应用于设计空间更大且调整成本更高的大型模型。在本文中,我们旨在研究超大型ConvNet的模型效率,该效率超过了SOTA准确性。为了实现此目标,我们诉诸模型缩放。

模型缩放:尽管先前的研究表明网络深度和宽度对于ConvNets的表达能力都很重要,但是如何有效扩展ConvNet以获得更高的效率和准确性仍然是未解决的问题。我们的工作针对网络宽度,深度和分辨率的所有三个维度系统地和经验地研究了ConvNet缩放。

三、复合模型缩放

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

3.1 问题表述

我们将整个卷积网络称为 N,它的第 i 个卷积层可以表示为:
在这里插入图片描述
整个卷积网络由 k 个卷积层组成,可以表示为:
在这里插入图片描述
但是在实际中,通常会将多个结构相同的卷积层称为一个 stage,例如 ResNet 有5 个 stage,每个 stage 中的卷积层结构相同(除了第一层为降采样层),以 stage 为单位可以将卷积网络 N 表示为:
在这里插入图片描述
其中, X ( H i , W i , C i ) X_{(H_{i}, W_{i}, C_{i})} X(Hi,Wi,Ci) 代表第i层的输入张量的维度,下标 i (1…s) 表示的是 stage 的序号。 F i L i F_{i}^{L_{i}} FiLi 表示第 i 个 stage ,它由卷积层 F i F_{i} Fi 重复 L i L_{i} Li 次构成。

与通常的ConvNet设计不同,通常的ConvNet设计主要关注寻找最佳的网络层 F i F_{i} Fi ,模型缩放尝试扩展网络长度 L i L_{i} Li C i C_{i} Ci 或分辨率 H i , W i H_{i}, W_{i} Hi,Wi,而不改变基线网络中预定义的 F i F_{i} Fi

所以,优化目标就是在资源有限的情况下,要最大化精确度, 优化目标的公式表达如下:
在这里插入图片描述
其中w,d,r是缩放网络宽度,深度和分辨率的系数; L i ^ \hat{L_{i}} Li^ C i ^ \hat{C_{i}} Ci^ H i ^ \hat{H_{i}} Hi^ W i ^ \hat{W_{i}} Wi^ F i ^ \hat{F_{i}} Fi^是基准网络中的预定义参数。

3.2 缩放维度

上述优化问题主要困难在于,最佳d,w,r相互依赖,并且值在不同的资源约束下会发生变化。由于这一困难,常规方法通常会在d,w,r维度之一中扩展ConvNets。

作者发现,具有较大宽度,深度或分辨率的网络往往会实现较高的精度,但是精度增益在达到80%后会迅速饱和,这说明了只对单一维度进行扩张具有局限性。表1中描述了这种规律:
在这里插入图片描述

3.3 复合缩放

作者指出,模型扩张的各个维度之间并不是完全独立的,比如说,对于更大的分辨率图像,应该使用更深、更宽的网络,这就意味着需要平衡各个扩张维度,而不是在单一维度张扩张。

如下图所示,直线上的每个点表示具有不同宽度系数(w)的模型。第一个baseline(d=1.0,r=1.0)有18个卷积层,分辨率224x224,而最后一个baseline(d=2.0,r=1.3)有36个卷积层,分辨率299x299。
在这里插入图片描述

  • 通过对比第一个baseline(蓝色)和第二个baseline(黄色)可知,只增加输入图片的分辨率®可提高准确度
  • 通过对比第一个baseline(蓝色)和第三个baseline(绿色)可知,只增加网络深度(d)可提高准确度
  • 通过每个baseline横向比较可知,只增加网络宽度(w)可提高准确度
  • 通过横向和纵向比较可知,当同时相应地调整r、d、w,才有可能得到最佳准确度。

因此,为了达到更好的精度和效率,在ConvNet缩放过程中平衡网络宽度、深度和分辨率的所有维度是至关重要的。

因此,本文提出了一种新的复合扩张方法,这也是文章核心的地方,它使用复合系数φ原则上均匀地缩放网络的宽度,深度和分辨率:
在这里插入图片描述

( α, β, γ )是我们需要求解的一组参数,如上图公式,带约束的最优参数求解。( α, β, γ ) 分别衡量着depth, width和 resolution的比重,其中 β、γ 在约束上会有平方,是因为如果增加宽度或分辨率两倍,其计算量是增加四倍;但是增加深度两倍,其计算量只会增加两倍。

最优参数求解方式:

  • 固定公式中的φ=1,然后通过网格搜索(grid search)得出最优的α、β、γ,得出最基本的模型EfficientNet-B0。此时最佳值为:α= 1.2,β= 1.1,γ= 1.15。
  • 固定α、β、γ的值,使用不同的φ,得到EfficientNet-B1, …, EfficientNet-B7

φ的大小对应着消耗资源的大小,相当于:

  • 当φ=1时,得出了一个最小的最优基础模型;
  • 增大φ时,相当于对基模型三个维度同时扩展,模型变大,性能也会提升,资源消耗也变大。

四、高效网络架构

由于模型缩放不会改变基线网络中的层算符 F i ^ \hat{F_{i}} Fi^,因此拥有一个良好的基线网络也至关重要。我们将使用现有的ConvNets评估缩放方法,但是为了更好地展示缩放方法的有效性,我们还开发了一种新的mobile-size baseline,称为EfficientNet。

其中,EfficientNet-B0的基准网络结构图如下:
在这里插入图片描述
上表中每行代表着一个阶段,一个阶段存在着 L i ^ \hat{L_{i}} Li^个相同的网络层 F i ^ \hat{F_{i}} Fi^。每一个阶段输入的分辨率为: W i ^ \hat{W_{i}} Wi^ H i ^ \hat{H_{i}} Hi^。输出特征图的通道数为: C i ^ \hat{C_{i}} Ci^

五、实验

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

5.1 扩大MobileNets和ResNets

作为概念的证明,我们首先将缩放方法应用于广泛使用的MobileNets和ResNet。表3显示了在ImageNet数据集上以不同方式缩放三个维度(w, h, c)得到的结果。与只缩放一维的方法相比,我们的复合缩放方法提高了所有这些模型的准确性,这表明我们提出的缩放方法对于现有的一般ConvNets的有效性。
在这里插入图片描述

5.2 EfficientNet在ImageNet上的结果

通过对比EfficientNet、ResNet和DenseNet在ImageNet上的top-1和top-5精确度可以发现:经过扩展后的EfficientNet模型,在保持精确度不降低的情况下,参数和FLOPS都减少了一个数量级(其中,参数减少多达8.4倍,FLOPS减少多达16倍)。

在这里插入图片描述

5.3 EfficientNet迁移学习结果

通过对比EfficientNet系列模型与当时的SOTA算法在迁移学习数据集上的性能,可以看出:经过扩展后的EfficientNet模型在保证精确度的情况下,模型参数要少一个数量级。
在这里插入图片描述

六、讨论

为了区分我们提出的缩放方法与EfficientNet体系结构的贡献,下图比较了采用不同缩放方法的EfficientNet-B0网络在ImageNet上的性能。
在这里插入图片描述

通常,所有扩展方法都以更高的FLOPS成本来提高精度,但是我们的复合缩放方法可以比其他只扩展一维的缩放方法进一步提高精度达2.5%,这表明我们建议的复合缩放的重要性。
在这里插入图片描述
为了进一步理解为什么我们的复合缩放方法比其他方法更好,图7比较了几种具有不同缩放方法的代表性模型的类激活图(Zhou等,2016)。所有这些模型都是从同一基线缩放的,其统计信息如表7所示。图像是从ImageNet验证集中随机选取的。如图所示,具有复合缩放比例的模型倾向于集中在具有更多对象细节的更相关区域上,而其他模型则缺少对象细节或无法捕获图像中的所有对象。
在这里插入图片描述

七、结论

在本文中,我们系统地研究了ConvNet的缩放比例,并确定了仔细平衡网络的宽度,深度和分辨率是重要但缺少的一环,从而妨碍了我们提高准确性和效率。为了解决此问题,我们提出了一种简单而高效的复合缩放方法,该方法使我们能够以更原则的方式轻松地将基线ConvNet缩放到任何目标资源约束,同时保持模型效率。在这种复合缩放方法的支持下,我们证明了在ImageNet和五个常用的迁移学习数据集上,可变尺寸的EfficientNet模型可以非常有效地按比例缩放,以少的数量级参数和FLOPS,超过了最新模型的准确性。

文章来源: ai-wx.blog.csdn.net,作者:AI 菌,版权归原作者所有,如需转载,请联系作者。

原文链接:ai-wx.blog.csdn.net/article/details/111506294

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。