EfficientNetV2简述

引言

  随着模型和训练数据的规模越来越大,训练效率对深度学习非常重要,这篇文章使用训练感知神经结构搜索(NAS)和缩放相结合,以提高训练速度和参数效率。
  本文首先系统地研究EfficientNets(原文这里是这样写的,但是我认为是EfficientNet)的训练瓶颈。在EfficientNets上的研究表明:
  1.使用非常大的图像尺寸进行训练是缓慢的;
  2.深度卷积在早期层段是缓慢的;
  3.同等地扩大每个阶段是次优的。
  很多以前的论文里,通常对所有图像大小保持相同的正则化,导致精度下降。但本文认为:对于不同大小的图像保持相同的正则化是不理想的,对于相同的网络,小的图像大小导致小的网络容量,因此需要弱的正则化;反之亦然,大图像尺寸需要更强的正则化来对抗过拟合,基于这一认识,本文提出了一种改进的渐进学习方法:在早期的训练时期,用小图像size和弱正则化(如dropout和data augmentation)训练网络,然后逐渐增大图像大小,加入更强的正则化。基于逐步调整大小(《Training imagenet in 3 hours for 25 minutes》),但通过动态调整正则化,本文的方法可以在不导致精度下降的情况下加快训练速度。
  本文方法与其他相关工作在ImageNet ILSVRC2012上的比较结果如图1所示:
在这里插入图片描述

相关工作

  Training and Parameter efficiency:许多工作,如DenseNet和EfficientNet关注参数效率,以更少的参数达到更好的精度。最近的工作旨在提高训练或推理速度,而不是参数效率.例如,RegNet、ResNeS、trenet和EfficientNet-X关注于GPU和TPU推理速度; NFNets和BoTNets关注于提高训练速度。然而,他们的训练速度往往伴随着更多参数的代价。本文旨在显著提高训练和参数效率比现有技术。
  Progressive Training: 先前的研究针对GAN、迁移学习、对抗学习和语言模型提出了不同种类的渐进式训练,动态改变训练设置或网络以及渐进调整主要与本文方法有关,目的是提高训练速度。然而,它通常伴随着准确性下降的代价,本文中的主要区别是引入自适应调整正则化,从而我们可以提高训练速度和准确性。
  Neural Architecture Search (NAS):通过自动化网络设计过程,NAS已被用于优化网络架构,用于图像分类,目标检测,图像分割,超参数以及其他领域,以往的NAS工作主要集中在提高FLOPs效率或推理效率,不同于以往的工作,本文使用NAS优化训练和参数效率。

方法

  首先分析EfficientNetv1的瓶颈,指出三点:
  1.Training with very large image sizes is slow:EfficientNet的大图像尺寸导致了大量的内存使用。由于GPU/TPU上的总内存是固定的,因此必须用更小的批量来训练这些模型,这大大减慢了训练的速度。
  2.Depthwise convolutions are slow in early layers:depthwise convolutions比常规卷积有更少的参数和FLOPs,但它们往往不能充分利用现代加速器。在1-3阶段早期应用fused- mbconv可以提高训练速度,在参数和FLOPs上的开销较小,但如果将所有块替换为fused- mbconv(阶段1-7),则会显著增加参数和FLOPs,同时也会减慢训练速度。找到MBConv和fused -MBConv这两个构建块的正确组合并非易事,这促使本文利用神经结构搜索来自动搜索最佳组合。MBConv and Fused-MBConv的结构如图2所示:
在这里插入图片描述
  3. Equally scaling up every stage is sub-optimal:EfficientNet使用一个简单的规则,均匀地扩大所有阶段。例如,当深度系数为2时,网络中所有阶段的层数都会增加一倍,然而,这些阶段对训练速度和参数效率的贡献并不相同。
  本文提出了training-aware NAS,其框架主要基于以前的NAS工作(《Mnasnet: Platform-aware neural architecture search for mobile》),但旨在联合优化现代加速器的精度、参数效率和训练效率
  EfficientNetV2-S的结构如表4所示:
在这里插入图片描述
  与EfficientNet骨干相比,EfficientNetV2主要有以下不同:
  (1)EfficientNetV2广泛使用MBConv和MBConv,在早期层中新增了fusion - MBConv
  (2)EfficientNetV2选择MBConv的较小的扩展比,因为较小的扩展比往往具有较小的内存访问开销。
  (3)EfficientNetV2选择较小的3x3内核大小,但是它增加了更多的层。
  (4)EfficientNetV2完全删除了原来EfficientNet中的最后一个stride-1阶段
  图3比较了EfficientNetV2的训练步长,其中所有的模型都是用固定的图像大小训练的,没有渐进学习,对于EfficientNet,这里展示了两条曲线:一条用原始的推理大小训练,另一条用约30%的图像大小训练
在这里插入图片描述
  图4展示了本文改进的渐进学习的训练过程
在这里插入图片描述
  它从较小的图像大小和弱正则化(epoch=1)开始,然后随着图像大小和强正则化逐渐增加学习难度:dropout rate较大,RandAugment幅度较大,mixup ratio(如epoch=300)较大。
算法1总结了过程:
在这里插入图片描述
  在每一阶段的开始,网络将继承前一阶段的所有权值。不像变压器的权值(如位置嵌入)可能依赖于输入长度,卷积网络权值与图像大小无关,因此很容易继承。

实验

  在ImageNet上的实验结果如表7和图5所示:
在这里插入图片描述
在这里插入图片描述
  表8比较了迁移学习上的表现:
在这里插入图片描述
  对自适应正则的影响如表13和图6所示:
在这里插入图片描述

总结

  本文是EfficientNet原作者对其进行的一次升级,旨在保持参数量高效利用的同时尽可能提升训练速度。作者系统性的研究了EfficientNet的训练过程,并总结出了三个问题:
  1.训练图像的尺寸很大时,训练速度非常慢;
  2.在网络浅层中使用Depthwise convolutions速度会很慢;
  3.同等的放大每个阶段是次优的。
  在EfficientNet的基础上,引入了Fused-MBConv到搜索空间中;同时为渐进式学习引入了自适应正则强度调整机制,两种改进的组合得到了EfficientNetV2。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值