一.论文概述
- 在这篇论文中,作者介绍了EfficientNetV2模型,这是一个新的卷积神经网络家族,与之前的模型相比,它具有更快的训练速度和更好的参数效率。
- 为了开发这一系列模型,作者结合使用了训练感知神经架构搜索算法和扩展策略,共同优化训练速度和参数效。
- 在训练的过程中,作者提出了一种改进版本的渐进学习方式,这种方式自适应的根据图像大小调整正则化因子,从而避免了性能丢失(通常可以通过逐步提升图像的大小得到加速,但是这样会造成性能丢失)
- EfficientNetV2在ImageNet ILSVRC2012上达到了87.3%的top-1准确率。(EfficientNet-b7在ImageNet上实现了84.3%的top-1准确率)
二.论文提出的背景
- 作者鉴于EfficientNets的参数效率,首先系统地研究了EfficientNets中的训练瓶颈。通过研究显示,在EfficientNets中:
1.用非常大的图像训练会很慢。
2.在网络的浅层中使用深度卷积速度会很慢。
3.每个阶段都按相同比例放大不是最优的
基于上述的观察,作者设计了一个富含附加操作的搜索空间,并应用训练感知NAS算法和扩展策略来联合优化模型的精度、训练速度和参数的大小。
- 在训练过程中,可以通过在训练期间逐渐增加图像大小来进一步加快速度。之前的许多研究中,例如渐进式地调整大小、FixRes和Mix&Match等,在训练中都使用了较小的图像尺寸,并且通常对所有图像尺寸保持相同的正则化,从而导致精度下降。
- 但是作者认为对于不同的图像大小保持相同的正则化并不理想:对于同一网络,较小的图像大小会导致较小的网络容量,因此需要较弱的正则化;反之,大的图像需要更强的正则化以对抗过拟合。
基于上面的见解,作者提出了一种改进的渐进学习方法:在训练早期,用小的图像尺寸和弱正则化训练网络,然后逐渐增加图像尺寸并添加更强的正则化。基于渐进的方式调整图像的大小,但通过动态调整正则化,作者的方法可以加快训练速度的同时不丢失精度。
三.论文中提出的网络模型
3.1回顾EfficientNets
EfficientNet是一系列针对FLOPs和参数效率进行优化的模型。它利用NAS搜索了baseline network(后面简称基线模型):EfficientNet-B0,该基线模型在精度和FLOPs方面具有很好的权衡,然后通过复合扩展策略放大基线模型来获得模型B1-B7。之后的发展声称在训练和推理速度方面取得了巨大的进步,但是这些之后提出的模型在参数和FLOPs方面通常比EfficientNets差,见下表。本论文中,作者的目的是在保持参数效率的同时提高训练速度。
3.2提升训练效率
在上面已经提过了,EfficientNets的训练瓶颈共有三点。
- 针对第一点(用非常大的图像训练会很慢):EfficientNets的大图像尺寸会导致大量内存使用。由于GPU上的总内存是固定的,所以必须使用小的批量大小训练这些模型(我在之前跑EfficientNet时,也是调小了批量才训练得动),因此大大减慢了训练速度。一种简单的改进是通过应用FixRes策略,使用比推理更小的图像尺寸进行训练。如下表所示,较小的图像尺寸导致较小的计算和内存需要,因此支持更大的批量,从而提升训练速度。但是,作者使用的是更高级的训练方法,通过在训练期间逐步调整图像大小和正则化(这个之后会详细说明)。
- 针对第二点(在网络的浅层中使用深度卷积速度会很慢):EfficientNets的另一个训练瓶颈来自于广泛使用的深度卷积。深度卷积比常规卷积具有更少的参数和FLOPs,但是它通常不能充分利用现代加速器。而最近一种新的卷积结构被提出,该结构则充分利用了加速器,名为Fused-MBConv。如下图所示。它用单个标准3*3卷积替换MBConv中的深度卷积和逐点卷积。
Fused-MBConv结构的性能展示:为了更好的比较Fused-MBConv结构和MBConv结构,作者采用了将Fused-MBConv结构逐步替换MBConv结构。见下表,在早期阶段(EfficientNet网络共分为9个阶段)1-3中应用时,Fused-MBConv结构可以在参数和FLOPs的开销很小的情况下提高训练速度,但是如果用Fused-MBConv结构替换所有阶段(尤其是中后期的阶段时),它会显著增加参数和FLOPs,同时使训练速度变慢(在下表中则表现在训练图片的数量变少)。因此,利用神经结构搜索算法来自动搜索Fused-MBConv结构和MBConv结构的正确组合非常重要。
- 针对第三点(每个阶段都按相同比例放大不是最优的):EfficientNet使用简单的复合扩展策略同等的扩展所有阶段。然而,这种简单的同等扩展所有阶段并没有考虑到这些阶段对训练速度和参数效率的贡献并不相同。在本论文中,作者使用非均匀扩展策略来逐步扩展在后期阶段的网络层结构。另外,EfficientNet在扩展图像大小方面表现非常积极,这导致了大量内存消耗和缓慢的训练,为了解决这一问题,作者修改了扩展策略并将扩展的最大图像尺寸限制为一个较小值。
EfficientNetV2的网络结构
- 作者首先通过NAS搜索得到模型EfficientNetV2-S的架构。与EfficientNet的主干相比,EfficientNetV2主要有以下几个区别:
1.EfficientNetV2在早期阶段使用上面新加的Fused-MBConv结构,在后期阶段使用MBConv结构。
2.EfficientNetV2在MBConv结构中更喜欢使用较小的扩展率,因为较小的扩展率往往具有更小的内存访问开销。
3.EfficientNetV2更喜欢使用较小的3*3尺寸的内核,但EfficientNetV2增加更多层来补偿较小内核导致的感受野的减少。
4.EfficientNetV2完全删除了原始EfficientNet中的最后一个有MBConv结构的阶段,可能因为该阶段较大的参数大小和内存访问开销。
- 作者采用与EfficientNet相似的复合扩展策略来扩展EfficientNetV2-S来获得EfficientNetV2-M/L,并进行了一些额外的优化
1.将最大的推理图像大小限制为480,上面已经讲过非常大的图像通常会导致昂贵的内存和训练速度开销。
2.在网络的后期阶段添加更多的层,以在不增加太多运算时开销的情况下增加网络容量。
四.渐进式学习
4.1采用渐进式学习的动机
- 在之前已经提到过,在训练过程中,可以通过在训练期间逐渐增加图像大小来进一步加快速度。之前的许多工作在训练期间动态改变图像大小,但是它们通常导致准确率的下降。为什么会造成准确率的下降呢?作者假设准确率的下降来自不平衡的正则化:当用不同的图像尺寸训练时,也应该相应地调整正则化强度。准确的说,大型模型通常需要更强的正则化来对抗过度拟合。
- 作者认为,即使使用相同的网络,较小的图像尺寸导致较小的网络容量,因此需要较弱的正则化;反之,更大的图像尺寸会导致更大容量和更多计算,因此更容易过拟合,此时就需要更强的正则化。
- 为了验证猜想,作者做了实验,如下表所示:作者训练了一个模型,当训练的图像尺寸较小时,使用较弱的正则化,精度最好;但是对于更大的图像,它在更强的正则化下表现更好。
基于上面的观察,作者在训练期间自适应地调整正则化和图像大小,从而改进了渐进式学习方法
4.2 具有自适应正则化的渐进式学习
- 渐进式学习的训练过程:在早期训练时期,用较小的图像和弱正则化训练网络,以便网络可以轻松快速地学习简单的表示。然后,逐渐增加图像的大小,但是也增加正则化的强度。如下图为渐进式的训练过程:
- 文中所研究的正则化主要包括如下三种类型:1.Dropout;2.RandAugment;3.Mixup。
- 作者将上面的渐进式学习策略具体化为一个算法用来设置在不同阶段所使用的图像尺寸和正则化强度。形式上,假设整个训练共有
N
N
N个步骤,所使用的图像尺寸为
S
e
S_e
Se,所使用的正则化列表为
Φ
e
=
{
ϕ
e
k
}
\Phi_e=\left\{\phi_e^k\right\}
Φe={ϕek},其中
k
k
k代表第
k
k
k种正则化方法(上面说过,共有三种类型的正则化方法)。将训练分为M个阶段,对于第
i
i
i个阶段,所使用的图像尺寸为
S
i
S_i
Si,所使用的正则化强度为
Φ
i
=
{
ϕ
i
k
}
\Phi_i=\left\{\phi_i^k\right\}
Φi={ϕik}来训练模型。其中,初始阶段,图像大小为
S
0
S_0
S0,正则化强度为
Φ
0
\Phi_0
Φ0;最后阶段M,图像大小为
S
e
S_e
Se,正则化强度为
Φ
e
\Phi_e
Φe。对于不同阶段直接使用线性插值的方法递增。具体算法如下:
- 下表给出了EfficientNetV2-S/M/L三个模型的渐进学习策略参数:
五.实验
本节主要介绍实验的结果,而一些实验中的具体设置,读者们可以参考原论文学习。
5.1 ImageNet ILSVRC2012数据集
- EfficientNet-v2模型比以前的ConvNets和transformer模型在ImageNet上的速度更快,实现了更好的精度和参数效率。特别是,EfficientNet-v2-M达到了与EfficientNet-B7相当的精度,同时使用相同的计算资源以11倍的速度进行训练。EfficientNet-v2模型在准确性和推理速度上也显著优于所有最近的RegNet和ResNeSt。具体见下表。
注释:在上表中,标有21K的模型在ImageNet21K数据集上进行预训练,并在ImageNet ILSVRC2012数据集上进行微调 - 下图进一步可视化了训练速度和参数效率的对比。可以看出EfficientNet-v2模型是最优的。
- 下图可视化了基于表7(在上表中)中模型的大小、FLOPs和推理延迟。可以观察到EfficientNet-v2模型是最优的。
5.2 ImageNet21K数据集
- 结果在表7中已经给出。值得注意的是,这里比较的标有21K的模型。与最近的ViT-L/16(21k)相比,我们的EfficientNet-v2(21k)在TOP-1准确率上提高了1.5% (85.3% vs
86.8%) , 但是使用少2.5倍的参数和3.6倍的FLOPs,而训练和推理速度快6 - 7倍。
5.3 迁移学习数据集
- 作者在四个迁移学习数据集上评估了EfficientNet-v2模型,如下表是各数据集的统计数据。
- 下表比较了迁移学习的性能。总的来说,EfficientNet-v2模型在所有这些数据集上的表现都优于以前的ConvNets和Vision Transformers模型。