Efficient Net

论文:https://arxiv.org/abs/1905.11946?context=stat.ML
代码: https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

0 摘要

卷积神经网络CNN一般是在固定计算资源的情况下进行设计的,如果使用更多的计算资源,一般可以取得更好的识别准确率。本文系统地研究了如果平衡模型的深度、宽度和输入分辨率可以取得最好的处理效果。作者最终使用了一个简单高效的复合系数去平衡模型的深度、宽度和输入分辨率,训练的模型效果超过了mobilenet和resnet。

作者又使用神经网络结构搜索方法得到了一系列的模型EfficientNets,比之前的CNN更加准确高效。特别是EfficientNet-B7取得了SOTA的效果,在ImageNet上Top-1准确率为84.4%,Top-5准确率是97.1%,同时比之前最好的CNN参数量少8.4倍,推理速度快6.1倍。EfficientNet在其他数据集上也取得了更快更好的效果。

1 简介

扩充CNN模型的一般方法是增加模型的层数和宽度,也可以增加输入图像的分辨率。之前的方法一般是增加这三个因素中的某一个。如果想同时增加多个因素,那么就需要人为进行认真的参数挑战,否则可能无法取得最优的处理效果。

作者想探讨,能不能按照某种规则扩充模型一定可以取得更好的处理效果?作者通过实验发现了这样的规则,称之为复合缩放法。作者按照固定的缩放系数集统一缩放网络的深度、宽度和输入图像的分辨率。

在这里插入图片描述复合缩放法能够起作用的原因是,如果输入图像的分辨率变大,那么需要更深的网络以增加感受野的尺寸,需要使用更多的通道以捕获更多细粒度的特征。作者验证了这种复合缩放法在mobilenet和resnet上都取得了更好的识别效果,同时结合自动模型搜索法得到了一系列的模型,称之为EfficientNets,实验结果表明了EfficientNets在参数量更少的情况下有效提升了分类效果。

在这里插入图片描述

2 复合模型缩放

2.1 模型缩放描述

卷积层ii可以表示成函数:Yi=Fi(Xi)Y_i = F_i(X_i),其中XiX_i是输入Tensor,形状为<Hi,Wi,Ci><H_i,W_i,C_i>HiH_iWiW_i表示数据的空间尺寸,CiC_i表示数据的通道数;YiY_i是输出Tensor,FiF_i是映射函数。因此,一个卷积网络N可以表示成一系列网络层的组合:
在这里插入图片描述实际设计的网络,一般都包含多个stage且每个stage具有相同的结构,如ResNet包含5个stage,每个stage有相同的结构。所以,可以把卷积网络定义为:
在这里插入图片描述FiLiF_i^{L_i}表示在stage i中层FiF_i被重复使用LiL_i次。<Hi,Wi,Ci><H_i,W_i,C_i>表示层ii的输入Tensor X的形状。图2(a)给出的是有代表性的卷积网络的示意图,随着网络深度的加深,空间分辨率尺寸在逐渐减小,但网络层的channel数却在逐渐增加。

传统的卷积网络设计主要关注于寻找最佳网络结构FiF_i,但模型缩放则是在不改变模型结构FiF_i的情况下扩充模型的深度(LiL_i)、宽度(Ci)(C_i)和分辨率(Hi,Wi)(H_i,W_i)模型缩放可以认为是一个寻优的问题,即在给定计算资源限制的情况下联合调整模型的宽度、深度和分辨率,达到最大化模型准确率的目的
在这里插入图片描述w,d,rw,d,r是网络宽度、深度和分辨率缩放的系数,Fi^,Li^,Hi^,Wi^,Ci^\hat{F_i},\hat{L_i},\hat{H_i},\hat{W_i},\hat{C_i}是预先定义的基础网络的参数。

2.2 模型缩放的维度

深度:许多卷积网络都在扩充网络的深度,主要的原因是,更深的网络可以捕获更加丰富和复杂的特征,可以更好的泛化到新的任务。然而,网络层数越多,越容易因为梯度弥散难以训练。虽然最近的新技术,skip connection和BN的应用在一定程度上规避了梯度弥散,但是对于特别深的网络,仍然会存在梯度弥散问题。例如,ResNet-1000和ResNet-101的准确率很接近。图3中间的图,给出了扩充不同倍数的网络层时的模型准确率,表明了对于特别深的网络仍然存在一定程度的梯度弥散现象。

宽度:对于比较小的网络,往往扩充网络的宽度,更宽的网络可以捕获更加细粒度的特征,也更容易训练。但是,特别宽的浅层网络却难以捕获高层语义特征。图3左图的实验表明了随着网络宽度的增加,模型的准确率在趋向于饱和。

分辨率:输入图像的分辨率越高,越已于捕获更多细粒度的特征,但是图3右图显示准确率的确随着分辨率的增大而增加,但是分辨率过高时准确率也会趋向于饱和。

在这里插入图片描述基于上述的分析和实验验证,我们可以得出观察1 — 单独缩放模型的任一维度(宽度/深度/分辨率)可以改善模型的准确率,但是模型越大,缩放获得的准确率提升越小。

