一、Introduction
先前的工作中,通常只缩放深度、宽度和分辨率中的一个,尽管可以任意缩放二维或三维,但任意缩放需繁琐的手动调整,且常产生次优的精度和效率。不像传统的做法是任意缩放这些因素,我们统一缩放网络的深度、宽度和分辨率与一组固定的比例系数。例,如果我们想用2^N倍的计算资源, 那么网络深度将增加α^N, 宽度增加β^N , 分辨率将增加γ^N,其中,α, β, γ是在原始小模型上通过小网格搜索确定的常数系数。
二、复合模型缩放
1.问题描述
卷积网络的某一层i可由函数Yi = Fi(Xi)定义,Fi为操作,Yi为输出张量,Xi为输入张量,张量大小为 <Hi, Wi, Ci>,Hi, Wi为空间维度,Ci为通道维度。卷积网络N可由多层表示:
FiLi代表在i阶段Fi层重复Li次,<Hi, Wi, Ci>为第i层输入张量X的大小。
通常的Convnet设计的主要侧重为寻找最佳的层架构Fi,模型缩放尝试在不改变基线网络中预定义的Fi下扩展网路的长度Li,宽度Ci,分辨率(Hi,Wi)。通过修正Fi,模型缩放简化了新资源约束下的设计问题,但对每一层,搜索不同的Li,Ci,Hi,Wi仍是一个很大的设计空间。为了进一步缩小设计空间,我们限制所有层必须以恒定比例均匀缩放。
我们的目标是使任何给定资源约束的模型精度最小化,可将其描述为优化问题:
2、复合缩放
通过实验我们观察到:
(1)放大网络宽度、深度或分辨率的任何维度都可以提高精度,但对于更大的模型,精度增益会减小。
(2)为了追求更好的精度与效率,在Convnet的缩放期间,平衡宽度、深度和分辨率至关重要。
在本文中,我们提出了一种新的复合标度方法,该方法利用复合系数φ对网络宽度、深度和分辨率进行统一的标度:
三、EfficientNet结构
由于模型缩放不会改变基线网络中的层操作Fi,因此一个良好的基线网络是至关重要的。我们开发了一个新的基线——EfficientNet来证明缩放的有效性。我们通过利用多目标神经结构搜索来开发基线网络,该搜索优化了精确度和失败率,使用ACC(m)×[FLOPS(m)/T]^w作为优化目标,其中ACC(m)和FLOPS(m)表示模型m的精度和FLOPS,T是预期的FLOPS,w=-0.07是权衡精度和FLOPS的超参数。这里我们优化的是FLOPS而不是延迟,因为我们没有针对任何特定的硬件设备。
我们的搜索产生了一个高效的网络,我们称之为EfficientNet-B0,其主要构建块是移动反向瓶颈MBConv,我们还添加了挤压和激励优化。
从EfficientNet-B0开始,我们采用复合缩放方法,通过两个步骤将其放大:
•第1步:φ=1,假设可用资源增加两倍,然后根据等式2和3对α、β、γ进行小网格搜索。特别地,我们发现在α·β^2 ·γ^2≈2的约束下,网络的最佳值为α=1.2,β=1.1,γ=1.15。
•第2步:将α、β、γ固定为常数,并使用等式3放大不同φ的基线网络,以获得EfficientNet-B1至B7(详见表2)。
四、Results
1.与其他一阶段方法相比,我的复合尺度方法提高了所有这些模型的精度,这表明我们提出的尺度方法对现有的一般Convnet是有效的。
2.我们的EfficientNet模型使用的参数和FLOPS通常比其他具有类似精度的Convnet少一个数量级。
3.EfficientNet在硬件上速度很快。