赞
踩
paper链接:EfficientNetV2: Smaller Models and Faster Training
官方代码:https://github.com/google/automl/tree/master/efficientnetv2
paper核心:针对EfficientNets的不足提出了Fused-MBConv结构,应用训练感知NAS和缩放联合优化模型精度、训练速度和参数大小,还提出渐进性学习方法加快了训练时间。
ps:这篇笔记的图片来源与参考资料
EfficientNetV1的不足:
使用非常大的图像尺寸进行训练是缓慢的。并且容易导致Out Of Memery
depthwise convolutions在早期层是缓慢的。DW卷积比常规卷积具有更少的参数和失败,但它们往往不能充分利用现代加速器。Fused-MBConv与MBConv的部分结合效果比较好。(如下图所示,1-3层用Fused-MBConv而其他层用MBConv效果最好)
两者的结构图:
同等地扩大每个阶段是次优的。EfficientNetV2将使用非统一的缩放策略,逐步添加更多的层到后面的阶段。并稍微修改了缩放规则,将图像的最大尺寸限制为较小的值。
EfficientNetV2的贡献:
EfficientNetV2的主要工作:
这里采用的是trainning-aware NAS framework,搜索工作主要还是基于之前的Mnasnet以及EfficientNet. 但是这次的优化目标联合了accuracy、parameter efficiency以及trainning efficiency三个维度。这里是以EfficientNet作为backbone,设计空间包含:
另外,作者通过以下方法来减小搜索空间的范围:
借助强化学习的思想,接着在搜索空间中随机采样了1000个模型,并针对每个模型训练10个epochs(使用较小的图像尺度)。搜索奖励结合了模型准确率A,标准训练一个step所需时间S以及模型参数大小P,奖励函数可写成: A ⋅ S w ⋅ P v A·S^{w}·P^{v} A⋅Sw⋅Pv,其中,w = − 0.07与v = − 0.05 (经验所得)
与EfficientNetV1类似,但是有几点不同:(注意是EfficientNetV2-S的结构)
通过上表可以看到EfficientNetV2-S分为Stage0到Stage7(EfficientNetV1中是Stage1到Stage9)。Operator表示在当前Stage中使用的模块:
使用复合缩放来扩展EfficientNetV2-S以获得EfficientNetV2-M/L并进行了一些额外的优化:
对于同一个网络,较小的图像尺寸也会导致较小的网络容量,因此需要较弱的正则化;反之,图像尺寸越大,计算量越大,容量越大,因此更容易出现过拟合。
当图像大小很小时,它在弱增强时具有最好的准确性;但对于更大的图像,增强效果更好。这种洞察力促使我们在训练过程中随着图像大小自适应地调整正则化,从而产生了我们改进的渐进学习方法。
渐进学习的训练过程:
在早期的训练时代,我们用较小的图像和较弱的正则化来训练网络,这样网络可以轻松快速地学习简单的表示。然后,我们逐渐增加图像的大小,但也使学习更加困难,增加更强的正则化。这里所说的regularization包括dropout rate,RandAugment magnitude以及mixup ratio(包括了数据增强)。如图所示:
作者将渐进式学习策略抽象成了一个公式来设置不同训练阶段使用的训练尺寸以及正则化强度。假设整个训练过程有N步,目标训练尺寸(最终训练尺度)是
S
e
S_{e}
Se,正则化列表(最终正则强度)
ϕ
e
=
{
ϕ
e
k
}
\phi_{e} = \{ \phi_{e}^{k} \}
ϕe={ϕek}其中k代表k种正则方法(为了简单起见,作者这里用了3种:有Dropout、RandAugment以及Mixup)。初始化训练尺寸
S
0
S_{0}
S0,初始化正则化强度为
ϕ
0
=
{
ϕ
0
k
}
\phi_{0} = \{\phi_{0}^{k}\}
ϕ0={ϕ0k}。接着将整个训练过程划分成M个阶段,对于第i个阶段(1 ≤ i ≤ M)模型的训练尺寸为
S
i
S_{i}
Si,正则化强度为
ϕ
i
=
{
ϕ
i
k
}
\phi_{i} = \{\phi_{i}^{k}\}
ϕi={ϕik}。对于不同阶段直接使用线性插值的方法递增。具体流程如下:
下表给出了EfficientNetV2(S,M,L)三个模型的渐进学习策略参数:
对于渐进式学习,我们将训练过程分为四个阶段,每个阶段约87个epoch:早期阶段使用较小的图像尺寸,弱正则化,而后期阶段使用较大的图像尺寸,强正则化,如算法1所述。表6显示了图像大小和正则化的最小值(第一阶段)和最大值(最后阶段)。为简单起见,所有模型都使用相同的最小值大小和正则化,但它们采用不同的最大值,因为更大的模型通常需要更多的正则化来对抗过拟合。其中用于训练的最大图像大小大约比推理小20%,但我们在训练后不会对任何图层进行微调。
ImageNet21k (Russakovsky et al., 2015)包含约13M训练图像,21,841个类。原始的ImageNet21k没有train/eval分割,所以作者保留随机抽取的100,000张图像作为验证集,其余的作为训练集。在很大程度上重复使用了与ImageNet ILSVRC2012相同的训练设置,但有一些变化:
表7显示了性能比较,其中标记为21k的模型在ImageNet21k上进行预训练,并在ImageNet ILSVRC2012上进行微调。与最近的ViT-L/16(21k)相比,EfficientNetV2L(21k)将top1准确率提高了1.5% (85.3% vs. 86.8%),使用的参数减少了2.5倍,FLOPs减少了3.6倍,同时在训练和推理方面提高了6 - 7倍。
EfficientNetV2的参数效率略好一些,但是用于推理的运行速度要快3倍
参考资料:
https://blog.csdn.net/qq_37541097/article/details/116933569
https://arxiv.org/abs/2104.00298
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。