0


EfficientNetV2 - 通过NAS、Scaling和Fused-MBConv获得更小的模型和更快的训练

EfficientNetV2是由 Google Research,Brain Team发布在2021 ICML的一篇论文,它结合使用NAS和缩放,优化训练速度和参数效率。并且模型中使用新操作(如 Fused-MBConv)在搜索空间中进行搜索。EfficientNetV2 模型比EfficientNetV1的训练速度快得多,同时体积小 6.8 倍。

论文大纲如下:

  • 理解和提高 EfficientNetV1 的训练效率
  • NAS 和缩放
  • Progressive Learning
  • SOTA 比较
  • 消融研究

理解和提高 EfficientNetV1 的训练效率

1、使用非常大的图像尺寸进行训练很慢

EfficientNet 的大图像尺寸会导致大量内存使用。由于 GPU/TPU 上的总内存是固定的,因此使用较小的批大小,这会大大减慢训练速度。

FixRes (论文FixRes: Fixing the Train-Test Resolution Discrepancy)可用于通过使用更小的图像尺寸进行训练而不是推理。较小的图像尺寸会导致较少的计算量并支持较大的批量大小,从而将训练速度提高多达 2.2 倍,并且准确度还会有所提高。

2、Depth-wise卷积在模型的早期层执行缓慢但在后期层是有效的

Fused-MBConv 在谷歌 AI 博客中提出, Fused-MBConv 将 MBConv 中的 depthwise conv3×3 和扩展 conv1×1 替换为单个常规 conv3×3。

MBConv 和 Fused-MBConv 的结构

Fused-MBConv 逐渐将 EfficientNet-B4 中的原始 MBConv 替换为 Fused-MBConv。

在早期阶段 1-3 中应用时,Fused-MBConv 可以提高训练速度,而参数和 FLOP 的开销很小。

但是如果所有块都使用 Fused-MBConv(阶段 1-7),那么它会显着增加参数和 FLOP,同时也会减慢训练速度。

3、在每个阶段同样扩大规模并不是最优的

EfficientNet 使用简单的复合缩放规则平等地扩展所有阶段。例如,当深度系数为 2 时,网络中的所有阶段都会使层数翻倍。但是实际上这些阶段对训练速度和参数效率的贡献并不相同。在EfficientNetV2中,使用非均匀缩放策略逐渐向模型的后期添加更多层。EfficientNets 积极扩大图像大小,导致大量内存消耗和缓慢训练。为了解决这个问题,EfficientNetV2对缩放规则稍作修改,最大图像尺寸被限制为较小的值。

NAS 和缩放

1、NAS 搜索

神经架构搜索 (NAS) 搜索空间类似于 PNASNet。通过NAS进行卷积运算类型{MBConv, Fused-MBConv}的设计选择,包括层数,内核大小{3×3, 5×5},扩展比{1, 4, 6}等等。另一方面,搜索空间大小通过以下方式进行优化:

  • 删除不必要的搜索选项,例如 pooling skip 操作,因为它们从未在原始 EfficientNets 中使用;
  • 重用与在 EfficientNets 中已经搜索过的通道大小。

在减少图像尺寸的情况下,对1000多个模型,进行大约10个轮次的采样和训练,通过模型精度A、归一化训练步长S和参数大小P进行搜索,并使用简单加权乘积ax (S^w)×(P^v),确定了其中w=-0.07和v=-0.05。

EfficientNetV2 与 EfficientNetV1有几个主要区别:

  • EfficientNetV2 在早期层中广泛使用了 MBConv 和新添加的 fused-MBConv。
  • EfficientNetV2 更喜欢 MBConv 的较小扩展比,因为较小的扩展比往往具有较少的内存访问开销。
  • EfficientNetV2 更喜欢较小的核大小( 3×3),但它增加了更多层来补偿较小内核大小导致的感受野减少。
  • EfficientNetV2 完全移除了原始 EfficientNet 中的最后一个 stride-1 阶段,这可能是由于其较大的参数大小和内存访问开销。

2、缩放