2.3 组合缩放

作者认为应该联合考虑模型的深度、宽度和输入图像的分辨率进行缩放。图4给出了在不同的宽度和输入分辨率情况下,扩充宽度信息带来的准确率的提升。如果在不改变深度和分辨率的情况下,单独扩充网络的宽度会很快的饱和。但是再相同计算量的情况下,如果扩充了深度和分辨率时,再扩充宽度带来了准确率提升更大。

在这里插入图片描述基于图4的分析,作者得到了第二个观察 — 卷积网络扩充时应该联合考虑模型的深度、宽度和分辨率。

作者提出了联合缩放法,使用一个联合系数ϕ\phi统一缩放模型的宽度、深度和分辨率
在这里插入图片描述α,β,γ\alpha,\beta,\gamma是通过网格搜索得到的常数,ϕ\phi是一个超参数,用于控制可用于模型缩放的资源扩充量。α,β,γ\alpha,\beta,\gamma设定了分配多少比例的扩充资源给模型的宽度、深度和分辨率。常规卷积操作的计算量正比于d,w2,r2d,w^2,r^2,也就是说网络深度加倍会使用两倍的计算资源,但是网络的宽度和输入分辨率加倍会使用4倍的计算资源。按照公式3扩充卷积网络,所使用的计算资源约等于扩充了(αβ2γ2)ϕ(\alpha*\beta^2*\gamma^2)^{\phi}倍,本文中作者限制(αβ2γ2)2(\alpha*\beta^2*\gamma^2)\approx2,因此对任意的参数ϕ\phi,所使用的计算资源约为原来的2ϕ2^{\phi}

3 EfficientNet结构

由于模型缩放不会改变基础网络的层操作Fi^\hat{F_i},因此使用一个好的基础网络也是很关键的。作者在已有的卷积网络结构上应用了模型扩充技术,同时作者也设计了新的适用于移动端的基础网络,称之为EfficientNet。

按照论文MnasNet: Platform-aware
neural architecture search for mobile的思路,作者通过同时优化准确率和FLOPS来寻找最优网络结构。作者使用了和参考论文相同的搜索空间,优化目标是ACC(m)×[FLOPS(m)/T]wACC(m) \times [FLOPS(m)/T]^w,ACC(m)和FLOPS(m)表示模型m的准确率和计算量,T表示目标计算量,w = -0.07表示用于控制准确率和计算量平衡的超参数。这里优化目标使用的是Flops而不是延迟时间,是因为优化目标不是针对专门的硬件资源设计网络结构。搜索结果得到了一个高效的网络,称之为EfficientNet-B0。由于和参考论文使用了相同的搜索空间,所以得到的模型和参考论文得到的MnasNet很像,除了EfficientNet-B0更大一些(这是因为这里设置的目标Flops为400M,要比参考论文使用的更大)。EfficientNet-B0的结构如表1所示,其主要构件块是MBConv,同时也使用了squeeze-and-excitation优化。

在这里插入图片描述得到基础网络EfficientNet-B0后,作者使用了复合缩放技术扩充网络,主要包括两个步骤:

  • 第一步,固定ϕ\phi=1,使用两倍的计算资源,网格化搜索得到α,β,γ\alpha,\beta,\gamma。按照(αβ2γ2)2(\alpha*\beta^2*\gamma^2)\approx2的限制,最终寻得的最优参数为α=1.2,β=1.1,γ=1.15\alpha = 1.2,\beta = 1.1,\gamma = 1.15
  • 第二步,固定α,β,γ\alpha,\beta,\gamma,调整ϕ\phi的值,得到了网络EfficientNet-B1到B7。

如果直接搜索α,β,γ\alpha,\beta,\gamma的值,有可能可以得到一个更好的模型。但是,搜索的代价很大,按照这种分步骤搜索的方式在搜索代价较小的情况下得到了相对较好的网络。

4 实验

4.1 对MobileNet和ResNet应用复合缩放

在这里插入图片描述表3的结果表明,相比於单独缩放任一系数,联合缩放可以取得更好的准确率,证明了联合缩放法的有效性。

4.2 EfficientNet在ImageNet数据集上的分类结果

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

对比各大小的EfficientNet,都是在参数量和计算量更小的情况下取得了和已有模型相当的准确率。

在这里插入图片描述在CPU上对比模型的推理时间,可以发现Efficient推理速度更快。

4.3 迁移到其他数据集上的表现

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

5 总结

作者提出了联合缩放法,同时缩放模型的宽度、深度和输入分辨率,同时通过网络搜索得到了性能更优的基础网络EfficientNet-B0,结合联合缩放法得到了一系列的模型EfficientNet-B1到B7,实验证明了联合缩放法的有效性,也证明了相比其他已有的卷积网络,EfficientNet-B1到B7可以在参数量更少、计算量更小的情况下取得相当的识别效果。

发布了133 篇原创文章 · 获赞 68 · 访问量 13万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章