EfficientNet:模型设计新范式

mac2024-04-07  33

原文链接:EfficientNet:模型设计新范式 | Hey~YaHei!

唔~2019年的图像特征提取方面似乎有了可喜的发展,大家不再盲目地堆大模型,而是寻找更加高效的特征提取结构,在显著减小参数量和计算量的同时模型的表现还能得到提升。同时我们可以看到深度可分离卷积及其变种几乎已经成为主流——

接下来我将分三次分别介绍今年Google Brain的几篇思路清奇的论文,首先是《EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2019ICML)》。 该论文的主要贡献在于简化模型缩放流程,统合了宽度、深度、分辨率三个维度的缩放,建立起一个简单有效的联系。

模型缩放

在设计好模型结构的情况下,我们通常可以通过对模型的缩放,以增大模型的大小来换取模型表现的提升,或以牺牲模型表现为代价换取模型大小的减小。最常用的缩放维度有三个——深度、宽度和输入分辨率

深度 更深的网络往往能提取到更佳丰富和复杂的特征,并且有更强的泛化能力但深层网络存在训练难的问题,尽管shortcut、BN等技术缓解了这一问题,但随着网络的加深边际收益依旧会明显变小比如ResNet18、ResNet34、ResNet50、ResNet101、ResNet152,其数字代表的是模型中卷积层和全连接层数量(不考虑shortcut上用于downsample的卷积);VGG11、VGG13、VGG16、VGG19,其数字代表的是模型中卷积层和全连接层数量——这是一种典型的深度缩放 宽度 更宽的网络往往能提取更细粒度的特征,并且也更容易训练(同时足够宽的网络能够容许Dropout和BN技术兼容使用,比如WideResNet)比如MobileNet1.0、MobileNet0.75、MobileNet0.5、MobileNet0.25,其数字代表的是模型中卷积通道数量的缩放因子,除此之外还有常见的WideResNet,这是一种典型的宽度缩放 输入分辨率缩放更为常见,通过增加输入图片的尺寸,可以保留更多信息,从而提升模型的表现除此之外,下采样策略也是一种缩放维度,提前下采样可以缩小模型,反之则会增大模型 下采样策略可以看作更细粒度的输入分辨率缩放,它控制的是中间特征图的分辨率而非简单的模型输入分辨率比如FD-MobileNet采用快速下采样策略并提升模型宽度,在保持模型大小几乎不变的情况下提高模型的特征提取能力

论文作者做了简单的实验,表明单一放大某一因素,其边际收益是不断减小的—— (其中,w, d, r分别表示宽度(Width)、深度(Depth)、分辨率(Resolution)的缩放因子)

混合缩放

此前已经有其他论文(如《Searching for Activation Functions(2017)》和《Regularized Evolution for Image Classifier Architecture Search(2019AAAI)》)讨论过多个缩放维度混合的模型缩放策略,而本文则是为深度、宽度、输入分辨率的缩放建立一个简单但有效的联系,从而简化缩放因子的选取过程。 其实思路非常简单,首先定义这三个缩放因子为 d d d, w w w, r r r,并且让他们同步增长 d = α ϕ w = β ϕ r = γ ϕ d = \alpha^\phi \\ w = \beta^\phi \\ r = \gamma^\phi d=αϕw=βϕr=γϕ 那么此时模型的计算量会增长为大约原来的 ( α ⋅ β 2 ⋅ γ 2 ) ϕ (\alpha \cdot \beta^2 \cdot \gamma^2) ^ \phi (αβ2γ2)ϕ倍; 为了简单起见,作者约束了 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 αβ2γ22,计算量随 ϕ \phi ϕ增长为原来的 2 ϕ 2^\phi 2ϕ倍,这样一来只需要找到合适的 α , β , γ \alpha, \beta, \gamma α,β,γ,然后调整 ϕ \phi ϕ的值就可以实现简单的混合缩放。

EfficientNet模型设计

在上述基础上,作者提出了一种新的模型设计范式,并得到了EfficientNet系列模型——

用NAS搜索出符合预期大小的一个小模型,这里作者设定了计算量目标为400MFLOPS,于是搜出了一个跟MNasNet类似的小模型B0

这里的Operator沿用了MNasNet的命名方式,MBConv1指的是MobileNetv1的原版深度可分离卷积,MBConv6指的是MobileNetv2的反残差结构,不过作者在论文中指出这里使用的是带SE模块的反残差结构

接下来通过网格搜索,找出满足 α ⋅ β 2 ⋅ γ 2 ≈ 2 \alpha \cdot \beta^2 \cdot \gamma^2 \approx 2 αβ2γ22的最优超参 α , β , γ \alpha, \beta, \gamma α,β,γ,进而得到B1 如作者搜索出来的结果为 α = 1.2 , β = 1.1 , γ = 1.15 \alpha=1.2, \beta=1.1, \gamma=1.15 α=1.2,β=1.1,γ=1.15,此时B1计算量约为800MFLOPS

按照混合缩放的公式,逐步增加 ϕ \phi ϕ值,依次得到各种规模下的B2-B7

由此设计出来的模型有着相当惊人的特征提取效率,而且小模型的搜索空间比较小,更容易搜索出最优模型,搭配合理的模型缩放,放大后的模型甚至能比直接搜索的大模型更加有效——

最新回复(0)