EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记

我们发现平衡深度、宽度、图像分辨率可以提升神经网络模型的性能,因此提出了一种新的缩放方法,使用一个简单而高效的复合系数来统一缩放深度/宽度/分辨率的所有维度。
值得注意的是,模型缩放的有效性在很大程度上依赖于基线网络;为了更进一步,我们使用神经结构搜索来开发新的基线网络,并将其放大以获得一系列模型,称为EfficientNet。
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
传统方法大多按以下维度之一缩放ConvNets:
深度:缩放网络深度是许多ConvNets最常用的方法。直觉是,更深层次的ConvNet可以捕获更丰富、更复杂的特性,并很好应用在新任务上。然而,由于梯度消失问题,更深层次的网络也更难训练。尽管有一些技术,如跳过连接和批处理规范化缓解了训练问题,但非常深网络的精度增益会降低:例如,ResNet-1000的精度与ResNet-101相似,尽管它有更多的层。图3(中间)显示了我们用不同深度系数d缩放基线模型的实证研究,进一步表明了非常深的convnet的精度回报递减。
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
宽度:缩放网络宽度通常用于小尺寸模型,更广泛的网络往往能够捕获更细粒度的特征,并且更容易训练。然而,极宽但浅的网络往往难以捕获更高层次的特征。我们在图3(左图)中的经验结果表明,当网络变得更宽且w更大时,精度会迅速饱和。

分辨率:使用更高分辨率的输入图像,ConvNets可以捕捉到更细粒度的特征。从早期ConvNets的224x224开始,现代ConvNets倾向于使用299x299或331x331来获得更好的准确性。最近,GPipe(Huang等人,2018)实现了最先进的ImageNet精度,分辨率为480x480。更高分辨率,如600x600,也广泛用于目标检测ConvNets(He et al.,2017;Lin et al.,2017)。图3(右)显示了缩放网络分辨率的结果,其中更高的分辨率确实可以提高精度,但是对于非常高的分辨率,精度增益会减小(r=1.0表示分辨率224x224,r=2.5表示分辨率560x560)。
以上分析使我们得出了第一个观察结果:
观察1——放大网络宽度、深度或分辨率的任何维度都可以提高精度,但对于更大的模型,精度增益会减小。

我们从经验上观察到,不同的标度维度不是独立的。直观地说,对于更高分辨率的图像,我们应该增加网络深度,这样更大的接收域可以帮助捕获包含更多像素的相似特征。相应地,当分辨率较高时,为了在高分辨率图像中捕捉更多的细粒度图案也应增加网络宽度。这些直觉表明,我们需要协调和平衡不同的维度的尺度,而不是传统的一维尺度。
为了验证我们的直觉,我们比较了不同网络深度和分辨率下的宽度缩放,如图4所示。如果我们只缩放网络宽度w而不改变深度(d=1.0)和分辨率(r=1.0),精度会很快饱和。随着深度(d=2.0)和更高分辨率(r=2.0),宽度缩放在相同的FLOPS成本下可以获得更好的精度。这些结果使我们得出第二个观察结果:
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
观察2-为了追求更好的精度和效率,在ConvNet缩放期间,平衡网络宽度、深度和分辨率的所有维度至关重要

事实上,之前的一些工作(Zoph et al.,2018;Real et al.,2019)已经尝试任意平衡网络宽度和深度,但它们都需要繁琐的手动调整。
在本文中,我们提出了一种新的复合缩放方法,该方法使用复合系数ϕ\phi来统一缩放网络的宽度、深度和分辨率
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
其中αβγα、β、γ为常数,可通过小网格搜索确定。直观地说,ϕ\phi是一个用户指定的系数,它控制有多少资源可用于模型缩放,而αβγα、β、γ分别指定如何将这些额外资源分配给网络宽度、深度和分辨率。值得注意的是,一个常规卷积运算的浮点运算与dw2r2d,w^2,r^2成正比,即网络深度翻倍会导致双倍的浮点运算,但是网络宽度或分辨率翻倍会使浮点运算增加四倍。由于卷积运算通常在ConvNets中占主导地位,因此用等式3缩放ConvNet将使总flop增加(αβ2γ2)ϕ(α·β^2·γ^2)^\phi倍。 在本文中,我们约束αβ2γ22α·β^2·γ^2≈2,使得对于任何新的ϕ\phi,总的浮点数将大约增加2ϕ2^\phi
为了将我们提出的缩放方法与EfficientNet架构分开,图8比较了同一EfficientNet-B0基线网络下不同缩放方法在ImageNet上的表现
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
总的来说,所有的缩放方法都会以更多的浮点运算来提高精度,但是我们的复合缩放方法可以进一步提高精度,比其他单维缩放方法提高高达2.5%,这说明了我们提出的复合缩放方法的重要性。
为了进一步了解为什么我们的复合标度方法优于其他方法,图7比较了几种具有不同缩放方法的代表性模型的类**图(Zhou et al.,2016)。表7显示了所有这些模型的比例,这些模型都来自于基准。从ImageNet验证集中随机选取图像。如图所示,采用复合比例缩放的模型往往会集中在具有更多对象细节的相关区域,而其他模型要么缺少对象细节,要么无法捕捉到图像中的所有对象。
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks-文献阅读笔记
在这篇论文中,我们系统地研究了ConvNet的缩放,发现仔细地平衡网络的宽度、深度和分辨率是一个重要但缺少的部分,它阻碍了我们提高精度和效率。为了解决这个问题,我们提出了一种简单而高效的复合缩放方法,它使我们能够在保持模型效率的同时,以更原则的方式将基线ConvNet扩展到任何目标资源约束。在这种复合缩放方法的支持下,我们证明了在ImageNet和五个常用的传输学习数据集中,EfficientNet模型可以非常有效地放大,在ImageNet和五个常用的传输学习数据集上,它的参数和flop数目的减少超过了最先进的精度。