CV 经典主干网络 (Backbone) 系列: EfficientNet

CV 经典主干网络 (Backbone) 系列: EfficientNet

作者:Mingxing Tan 等
发表时间:2019
Paper 原文: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

该篇是 CV 经典主干网络 (Backbone) 系列 下的一篇文章。

练丹师在练丹的时候,对于卷积神经网络,通常通过调整网络深度(depth)网络宽度(width)输入图像分辨率 (resolution) 大小来找到一个效果比较的网络,但是这却是一个体力活,作者希望找到一个通用的缩放方法,可以使得网络又准又快。

1. 网络结构

1.1 理论

作者通过一些实验得出如下结论:

  • 三个维度中任一维度的放大都可以带来精度的提升,但随着倍率越来越大,提升却越来越小。

  • 得到更高的精度以及效率的关键是平衡网络宽度,网络深度,图像分辨率三个维度的放缩倍率(d, r, w)

基于以上的结论,作者提出了一种混合维度放大法(compound scaling method)

CV 经典主干网络 (Backbone) 系列: EfficientNet_第1张图片

其中 α , β , γ \alpha, \beta, \gamma α,β,γ,可通过网格搜索获得。混合系数 ϕ \phi ϕ 根据可以调用的资源进行人工调节。考虑到如果网络深度翻倍,那么对应计算量会翻倍,而网络宽度或者图像分辨率翻倍,对应计算量会翻 4 倍,即卷积操作的计算量(FLOPS) 与 d , w 2 , r 2 d,w^2,r^2 d,w2,r2 成正比,因此上图中的约束条件中有两个平方项。在该约束条件下,指定混合系数 ϕ \phi ϕ 之后,网络的计算量大概会是之前的 2 ϕ 2^\phi 2ϕ 倍。

1.2 网络结构

作者主要借鉴了 MnasNet(本文作者 2018 年提出的一种基于 MobileNet 的改进网络),采取了同时优化精度(ACC)以及计算量(FLOPS)的方法,由此产生了初代 EfficientNet-B0,其结构如下图:

CV 经典主干网络 (Backbone) 系列: EfficientNet_第2张图片

有了初代的网络结构(B0)之后,接下来就是验证上面提出的混合维度放大法了:

  • 第一步,首先固定 ϕ \phi ϕ为 1,即设定计算量为原来的 2 倍,在这样一个小模型上做网格搜索(grid search),得到了最佳系数为 α = 1.2 , β = 1.1 , γ = 1.15 \alpha=1.2,\beta=1.1,\gamma=1.15 α=1.2,β=1.1,γ=1.15
  • 第二步,固定 α = 1.2 , β = 1.1 , γ = 1.15 \alpha=1.2,\beta=1.1,\gamma=1.15 α=1.2,β=1.1,γ=1.15,使用不同的混合系数 ϕ \phi ϕ 来放大初代网络得到 EfficientNet-B1 ~ EfficientNet-B7。

作者选择只在小模型上进行网络搜索,大大减少了计算量。

2.性能

一句话概括就是又快又准。

CV 经典主干网络 (Backbone) 系列: EfficientNet_第3张图片

你可能感兴趣的:(Backbone,efficientnet,主干网络,backbone,结构,解析)