论文阅读——EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

Abstract

卷积神经网络常受限于计算资源,如果资源足够的情况下可通过缩放网络进一步提升网络性能。本文则系统性的研究了如何平衡网络深度、宽度、分辨率综合性对网络进行缩放,提升网路哦性能。

基于前期试验结果提出了复合缩放策略(Compound scaling method),并在MobileNet和ResNet模型上验证了复合缩放的有效性。


更进一步,本文还使用了NAS设计新的基准模块,搭建的EfficientNet成为了新的SOTA,尤其是EfficientNet-B7在ImageNet上取得了84.3%的Top-1准确率,而参量减少了8.1x,推断速度提升6.1倍;此外,EfficientNet在CIFAR-10、Flowers和其他三个迁移数据集上均达到了SOTA。


代码已开源:EfficientNet

Section I Introduction

扩展网络的宽度、深度等常作为提升网络精度的手段,如ResNet扩展至不同深度有ResnNet18-ResNet-152,扩展深度、宽度也是最常用的一种手段;另外一种则是扩展图像的分辨率,但目前工作局限于仅扩展三个维度中的一个维度,即单独扩展网络的深度、宽度或分辨率,虽然也可以同时调整其他维度,但往往手动缩放不利于精度和效率的提升。
本文对网络扩展问题做了更进一步的研究,围绕一个关键问题展开:是否有一个准则进行网络缩放从而可以较好的提升网络的精度和效率?本文进行的实验表明需要对网络深度、网络宽度和分辨率三者进行一个权衡,而实验的一个惊人发现是:可以通过乘以一个恒定比值实现三者的平衡,非常简单且高效。基于这一发现,本文提出了复合缩放策略(Compound Scaling Method),不似之前方法需要设置缩放因子,而是统一使用一组固定的缩放系数来扩展网络的深度、宽度和分辨率。


举例说明,如果计算资源为2N,那么可以通过在原来的模型上做网络搜索,将网络深度扩展至aN,宽度扩展至bN,分辨率扩展至rN.Fig2则分别展示了基于baseline分别扩展网络宽度、网络深度、分辨率以及e是本文的复合扩展模型。


在这里插入图片描述

直观来看,如果输入图像很大使用复合缩放是很有意义的,因为大尺寸的图像需要更深的网络获得更大的感受野,更多的通道数来捕获细粒度特征。而前人的一些研究也表明,网络的宽度和深度之间存在特定的关联,而本文则是第一个定量的探究这三者关系的相关研究。

我们在MobileNet和ResNet上测试本文的复合缩放策略,需要注意的是,缩放策略是否有效严格依赖于网络的基准模型;更进一步本文还使用了网络结构搜索来构建新的网络,本文中称之为EfficientNet。
Fig1展示了EfficientNet与其他网络在ImageNet上的对比,可以看到EfficientNet-B7超过GPipe成为新的SOTA,并且参量压缩了8.1倍,速度快了6.1倍;而与广泛使用的FLOPS相近的Resnet50比,EfficientNet-B4将Top-1从76.3%提升至83.0%,提升了6.7%个百分点.

在这里插入图片描述

Section II Related Work

ConvNet的精度




自从2012年AlexNet的横空出世,卷积神经网络不断向着更大规模扩展,GoogLeNet以6.8M的参量取得了Top-1 74.8%,发展至2017年的SENet,Top-1为82.7%但参量足足有145M;而GPipe则是最新的SOTA,在参量557M下Top-1=84.3%,但由于网络规模过于庞大因此需要使用特定的并行化手段才能训练;此外这些基于ImageNet训练的网络迁移至其他任务的性能也很出色。





ConvNet的效率:





深度神经网络常常拥有海量的参数,往往需要借助模型压缩平衡网络精度和效率;随着移动终端的日益普及,也需要更加高效的网络,因此SqueezeNet,MobileNet应运而生。近年来借助网路结构搜索技术也取得了比手动设计的模型更高的精度,但如何将这些技术应用到大型模型中还需要继续探索。本文则聚焦于如何设计效率更高的超大规模网络,为了实现这一目标本文采用模型缩放策略。





ConvNet的缩放






在资源有限时有多重方法对网络进行缩放,比如ResNet扩展深度从ResNet18扩展到ResNet200;WideResnet调整的是网络宽度也就是通道数;而使用更大的图像尺寸公认可以提升精度。本文则系统性的对网络深度、宽度、分辨率进行缩放,观察对网络精度和效率的影响。

Section III Compound Model Scaling

本节将以公式的形式讨论缩放问题,并且对本文提出的复合缩放策略进行说明。







Part A 问题的形式化描述







卷积神经网络中第i层可表示为:






Yi = Fi(Xi)







其中Fi是卷积运算,Yi是输出张量,Xi是输入张量,规格为<Hi,Wi,Ci>,因此N层卷积可表述为:







在这里插入图片描述

而卷积神经网络中常常有多组结构相同的几层,将这些结构相同的层划分为一个stage,这样就将网络划分为不同stage组成的,参考ResNet。
在这里插入图片描述

不像传统的卷积神经网络设计,总是聚焦于寻找最好的层数、结构,模型缩放则是在不改变基线模型结构的前提下对网络深度、宽度、分辨率进行扩展;一旦网络基础模型确定下来,缩放主要就是解决计算资源的约束问题;但每一层的搜索空间仍然很大;为了进一步减小搜索空间,本文将所有层都使用一个统一的缩放系数,目标就是在有限的计算资源限制下最大化提升模型精度,因此优化问题可以定义为:
其中d,w,r分别代表网络深度、宽度和分辨率的缩放系数。


Part B Scaling Dimensions


