机器学习笔记 - EfficientNet论文解读

一、概述

        EfficientNet是一种卷积神经网络架构和缩放方法,它使用复合系数统一缩放深度/宽度/分辨率的所有维度。与任意缩放这些因子的传统做法不同,EfficientNet 缩放方法使用一组固定缩放系数统一缩放网络宽度、深度和分辨率。例如,如果我们想使用2^N倍的计算资源,那么我们可以简单地增加网络深度\alpha ^ N, 宽度\beta ^ N, 和图像大小\gamma ^N, α,β,γ是由原始小模型上的小网格搜索确定的常数系数。EfficientNet 使用复合系数φ以有原则的方式统一缩放网络宽度、深度和分辨率。

图 2. 模型缩放。 (a) 是一个基线网络示例; (b)-(d) 是常规缩放,仅增加网络宽度、深度或分辨率的一维。 (e) 是我们提出的复合缩放方法,它以固定比例均匀缩放所有三个维度。

        复合缩放方法的直觉是,如果输入图像更大,那么网络需要更多的层来增加感受野,需要更多的通道来捕捉更大图像上更细粒度的模式。

        基础 EfficientNet-B0 网络基于MobileNetV2的bottleneck residual blocks,以及squeeze-and-excitation blocks。        

        论文作者使用神经架构搜索来设计一个新的基线网络并对其进行扩展以获得一系列模型,称为 EfficientNets,它们比以前的 ConvNets 实现了更好的准确性和效率。 特别是,我们的 EfficientNet-B7 在 ImageNet 上实现了最先进的 84.3% 的 top-1 准确度,同时比现有的最佳 ConvNet 小 8.4 倍,推理速度快 6.1 倍。 我们的 EfficientNets 在 CIFAR-100 (91.7%)、Flowers (98.8%) 和其他 3 个迁移学习数据集上也能很好地迁移并实现最先进的准确度,而且参数要少一个数量级。

图 1. 模型大小与 ImageNet 准确度。 所有数字均适用于单一作物、单一模型。 我们的 EfficientNets 明显优于其他 ConvNets。 特别是,EfficientNet-B7 实现了最新的 84.3% top-1 准确率,但比 GPipe 小 8.4 倍,快 6.1 倍。 EfficientNet-B1 比 ResNet-152 小 7.6 倍,快 5.7 倍。 详情见表 2 和表 4。

 二、相关工作

1、卷积网络精度

        自从 AlexNet(Krizhevsky 等人,2012 年)赢得 2012 年 ImageNet 比赛以来,ConvNets 通过变大变得越来越准确:而 2014 年 ImageNet 冠军 GoogleNet(Szegedy 等人,2015 年)实现了 74.8% 的 top-1 准确率,约为 6.8 M 个参数,2017 年 ImageNet 获胜者 SENet (Hu et al., 2018) 在 145M 参数下实现了 82.7% 的 top-1 准确率。最近,GPipe (Huang et al., 2018) 使用 557M 参数进一步将最先进的 ImageNet top-1 验证准确率推至 84.3%:它太大了,只能使用专门的管道并行库进行训练通过对网络进行分区并将每个部分分散到不同的加速器。虽然这些模型主要是为 ImageNet 设计的,但最近的研究表明,更好的 ImageNet 模型在各种迁移学习数据集(Kornblith et al., 2019)和其他计算机视觉任务,例如物体检测(He et al., 2016; Tan et al., 2019)。尽管更高的精度对许多应用程序来说至关重要,但我们已经达到了硬件内存限制,因此进一步提高精度需要更高的效率。

 2、卷积网络效率

        Deep ConvNets 经常被过度参数化。模型压缩(Han et al., 2016; Heet al., 2018; Yang et al., 2018)是通过以效率换取准确性来减小模型大小的常用方法。随着手机变得无处不在,手工制作高效的移动尺寸卷积网络也很常见,例如 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)。最近,神经架构搜索在设计高效的移动尺寸卷积网络中变得越来越流行(Tan et al., 2019; Cai et al.,2019),并且通过广泛调整网络宽度、深度、卷积核实现了比手工制作的移动卷积网络更好的效率类型和尺寸。然而,尚不清楚如何将这些技术应用于具有更大设计空间和更昂贵调整成本的大型模型。在本文中,我们旨在研究超越最先进精度的超大型卷积网络的模型效率。为了实现这一目标,我们采用了模型缩放。

