代码地址:EfficientNet-PyTorch
1. 概述
导读:一般来讲CNN网络被设计拥有固定的资源开销,要是在资源允许的条件下可以通过增加网络深度来提升性能(例如ResNet18到ResNet200)。这篇文章系统研究了模型规模,验证了有效平衡网络的深度宽度与特征分辨率能带来更好地性能提升。在此基础上,文章提出一种新的scaling方法,该方法使用一个简单而高效的复合系数(compound coefficient)来均匀地缩放网络的深度宽度以及分辨率维度,从而达到提升网络性能的目的(单一维度容易饱和,多维度组合更好)。
更进一步,文章使用网络搜索设计了一个新的网络结构基础,并在这个基础上使用不同的缩放参数得到一系列的网络结构,文章将其称为EfficientNet,文章提出的EfficientNet-B7在ImageNet上达到了state-of-art的84.4%(top1),97.1%(top5),并且比现有最好的网络小了8.4倍,快了6.1倍。
将现有的一些轻量级网络与文章的方法进行对比,其性能与计算量为:
一般来讲提升网络的性能采用增加网络深度、宽度以及输入图像分辨率来实现。在这篇文章中使用固定参数组合的形式重新定义网络,这是基于使用宽度深度、分辨率上的缩放参数平衡这几个变化维度对网络提升的重要观察。这是通过一组固定的缩放参数设置的,而不是随机对这些参数进行变化。比如设计网络时需要让网络的计算资源增加
2
N
2^N
2N倍,使用文章的方法就只需要网络深度变化
α
N
\alpha^N
αN,宽度变化
β
N
\beta^N
βN,分辨率变化
γ
N
\gamma^N
γN就可以实现,除了参数
N
N
N其它参数都是固定的。下面图2是传统的方法与文章提出的组合缩放的方法对比:
2. 方法设计
2.1 问题描述
在CNN网络中,一个卷积层的作用可以使用
Y
i
=
F
i
(
X
i
)
Y_i=F_i(X_i)
Yi=Fi(Xi)来表示,输入
X
i
∈
R
H
i
,
W
i
,
C
i
X_i\in R^{H_i,W_i,C_i}
Xi∈RHi,Wi,Ci,卷积中不同的stage中卷积重复的次数表示为
L
i
L_i
Li,则一个CNN网络可以表示为如下的形式:
那么在有限的内存与计算量前提下,使得这个网络的结果最优,可以得到下面的最优化为描述:
2.2 变量分析
2.2.1 深度、宽度、分辨率分别对性能的影响
要解决公式2中的最优化问题是比较难的,由于
d
,
w
,
r
d,w,r
d,w,r这几个参数之间相互关联,且需要在不同资源限制下不断变化。文章首先研究了决定网络的三个超参数对网路性能带来的影响,见图3所示:
结论1:从上图可以看到单独增加这几个超参数是可以是的网络性能提升的,但是都是在增加到一定程度之后进入饱和。
2.2.1 深度、宽度、分辨率组合对性能的影响
由于单独调整一个超参数在达到一定程度之后都会存在饱和的情况,对此文章进行组合优化实验,其结果见图4所示:
结论2:为了追求更好的网络性价比,平衡CNN网络中的各个超参数尤为重要。
有了之前的实验结果,接下来就是需要对之前公式2中最优化中的超参数建立模型,文中使用
ϕ
\phi
ϕ来控制CNN网络所使用的资源,参数
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ分别控制
d
,
w
,
r
d,w,r
d,w,r维度上的缩放程度。因而得到其约束条件:
对于CNN网络来说,深度加倍会使得计算量也加倍,宽度与分辨率的加倍会带来计算量变为之前的4倍,因而折中来讲将这个翻倍的比例设置为3去适配计算量的增加倍率
(
α
⋅
β
2
⋅
γ
2
)
ϕ
(\alpha \cdot \beta^2 \cdot \gamma^2)^{\phi}
(α⋅β2⋅γ2)ϕ,而在文章中将其设置为约等于2的的值。
2.3 EfficientNet网络结构
文章使用下面两篇文章的结果得到一个基础网络,再在其基础上scaling操作得到一系列的网络。
- 1)Tan, M., Chen, B., Pang, R., Vasudevan, V., Sandler, M.,Howard, A., and Le, Q. V. MnasNet: Platform-aware neural architecture search for mobile. CVPR, 2019.
- 2)Cai, H., Zhu, L., and Han, S. Proxylessnas: Direct neural architecture search on target task and hardware. ICLR,2019.
文章首先使用固定
ϕ
=
1
\phi=1
ϕ=1,使用grid search方法搜索得到
α
=
1.2
,
β
=
1.1
,
γ
=
1.15
\alpha=1.2,\beta=1.1,\gamma=1.15
α=1.2,β=1.1,γ=1.15的EfficientNet-B0;之后将超参数
α
,
β
,
γ
\alpha,\beta,\gamma
α,β,γ固定使用不同的
ϕ
\phi
ϕ得到从B1到B7的一系列网络。其中得到的B0网络结构见表1所示:
3. 实验结果
网络性能比较:
时耗分析比较: