EfficientNet与EfficientDet论文解读

这两项工作均来自Google Brain的大佬,EfficientDet可以看做EfficientNet的工作拓展。目前EfficientNet的代码已经开源,EfficientDet已经被复现。这两项工作的纸面效果看起来特别优秀,与其他工作相比,在差不多的精度下,参数量和计算量均大幅度低于其他做。而且都是家族系方法,各位可以根据自己的需求选择。

先介绍第一篇:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

Paper:EfficientNet: Rethinking Model Scaling for Convolutional Neural  

Code:https://link.zhihu.com/?target=https%3A//github.com/qubvel/efficientnet

文章摘要:卷积神经网络(CNN)通常是在特定资源预算下开发的,如果有更多的资源可用,则会进行扩展以获得更高的精度。在论文中,我们系统地研究了模型缩放,并发现精细平衡网络的深度、宽度和分别率可以获得更多的性能。基于以上研究结果,我们提出了新的缩放方法,使用简单而高效的compound coefficient(复合系数)来均匀地缩放深度、宽度和分别率维度。我们在ResNet和MobileNets上证明了该方法的有效性。更近一步,我们使用神经搜索网络(NAS)设计了一个新的基线网络,并将其扩展以获得一系列网络,称为EfficientNet。与以前的卷积神经网络相比,它具有更高的精度和效率。

现有的大多数方法均是采用对网络深度(depth)网络宽度(width)输入图像分辨率 (resolution)中其一进行改进,来获得更高精度。如ResNet-18到ResNet-200。但是单一的对以上维度进行扩展很容易到达饱和,如ResNet-200和ResNet-1000的精度类似。论文指出,模型扩张的各个维度之间并不是完全独立的,比如说,对于更大的分辨率图像,应该使用更深、更宽的网络,这就意味着需要平衡各个扩张维度,而不是在单一维度张扩张。而手动调节三者之间的数值关系无异于天方夜谭,因此作者提出compound coefficient(复合系数)使用一组固定的缩放系数来均匀缩放网络宽度,深度和分辨率。例如,对于一个标准的模型,如果想使用 2^{N} 倍的计算资源,作者认为只需要对网络宽度增加 \alpha ^{N} ,深度增加 \beta ^{N} ,以及图像的分辨率增加 \gamma ^{N} 倍。其中 \alpha ,\beta ,\gamma 是一组固定系数,他们的值通过在原始的标准模型中使用小范围的网格搜索(grid search)得到。通过下图可以看出,网络的深度是指调整网络的层数,宽度指网络中每一层特征图的通道数,分辨率则是调整输出图像的大小。

该方法使用一个复合系数 \phi 通过一种规范化的方式统一对网络的深度、宽度和分辨率进行扩展。

其中 \alpha ,\beta ,\gamma 是常数,它们有小型网络搜索确定。 \phi 则是一个由用户指定的扩展系数,它用来控制到底有多少资源是模型扩展可用的。对于一般的卷积操作,其 FLOPS 需求与 d, w^{2}, r^{2} 是成比例的。由于卷积网络中最消耗计算资源的通常是卷积操作,因此对网络进行扩展会导致总 FLOPS 近似变为 \left ( \alpha * \beta^{2} * r^{2} \right )^\phi ,本文中作者使用公式\left ( \alpha * \beta^{2} * r^{2} \right )^\phi \approx 2对这三个参数进行了约束,因此,总 FLOPS 增加 2^{\phi } 。

将以上方法应用在ResNet和MobileNet均收到了优异的效果。根据先验知识,模型的精度与基线模型有很大关系,因此论文利用NAS设计了一个新的轻量级基线网络 EfficientNet。

EfficientNet 的结构已经在表 1 中列出,它的主干网络是由 MBConv 构成,同时作者采取了 squeeze-and-excitation 操作对网络结构进行优化。对于 Efficient-B0,若要使用复合扩展法对其进行扩大需要通过两步来完成:

  • 第一步:首先将\phi固定为 1,假设至少有两倍以上的资源可用,通过公式(2)和公式(3)对\alpha ,\beta ,\gamma进行网格搜索。特别的是,对于 EfficientNet-B0,在约束条\left ( \alpha * \beta^{2} * r^{2} \right )^\phi \approx 2下,\alpha ,\beta ,\gamma分别为 1.2,1.1 和 1.15 时网络效果最好。
  • 第二步:\alpha ,\beta ,\gamma作为常数固定,然后通过公式(3)使用不同 \phi 对基线网络进行扩展,得到 EfficientNet-B1 到 EfficientNet-B7。