3、模型缩放

        有很多方法可以针对不同的资源约束来扩展 ConvNet:ResNet(He et al.,2016)可以通过调整网络深度(#layers)来缩小(例如,ResNet-18)或放大(例如,ResNet-200), 而WideResNet (Zagoruyko & Komodakis, 2016) 和 MobileNets (Howard et al., 2017) 可以通过网络宽度 (#channels) 进行缩放。 众所周知,更大的输入图像大小将有助于提高 FLOPS 开销的准确性。 尽管先前的研究(Raghu et al., 2017;Lin & Jegelka, 2018; Sharir & Shashua, 2018; Lu et al.,2018)表明网络深度和宽度对于 ConvNets 的表达能力都很重要,但它仍然是一个悬而未决的问题 如何有效地扩展 ConvNet 以实现更好的效率和准确性。 我们的工作系统地和经验地研究了网络宽度、深度和分辨率的所有三个维度的 ConvNet 缩放。

三、复合模型缩放

1、问题描述

2、缩放维度

        传统方法大多在以下维度之一中缩放 ConvNet:网络宽度 (w)、深度 (d) 和分辨率 (r) 系数

        上图. 放大具有不同网络宽度 (w)、深度 (d) 和分辨率 (r) 系数的基线模型。 具有更大宽度、深度或分辨率的更大网络往往会获得更高的准确度,但准确度增益在达到 80% 后会迅速饱和,这表明了一维缩放的局限性。

 3、复合缩放

         我们凭经验观察到不同的缩放维度不是独立的。 直观地说,对于更高分辨率的图像,我们应该增加网络深度,这样更大的感受野可以帮助捕获更大图像中包含更多像素的相似特征。 相应地,我们也应该在分辨率较高时增加网络宽度,以便在高分辨率图像中捕获更多像素更多的细粒度图案。 这些直觉表明,我们需要协调和平衡不同的缩放维度,而不是传统的单维度缩放。

        在本文中,我们提出了一种新的复合缩放方法,它使用复合系数以有原则的方式统一缩放网络宽度、深度和分辨率:

         其中\alpha \beta \gamma是可以通过小网格搜索确定的常数。

        直观地说,\phi是一个用户指定的系数,它控制有多少资源可用于模型缩放,而\alpha \beta \gamma指定如何将这些额外资源分别分配给网络宽度、深度和分辨率。

        值得注意的是,常规卷积运算的 FLOPS 与 dw^2r^2 成正比,即网络深度加倍将使 FLOPS 加倍,但网络宽度或分辨率加倍将使 FLOPS 增加四倍。 由于卷积运算通常在 ConvNets 中占主导地位,因此使用等式 3 缩放 ConvNet 将使总 FLOPS 大约增加 (\alpha \cdot \beta^2 \cdot \gamma^2 ) ^ \phi 。 

        在本文中,我们约束(\alpha \cdot \beta^2 \cdot \gamma^2 ) \approx 2使得对于任何新的 \phi,总 FLOPS 将大约增加 2^\phi

四、EfficientNet架构

        由于模型缩放不会改变基线网络中的层算子\hat{ F_i},因此拥有良好的基线网络也很关键。 我们将使用现有的 ConvNets 评估我们的缩放方法,但为了更好地展示我们的缩放方法的有效性,我们还开发了一个新的移动尺寸基线,称为 EfficientNet。

        受 (Tan et al., 2019) 的启发,我们通过利用优化准确性和 FLOPS 的多目标神经架构搜索来开发我们的基线网络。具体来说,我们使用与 (Tan et al., 2019) 相同的搜索空间,并使用 ACC(m) \times [FLOPS(m)=T ]^w作为优化目标,其中ACC(m)FLOPS(m)表示准确度和模型 m 的 FLOPS,T 是目标 FLOPS,w=-0.07 是用于控制准确性和 FLOPS 之间权衡的超参数。

        与(Tan et al., 2019; Cai et al., 2019)不同,这里我们优化 FLOPS 而不是延迟,因为我们没有针对任何特定的硬件设备。我们的搜索产生了一个有效的网络,我们命名为 EfficientNet-B0。由于我们使用与 (Tan et al., 2019) 相同的搜索空间,因此架构类似于 MnasNet,除了我们的 EfficientNet-B0 由于更大的 FLOPS 目标(我们的 FLOPS 目标为 400M)而略大一些。表 1 显示了 EfficientNet-B0 的架构。它的主要构建块是移动倒置瓶颈 MBConv (Sandler et al., 2018; Tan et al., 2019),我们还添加了挤压和激励优化 (Hu et al., 2018)。

表 1. EfficientNet-B0 基线网络
表 2. ImageNet 上的 EfficientNet 性能结果(Russakovsky 等人,2015 年)。 所有 EfficientNet 模型均使用等式 3 中的不同复合系数从我们的基线 EfficientNet-B0 缩放。具有相似 top-1/top-5 精度的 ConvNet 被分组在一起以进行效率比较。 与现有的 ConvNets 相比,我们扩展的 EfficientNet 模型始终将参数和 FLOPS 减少一个数量级(高达 8.4 倍的参数减少和高达 16 倍的 FLOPS 减少)。

五、讨论/结论

        为了从 EfficientNet 架构中分离出我们提出的缩放方法的贡献,图 8 比较了相同 EfficientNet-B0 基线网络的不同缩放方法的 ImageNet 性能。 一般来说,所有缩放方法都以更多 FLOPS 为代价来提高精度,但我们的复合缩放方法可以比其他单维缩放方法进一步提高精度高达 2.5%,这表明我们提出的复合缩放的重要性。

图 8. 使用不同方法扩展 EfficientNet-B0。

         为了进一步理解为什么我们的复合缩放方法比其他方法更好,表7 比较了几个具有不同缩放方法的代表性模型的类激活图 (Zhou et al., 2016)。 所有这些模型都是从相同的基线扩展的,它们的统计数据如表 7 所示。图像是从 ImageNet 验证集中随机挑选的。 如图所示,具有复合缩放的模型倾向于关注具有更多对象细节的更相关区域,而其他模型要么缺乏对象细节,要么无法捕获图像中的所有对象。

        在论文中,作者系统地研究了 ConvNet 的缩放,并确定仔细平衡网络宽度、深度和分辨率是一个重要但缺失的部分,这使我们无法获得更好的准确性和效率。 为了解决这个问题,我们提出了一种简单而高效的复合缩放方法,它使我们能够以更原则的方式轻松地将基线 ConvNet 扩展到任何目标资源约束,同时保持模型效率。 以此为动力通过复合缩放方法,我们证明了移动大小的 EfficientNet 模型可以非常有效地缩放,在 ImageNet 和五个常用的迁移学习数据集上,以更少的参数和 FLOPS 超过最先进的精度。

        原论文地址

https://arxiv.org/abs/1905.11946icon-default.png?t=M4ADhttps://arxiv.org/abs/1905.11946

猜你喜欢

转载自blog.csdn.net/bashendixie5/article/details/124960786