EfficientNet简述

论文地址:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

EfficientNet作者系统地研究了模型缩放,并发现对网络深度、宽度和分辨率进行平衡可以带来更好的性能,而前人的文章多是放大其中的一个以达到更高的准确率。EfficientNet仅使用了很小的参数量就超越了当时的SOTA模型。

image.png

作者发现只对模型的深度、宽度和分辨率其中一个维度进行扩张能得到性能提升,但是会有较大的局限性。作者认为各个维度之间的扩张不应该是相互独立的,比如说,对于更大分辨率的图像,应该使用更深、更宽的网络,这就意味着需要平衡各个扩张维度,而不是在单一维度张扩张。

对此作者提出了复合缩放法(compound scaling method),方程式如下,其中约束(s.t.)限制了模型的复杂度。在约束式中宽度和分辨率都有一个平方项,这是因为如果增加宽度或分辨率两倍,其计算量是增加四倍,但是增加深度两倍,其计算量只会增加两倍。

image.png

求解方式:

  1. 固定公式中的φ=1,然后通过网格搜索(grid search)得出最优的α、β、γ,得出最基本的模型EfficientNet-B0.
  2. 固定α、β、γ的值,使用不同的φ,得到EfficientNet-B1, …, EfficientNet-B7

φ的大小对应着消耗资源的大小,相当于:

  1. 当φ=1时,得出了一个最小的最优基础模型;
  2. 增大φ时,相当于对基模型三个维度同时扩展,模型变大,性能也会提升,资源消耗也变大。

值得一提的是EfficientNet中使用了移动翻转瓶颈卷积(mobile inverted bottleneck convolution,MBConv)模块,该模块引入了深度分离卷积和SENet的思想。

参考文献:

[1]令人拍案叫绝的EfficientNet和EfficientDet
[2]速度与精度的结合 - EfficientNet 详解
[3]EfficientNet-B0解读
[4]EfficentNet详解之MBConvBlock

-------------本文结束感谢您的阅读-------------