EfficientNet介绍

EfficientNet是谷歌2019最新的net:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks ICML 2019

这篇论文主要讲述了如何利用复合系数统一缩放模型的所有维度,达到精度最高效率最高,符合系数包括w,d,r,其中,w表示卷积核大小,决定了感受野大小;d表示神经网络的深度;r表示分辨率大小;

1,文中总结 了我们常用的三种提升网络能力的方式:增大感受野w,增大网络深度d,增大分辨率大小r,三种方式示意图如下:
在这里插入图片描述
其中,(a)为基线网络,也可以理解为小网络;(b)为增大感受野的方式扩展网络;©为增大网络深度d的方式扩展网络;(d)为增大分辨率r的方式扩展网络;(e)为本文所提出的混合参数扩展方式;

3.Scaling Dimensions
深度(d):缩放网络深度在许多ConvNets都有使用,直觉上更深的网络可以捕获到更丰富和更复杂的特征,在新任务上也可以泛化的更好。然而,更深的网络由于梯度消失问题(这里我更倾向于说成是网络退化问题)也更难训练。尽管有一些技术,例如跨层连接、批量归一化等可以有效减缓训练问题,但是深层网络的精度回报减弱了:举个例子,ResNet-1000和ResNet-101具有类似的精度,即使它的层数更多。Figure 3(中间的图)展示了我们在使用不同的深度系数d缩放网络的研究结果,更近一步的表明了精度回报的减弱问题。
宽度(w):缩放网络宽度也是一种常用的手段,正如之前讨论过的,更宽的网络可以捕捉到更细粒度的特征从而易于训练。然而,非常宽而又很浅的网络在捕捉高层次特征时有困难,我们的实验结果Figure 3(左)表明了当网络宽度随着w变大时,精度很快就饱和了。
Resolution(r):使用更高分辨率的输入图像,ConvNets可能可以捕捉到更细粒度的模式。从最早的 224x224,现在有些ConvNets为了获得更高的精度选择使用 229x229 或者 331x331。目前,GPipe使用 480x480 的分辨率获得了最先进的ImageNet精度,更好的精度比如 600x600 也被广泛使用在目标检测网络中。Figure 3(右)展示了缩放网络分辨率对精度的影响,同样可以看到在非常高的分辨率时网络精度回报会减弱。
在这里插入图片描述4.Compound Scaling
我们经验上可以观察到不同缩放维度之间是不独立的,直观上来讲,对于分辨率更高的图像,我们应该增加网络深度,因为需要更大的感受野来帮助捕获更多像素点的类似特征,同时也应该增加网络宽度来获得更细粒度的特征。这些直觉指导着我们去协调平衡不同缩放维度而不是传统的单个缩放维度。
为了验证我们的直觉,我们在不同的网络深度和分辨率下比较了宽度变化的影响,如果我们在 d=1.0 和 r=1.0 时仅仅缩放网络宽度,精度很快就饱和了。但是在d=2.0 和 r=2.0时在相同的FLOPS下宽度缩放就可以获得更好的精度。这些结果导致我们得到了第二个观察结果。Observation 2:为了追去更好的精度和效率,在缩放时平衡网络所有维度至关重要。事实上,之前的一些工作已经开始在追去任意缩放网络深度和宽度,但是他们仍然需要复杂的人工微调。在本篇论文中,我们提出了一个新的复合缩放方法——使用一个复合系数ϕ统一缩放网络宽度、深度和分辨率:
在这里插入图片描述
这里的α,β,γ都是由一个很小范围的网络搜索得到的常量,直观上来讲ϕ是一个特定的系数,可以控制用于资源的使用量,α,β,γ决定了具体是如何分配资源的。值得注意的是,常规卷积op的计算量是和d,w2,r2成正比的,加倍深度会使得FLOPS加倍,但是加倍宽度和分辨率会使得FLOPS加4倍。由于卷积ops经常在CNN中占据了大部分计算量,使用等式(3)缩放ConvNet将会使得整体计算量近似增加(α⋅β2⋅γ2)ϕ倍。在本篇论文中,我们对任意ϕ增加了约束α⋅β2⋅γ2≈2 整体的计算量近似增加了2^ϕ倍。

5.EfficientNet Architecture
受到MnasNet的启发,我们也开发了一种多目标的神经网络结构搜索同时优化精度和FLOPS,我们的搜索空间和MnasNet相同,不像MnasNet中的优化目标,这里优化的是FLOPS而不是延迟,因为我们没有说是要在特定的硬件平台上做加速。我们的搜索方法得到了一个高效的网络,我们称之为EfficientNet-B0,因为我们使用的搜索空间和MnasNet相似,所以得到的网络结构也很相似,不过我们的EfficientNet-B0稍微大了点,因为我们的FLOPS预算也比MnasNet中大(400M)。table 1展示了EfficientNet-B0的结构,它的主要构建块就是移动倒置瓶颈MBConv,其网络结构如下:
在这里插入图片描述
在这里插入图片描述
然后以EfficientNet-B0为baseline模型,我们将我们的复合缩放方法应用到它上面.值得注意的是,直接在一个大模型上搜索得到α,β,γ可能会导致一个更好的表现,但是搜索成本会很高,我们的方法解决了这个问题,只在小的baseline网络中做了一次搜索得到α,β,γ然后对于其他的模型都使用的是相同的α,β,γ只是通过ϕ来调整模型的大小和FLOPS.
STEP 1:我们首先固定ϕ=1,假设有相比于原来多了2倍的资源,先做了一个小范围的搜索,最后发现对于EfficientNet-B0来说最后的值为α=1.2,β=1.1,γ=1.15
STEP 2:接着我们固定α,β,γ作为约束,然后利用不同取值的ϕ对baseline网络做放大,来获得Efficient-B1到B7;

  • 7
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值