EfficientNetV2-S 使用与 EfficientNet 类似的复合缩放比例放大以获得 EfficientNetV2-M/L,并进行了一些额外的优化:

最大推理图像大小限制为 480,因为非常大的图像通常会导致昂贵的内存和训练速度开销;

作为一种启发式方法,更多的层会逐渐添加到后面的阶段(例如,阶段 5 和 6),以便在不增加太多运行时开销的情况下增加网络容量。

通过训NAS 和缩放,所提出的 EfficientNetV2 模型的训练速度比其他的模型快得多。

Progressive Learning

改进学习中的训练过程

EfficientNetV2 的训练设置

ImageNet top-1 准确率

当图像尺寸较小增广较弱时模型的表现最好;但是对于更大的图像,它在更强的增广的情况下表现更好。从小图像尺寸和弱正则化(epoch = 1)开始,然后随着更大的图像尺寸和更强的正则化逐渐增加学习难度:更大的 Dropout 率、RandAugment 幅度和混合比(例如,epoch = 300)。

下面显示了流程的伪代码:

SOTA比较

1、ImageNet

模型大小、FLOP 和推理延迟——延迟是在 V100 GPU 上以 16 的批量大小测量的

标有 21k 的模型在 ImageNet21k 上用 13M 图像进行预训练,其他模型直接在 ImageNet ILSVRC2012 上用 128 万图像从头开始训练。

  • EfficientNetV2 模型比以前在 ImageNet 上的 ConvNets 和 Transformer 模型速度明显更快,并实现了更好的精度和参数效率。
  • EfficientNetV2-M 达到了与 EfficientNet-B7 相当的精度,同时使用相同的计算资源进行训练的速度提高了 11 倍。
  • EfficientNetV2 模型在准确性和推理速度方面也显着优于所有最近的 RegNet 和 ResNeSt 顶部的第一个图显示了结果。

通过在 ImageNet21k 上进行预训练( 32 个 TPU,两天),EfficientNetV2-L(21k) 将 top-1 准确率提高了 1.5%(85.3% 对 86.8%),在运行时使用的参数减少了 2.5 倍,FLOP 减少了 3.6 倍 训练和推理速度提高 6 倍 — 7 倍。

2、迁移学习

论文中使用了如下的数据集进行迁移学习测试:

每个模型都通过很少的步骤进行微调。EfficientNetV2 模型在所有这些数据集上都优于之前的 ConvNets 和 Vision Transformers。

在 CIFAR-100 上,EfficientNetV2-L 的准确度比之前的 GPipe/EfficientNets 高 0.6%,比之前的 ViT/DeiT 模型高 1.5%。这些结果表明,EfficientNetV2 的泛化能力也远远超出了 ImageNet。

消融研究

1、相同训练的表现

使用相同学习设置的性能比较,EfficientNetV2 模型的性能仍然大大优于 EfficientNets:EfficientNetV2-M 将参数减少了 17%,FLOPs 减少了 37%,同时在训练中的运行速度比 EfficientNet-B7 快 4.1 倍,推理速度快 3.1 倍。

2、模型缩放

通过使用 EfficientNet 复合缩放缩小 EfficientNetV2-S 来比较较小的模型。所有模型都是在没有Progressive Learning的情况下进行训练的。EfficientNetV2 (V2) 模型通常更快,同时保持相当的参数效率。

3、不同网络的 Progressive Learning

Progressive Learning通常会减少训练时间,同时提高所有不同网络的准确性。

4、自适应正则化(Adaptive Regularization)的重要性

自适应正则化

随机调整大小的原因是 TPU 需要为每个新大小重新编译动态运行图,所以这里每 8 个 epoch 随机采样一次图像大小,而不是每批。

自适应正则化在早期训练时期对小图像使用很小的正则化,使模型能够更快地收敛并获得更好的最终精度。

引用

[2021 ICML] [EfficientNetV2]EfficientNetV2: Smaller Models and Faster Training

https://arxiv.org/abs/2104.00298

“EfficientNetV2 - 通过NAS、Scaling和Fused-MBConv获得更小的模型和更快的训练”的评论:

还没有评论