论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

不清楚的地方:
GPipe网络结构是啥?应该是个超大型网络
CIFAR-100数据集,具体是?
Flowers 是花分类数据集?鸢尾花?
RMSProp
batch norm momentum
SiLu是什么激活函数?
AutoAugment
stochastic depth

概括

卷积神经网络开发时大多资源预算固定,之后如果有更多的资源就会扩大网络提升效果。这篇论文系统讨论了模型体量变化并发现仔细平衡网络的深度宽度以及分辨率可得到更佳表现。提出了新的网络尺度变化方法,通过简单但高效的compound coefficient.(复合系数)联合变换深度宽度分辨率。并在MobileNets和ResNet上论证有效。
更进一步使用了神经网络结构搜索来设计新的基线网络,并且变换尺度来获得一系列模型,名为EfficientNets。Efficient-B7在ImageNet上获得SOTA Top-1 84.3%,比之前的SOTA小了8.4倍快了6.1倍。在CIFAR-100上取得SOTA 91.7% Flowers98.8%

1.介绍

经常使用扩大网络的方法获得更好的准确率,比如ResNet可以增加层数从ResNet-19扩大到ResNet-200。最近GPipe(受害者出现)放大四倍后在ImageNet上获得了Top-1 84.3%的SOTA。扩大卷积网络是容易被理解且广泛使用的,比如扩张深度或宽度,还有不常见的增加输入图片分辨率。之前的工作往往只单一增大上述一点,同时增加其他两个则需要复杂的调优并且容易获得次优效果与效率。
这篇论文中会学习并重新思考扩大卷及网络的方法。尤其是如何以范式来扩大缩小网络并平衡好效果与效率。从先前的工作经验来看平衡宽度深度分辨率是关键。因此提出了混合尺度缩放方法(compound scaling method)来对各项参数进行统一扩大缩小。混合尺度缩放与单尺度缩放对比详见下图:
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020直觉上来讲混合尺度缩放是有效的,因为如果输入图像变大,网络就需要更多的层来增加感受野(receptive field)以及更多的通道来捕获大图片中更高细粒度的图案。
缩放实验会在MobileNet与ResNet上进行。由于重度缩放的模型效果依赖基线网络,后面进一步使用了网络搜索来得到一个基线网络,并通过扩大尺度来获得一系列EfficientNet网络,下图展示网络效果(看似效果好,但论文没说backbone用的是ResNet还是MobileNet)
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

2.相关工作

卷积神经网络的准确性:

自从Alexnet获得了2012ImageNet比赛,卷积神经网络通过变大获得了准确度增长。2014ImageNet获胜网络GoogleNet更是在6.8M参数量top-1达到了74.8%,2017年获胜网络SENet则是145M参数量top-1达到82.7%。最近557参数量的GPipe又进一步推升top-1准确率到84.3%。巨大的网络需要使用专门的并行管线库分隔网络到多个加速器分布训练。

卷积神经网络的效率:

SqueezeNets,MobileNets, ShuffleNets运行效率高但是效果下降。也有拿网络搜索做移动端卷及网络的例子,其效果优于手动对网络宽度深度卷积核类型以及尺寸的调参。但对于大网络由于更大的搜索空间以及调优消耗很难进行。

模型缩放(Model Scaling):

ResNet可以通过改变channel扩大或缩小模型尺度。WideResNet和MobileNet可以通过改变网络宽度(channel)来缩放。也可以通过提升输入图片分辨率提升效果。先前的工作证明了网络的宽度与深度对网络的表达能力同样重要,对于如何有效地缩放网络是个问题,之后工作会系统讨论宽度深度以及分辨率的缩放。

3.混合模型缩放(Compound Model Scaling)

3.1范式化问题

第i个卷积层可以被公式化为 Yi=Fi(Xi),F是操作函数,Y是输出tensor,X是输入tensor。后面的点乘符号打不出来所以,嘿嘿,啊哈哈哈,原文截图来喽:
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020上图的总体思路是,网络往往可以分成几个部分,这些部分往往具有相同的范式,结构相似且重复,因此可以用一个统一的公式来表示。
不同于找到更好的网络结构F(function),模型缩放试图在不改变基线网络F前提下通过改变网络深度宽度输入图片分辨率来扩张网络大小。通过固定F,对于不同计算资源限制下的网络尺度变换会变得容易,但深度宽度分辨率这些参数仍然有很大的设计空间。为了进一步减少网络缩放复杂度,作者限制了每一层网络都要使用同一个常量进行缩放。之后的问题就变成了如何在给定计算资源下获得最佳效果:
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

3.2 维度缩放

由于在资源限制下很难同时更改多个参数,所有大多数方法都只更改其中一个:

深度d:

缩放网络的深度是最常用的方法。直觉上来讲更深的网络可以捕获到更丰富更复杂的特征,并且在新任务中表现良好。然而更深的网络由于梯度消失更难训练。尽管有一些技巧例如跳跃连接( skip connections)归一化(batch normalization)来减轻训练问题。但增加网络深度并不一定带来效果的提升,例如ResNet-1000与ResNet-101有些相似的准确率但是更深。
下图中间显示,在增加深度的同时,模型效果在下降。
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

宽度w:

更宽的网络能够捕获更细粒度的特征且更容易训练,但过宽并且浅的网络不容易捕获高级特征。图3左侧中可以看出网络变宽,精度迅速饱和

分辨率r:

更高分辨率的输入图像可以捕获更多细粒度特征,上图3右侧可以看出准确率增益会随着分辨率增加而降低(r=0.1 分辨率为224224,r=2.5 分辨率为560560)

上述分析使我们得出第一个结果:
单独添加任何物品,效果提升增益会随着模型的增加而减少

3.3Compound Scaling(混合缩放)

根据经验,模型缩放不能以单一方式完成,更高分辨率的图像应该使用更深的网络来扩展感受野以捕获更多特征,并使用更广泛的网络来捕获更细粒度的特征。这些直觉表明我们需要适应和平衡不同的维度,而不是缩放单个维度。
为了证明论点,作者对比了不同深度分辨率变化的模型效果(下)
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020如果只缩放宽度不改变深度,准确率饱和速速快。使用更深更高分辨率在同样FLOPS消耗下效果更好,实验得出了第二个结论:
平衡宽度、深度和分辨率对于卷积网络缩放至关重要。

作者提出了一种混合尺度缩放方法,使用一个混合系数φ来联合缩放网络的宽度、深度和图像分辨率。
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020α, β, γ可以通过一个小范围搜索得到,φ则取决于计算资源的多少。需要注意FLOPS与深度,宽度的平方,分辨率的平方成正比。深度增加一倍,FLOPS增加一倍,但是宽度或者分辨率增加一倍,FLOPS增加四倍。 由于卷积操作在卷积网络中是计算消耗的大头,缩放网络可以通过降低上述公式中三个参数来完成。论文中作者限制在所有φ情况下三个参数乘积为2,所以网络也是呈2的φ次方增加的。

EfficientNet结构

因为模型大小变换不改变基线网络,所以需要一个较好的基线网络。会使用现有的网络进行缩放方法的评估,但为了更好的验证方法,作者也开发了一个基线网络名为EfficientNet。该网络由搜索得出,优化目标为
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020
ACC是准确率,FLOPS是当前网络的FLOPS,T是目标网络的FLOPS,w为超参数-0.07,用于控制准确率与网络大小的平衡。最终搜索出的网络命名为EfficientNet-B0结构如下图:
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020网络骨干部分主要由mobile inverted bottleneck MBConv构成
MBConv结构:
在这里插入图片描述

就个人而言,我不建议使用点积来增加特征的维度。点积增加维度的特征存在大量数据冗余,网络效果提升有限,但会大大降低运行速度。
首先得到B0网络,之后通过混合尺度缩放来扩张网络大小:
第一步:固定φ=1,基于公式2(最优结果)与3(限制模型大小)来进行网络搜索。得到B0的α=1.2,β=1.1 γ=1.15
第二步:固定α,β,γ。之后使用不同的φ来获得EfficientNet-B1到B7

尽管可以通过搜索的方法得到更优的大网络,但是对更大的网络进行搜索会带来巨大的算力消耗,所以作者仅对B0网络进行搜索,之后通过改变φ来获得不同大小的网络。

实验

EfficientNet与现有网络的对比实验

5.1扩大MobileNets与ResNets

作者使用了MobileNet和ResNet来论证缩放方法的有效性,下表中对比了混合缩放与单维度缩放的效果。
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

5.2 在ImageNet上的测试

在ImageNets上面训练了EfficientNet,使用RMSProp 优化器,衰减0.9 动量0.9 bn动量0.99 权重衰减1e-5 初始化学习率0.256 每2.4个epoch衰减到原来的0.97。使用了SiLu激活函数,AutoAugment以及 survival probability 0.8的 stochastic depth。更大的网络需要更大的归一化,所以线性增加droupout从B0的0.2到B7的0.5。训练集使用随机抓取的25K张图像
表2展示了EfficientNets的全部网络性能,同样准确率下数据更少,B7网络得到SOTA同时比先前的的SOTA网络GPipe小8.4倍。
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020 图 1(上)和图 5(下)都展示了网络在低计算资源消耗下的高性能。

论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020使用CPU进行了模型运行耗时测试:
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

5.3 Efficient迁移学习

使用了下表中的数据进行迁移学习,在ImageNet上面进行预训练,新数据集微调。
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020表5展示了迁移学习的效果,对比于其他网络,EfficientNet又快又好(个人认为性能上提升的主要因素在backbone,而不是模型混合缩放的方法)对比结果见下图
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020

6.讨论

下图展示了混合缩放的优势:
论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020为了进一步理解混合缩放为什么能够提升效果,图7对比了几个模型中类别激活映射(class activation map)这些模型使用同样的baseline进行扩大。

论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020论文阅读瞎记(三) EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks 2020从激活特征图可以看出,混合缩放网络更关注相关区域,获取更多对象细节。

总结

系统地学习了卷积网络的缩放,并证实平衡网络的宽度-深度分辨率很重要。对此,作者提出了一种简单高效的卷积网络混合缩放方法,在确定计算资源时更容易扩展基线网络,同时保持模型的效率。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月21日 上午11:46
下一篇 2022年3月21日

相关推荐