缩放问题难点在于在有限的计算资源下,最优的d,w,r常常互相依赖,而且不同计算资源约束下的取值还各不相同,因此常规方法常常只缩放其中一个而固定其他两个维度。


在这里插入图片描述

Depth:



网络缩放最常用的方法是调整网络深度,因为深层网络可以捕获更丰富、复杂的特征,在其他任务找那个的泛化性能更好;然而深层次的网络常由于梯度消失问题难以训练;即使可以借助skip connections和BN来减轻这一问题但却一定程度上损失了精度。比如ResNet1000和ResNet101精度差不多,Fig3中间的实验结果也显示出较深的深度缩放网络已经没什么作用了。




Width:





小型网络则通常选用缩放网络宽度,这样可以捕捉更加细粒度的特征,训练起来也更为方便。但是浅层网络的宽度过宽时就很难捕获高阶特征,Fig3第一幅图可以看出随着宽度缩放系数w的增大网络精度很快就饱和了。





Resolution:





输入图像分辨率越高,意味着可以捕获到更加细粒度的模式,因此一些网络为了获得更高的精度将分辨率从224提升到299或331;而GPioe更是使用480的分辨率,而目标检测常使用600x600的分辨率。Fig3最右侧的图像展示了分辨率对网络精度的影响,但也能看到后期再提升输入分辨率网络已经饱和了。





Observation 1:





调整网络深度、宽度、分辨率都可以有效提升网络精度,但随着模型规模的增大,这种增益会逐渐减弱趋于饱和。






Part C Compound Scaling






通过经验本文分析三个维度之间相互依赖,比如对于分辨率较高的图像我们应该使用更深层次的网络,从而借助更大的感受野获取像素间的相似性;而网络的宽度也需要进一步加大,从而获取更多的细粒度特征。这都显示出三者的复合缩放比单独调整一个维度更有效。
为了验证这一采样,本文在不同网络深度和分辨率的情况下测试了宽度的影响,发现在d=1.0,r=1.0时一味的提升网络宽度很快就饱和了;但d=2.0,r=2.0时缩放宽度就可以进一步提升精度,因此有Observation 2:
为了进一步提升网络精度和效率,权衡三者进行缩放十分重要。
因此复合缩放策略可表述为:






在这里插入图片描述

其中alpha,beta,gamma分别是通过在一个较小范围内网络搜索确定的缩放系数,而phi则是一个用户设定的系数,取决于具体的计算资源.而alpha,beta,gamma则决定了具体如何分配这些计算资源,需要注意的是FLOPS与d,w2,r2都是成正比的,也就是说宽度加倍或者分辨率加倍会使得FLOPS增加四倍,而卷积计算则正是占据绝大计算资源的部分。本文给定的约束条件是:







在这里插入图片描述

Section IV EfficientNet Architecture

因为模型缩放不会改变基线模型的结构,因此选择一个优秀的基线模型是十分重要的,而在基线模型上结合复合缩放模型,就是本文提出的适合于移动应用的baseline模型:EfficientNet.

本文受MnasNet的启发,采用了和MnasNet相同的搜索空间,优化目标也是acc和FLOPS,而w则是权衡二者的一个参数,设置为0.07;由于暂不考虑在硬件上进行加速,所以本文的优化目标显示FLOPS而不是latency,这样搜索得到的高效网络被称为Efficient-B0.
在这里插入图片描述

具体结构参见Table I,主要使用的是MobileNet中的倒置残差模块MBConv,以及first和last的卷积层,在MBConv中还使用了SqueezeNet中的SE激活。

而复合缩放策略分两步进行:


Step 1:

设phi=1,然后再小范围内进行结构搜索,在设定的约束条件下发现最佳值为alpha = 1.2,beta = 1.1,gamma = 1.15


Step 2:

将alpha,beta,gamma作为缩放系数,对基线网络进行缩放,根据phi的不同,得到EfficientNet-B1-B7不同的结构,具体参见Table II。

在这里插入图片描述

自然可以想到,直接在较大模型上进行搜索可能会得到更好的搜索结果,但搜索成本过于高昂,因此本文只选择在小范围内进行搜索得到alpha,beta和gamma的值。

Section V Experiments

实验分为两大块,首先以MobileNet和ResNet为基线模型测试复合缩放策略的有效性,随后测试EfficientNet的性能。
Table 3展示了缩放MobileNet和ResNet的结果,比其他只缩放单一维度,复合缩放策略对精度提升效果更佳,均取得了最高的Top-1精度。
在这里插入图片描述
随后又测试了EfficientNet在ImageNet上的结果,使用RMSProp,SiLU激活,结果展示在TableII中。从TableII可以看到EfficientNet的参数较之前面网络减少了一个数量级但却取得了更佳的精度和FLOPS;Table 4则展示了latency的对比,也显示出硬件上确实更快。
在这里插入图片描述
Transfer Learning
Table 展示的则是EfficientNet做迁移学习的效果,可以看到有常规的CIFAR数据集以及细粒度常用的FGVC,Stanford Cars等数据集,在参量减少的前提下保持了相近甚至更高的精度。
在这里插入图片描述

Section VI Discussion

Fig8比较了缩放单一维度下和本文复合缩放效果的对比,从Fig7的CAM图中也可以看出,复合缩放策略处理过的模型更倾向于关注目标细节区域,而单一的缩放策略往往缺乏细节或者无法有效捕获全部目标。
在这里插入图片描述

在这里插入图片描述

Section VII Conclusion

本文系统性的研究了网路深度、宽度及分辨率对网络性能和效率的影响,首先探究了三者之间的依赖关系、对模型的影响;随后提出了一种简易但高效的复合缩放策略(Compound Scaling Method),在基线模型上验证了其有效性;最后提出了轻量级的EfficientNet,在常规的分类任务和迁移学习中均测试了其有效性。

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页