结果展示:

作者通过对模型扩展方法方面存在地问题进行了讨论,从如何权衡网络的深度、宽度以及分辨率方面出发提出了复合扩展方法。并在 MobileNets 和 ResNet 上对这种扩展方法进行了验证。此外,作者还通过神经结构搜索设计了一种新的基线网络 EfficientNet,并对其进行扩展得到了一系列的 EfficientNets。在图像分类标准数据集上,EfficientNets 超越了之前的卷积网络,并且 EfficientNet 参数量更少、推理速度更快。

 

第二篇:EfficientDet: Scalable and Efficient Object Detection

Paper: EfficientDet: Scalable and Efficient Object Detection

Code:待开源

文章摘要:模型效率在计算机视觉中变得越来越重要。在本文中,我们系统地研究了目标检测中各个神经网络体系结构的设计选择,并提出了提高效率的优化方案。首先,我们提出了一种加权双向特征金字塔网络(BiFPN),它可以方便、快速地融合多尺度特征;其次,我们提出了一种混合缩放方法,可以同时对backbone,feature network,and box/class prediction networks的网络深度(depth)网络宽度(width)输入图像分辨率 (resolution)进行均匀缩放。本文主要研究的问题是:在大范围约束条件下设计一组目标检测网络框架同时满足高精度和高效率。话不多说,直接上效果展示图:

创新点:

EfficientDet改进主要是借鉴了RetinaNet网络,是一种Anchor-base的one stage目标检测方法。

  • BiFPN:(a)原始的PFN(b)PANet引入了自底向上的融合路径,(c)NAS-FPN则使用神经架构搜索得到不规则的特征网络拓扑结构,(d)为作者提出的另一种改进,全连接FPN,(e)为作者提出的一种简化FPN,(f)为论文最终在 EfficientDet 使用的BiFPN。此外,论文还提出,之前从FPN开始普遍采用的,一个特征先 Resize ,再和另一层的特征相加的方式不合理。因为这样假设这两层的特征有了相同的权重。从更复杂的建模角度出发,应该每一个 feature 在相加的时候都要乘一个自己的权重。这样 weighted 的方式能涨 0.4。

  • 因为权重没有归一化,会影响训练稳定性。本文对学习的权重进行归一化,尝试两种方法:Softmax  、Linear 。实验证明,Linear可以大幅度提高训练速度,且取得和Softmax类似的结果。
  • EfficientDet:整体框架设计沿用RetinaNet,backbone采用EfficientNet,FPN替换成堆叠的BiFPN,框架如图。

  • EfficientNet 在 Model Scaling 的时候考虑了网络的 width, depth, and resolution 三要素。而 EfficientDet 进一步扩展,把 EfficientNet 拿来做 backbone,这样从 EfficientNet B0 ~ B6,就可以控制 Backbone 的规模;neck 部分,BiFPN 的 channel 数量、重复的 layer 数量也可以控制;此外还有 head 部分的层数,以及 输入图片的分辨率,这些组成了 EfficientDet 的 scaling config 。

展示结果:

本文最大的亮点在于提出了目标检测网络联合调整复杂度的策略,从而在COCO上达到51.0 mAP的最优成绩。动机源自于谷歌大脑在分类任务的另一大作EfficientNet,本文提出的EfficientDet有如此出色的效果,一部分原因也在于EfficientNet,而EfficientNet的Baseline是通过NAS得到的(也说明NAS的重要性)。联合调整策略详细可以看EfficientNet论文。本文第二大亮点在于堆叠FPN,通过堆叠FPN就可以涨几个点,当然BiFPN的设计也是非常有效的,通过增加短接以及学习加权和,能达到很好效果也更符合理解。

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值