EfficientNetV2: Smaller Models and Faster Training

paper: https://arxiv.org/abs/2104.00298

code(官方TF代码即将开源):

https://github.com/google/automl/efficientnetv2

code(大神PyTorch复现代码,刚刚已开源):

https://github.com/d-li14/efficientnetv2.pytorch

本文是谷歌的MingxingTan与Quov V.Le对EfficientNet的一次升级,旨在保持参数量高效利用的同时尽可能提升训练速度。在EfficientNet的基础上,引入了Fused-MBConv到搜索空间中;同时为渐进式学习引入了自适应正则强度调整机制。两种改进的组合得到了本文的EfficientNetV2,它在多个基准数据集上取得了SOTA性能,且训练速度更快。比如EfficientNetV2取得了87.3%的top1精度且训练速度快5-11倍。

Abstract

本文提出一种训练速度更快、参数量更少的卷积神经网络EfficientNetV2。我们采用了训练感知NAS与缩放技术对训练速度与参数量进行联合优化,NAS的搜索空间采用了新的op(比如Fused-MBConv)进行扩充。实验表明:相比其他SOTA方案,所提EfficientNetV2收敛速度更快,模型更小(6.8x)。

在训练过程中,我们可以通过逐步提升图像大小得到加速,但通常会造成性能掉点。为补偿该性能损失,我们提出了一种改进版的渐进学习方式,它自适应的根据图像大小调整正则化因子,比如dropout、数据增广。

受益于渐进学习方式,所提EfficientNetV2在CIFAR/Cars/Flowers数据集上显著优于其他模型;通过在ImageNet21K数据集上预训练,所提模型在ImageNet上达到了87.3%的top1精度,以2.0%精度优于ViT,且训练速度更快(5x-11x)。

上图给出了所提方法与其他SOTA方案在训练速度、参数量以及精度方面的对比。本文的主要贡献包含以下几点:

  • 提出一类更小、更快的卷积神经网络EfficientNetV2。受益于训练感知NAS与缩放,EfficientNetV2在训练速度与参数量方面显著优于其他方案;

  • 提出一种改进版渐进学习策略,它可以自适应的随图像大小而调整正则化因子。它可以在加速训练的同时提升精度;

  • 所提方案在ImageNet、CIFAR、Cars、Flowers等数据集上取得了11x更快的训练速度,6.8x更少的参数量。

Method

在正式介绍EfficientNetV2之前,我们先简单看一下EfficientNet;然后引出训练感知NAS与缩放,以及所提EfficientNetV2.

Review of EfficientNet

EfficientNet是2019年的一篇文章,它针对FLOPs与参数量采用NAS搜索得到EfficientNet-B0,然后通过复合尺度缩放得到了更大版本的模型,比如EfficientNetB1-B7。

上表给出了EfficientNet与其他方法在精度、参数量以及Flops方面的对比。本文旨在提升模型的训练速度同时保持参数的高效性。

Understanding Training Efficiency

我们对EfficientNetV1的模块进行了研究并得到了集中简单的训练加速技术。

  • Training with very large image sizes is slow。已有研究表明:EfficientNet的大图像尺寸会导致显著的内存占用。由于GPU/TPU的总内存是固定的,我们不得不采用更小的batch训练这些模型,这无疑会降低训练速度。一种简单的改进方式是采用FixRes,即采用更小的图像尺寸进行训练。如下表所示:采用更小的图像块会导致更小的计算量、更大的batch,可以加速训练(2.2x);与此同时,更小的图像块训练还会导致稍高的精度。在后续章节中,我们会提出一种更先进的训练方法:通过渐进式调整图像尺寸和正则化因子达到训练加速的目的

  • Depthwise convolutios are slow in early layers。EfficientNet的核心模块采用了depthwise卷积,它具有更少的参数量和计算量(但往往无法充分利用现有加速器)。近来,提出的Fused-MBConv可以更充分的利用手机/服务端的加速器。它采用常规卷积替换了MBConv中的深度卷积与 卷积,见下图。

为系统的比较这两个模块,我们基于EfficientNet-B4,采用Fused-MBConv替换原始的MBConv,性能对比见下表。可以看到:(1) 在stage1-3阶段替换时,Fused-MBConv可以加速训练并带来少量的参数量与FLOPs提升;(2) 如果stage1-7全部替换,它会带来大量的参数量与FLOPs提升且降低训练速度。也就是说:MBConv与Fused-MBConv的正确组合并不容易直接确定,因此我们采用NAS搜索最佳组合

  • Equally scaling up every stage is sub-optimal。EfficientNet采用复合测试对所有stage均衡缩放。比如当depth系数为2时,网络的所有阶段的层数加倍。然而,不同阶段在训练速度与参数量方面并非均等贡献。我们将采用非均匀缩放策略对后面的stage添加更多的层。此外,针对EfficientNet的采用大尺寸图像导致大计算量、训练速度降低问题,我们对缩放规则进行了轻微调整并约束最大图像尺寸到稍小值

Training-Aware NAS and Scaling

至此,我们得到了多种加速训练的设计方案。为更好的组合这些方案,我们提出了一种训练感知NAS。

  • NAS Search。我们这里采用的NAS框架主要是基于EfficientNet与MnasNet,但对参数量与训练高效性同时进行优化。具体来说,我们采用EfficientNet作为骨干网络,搜索空间为类似EfficientNet的基于stage的空间,它包含MBConv、Fused-MBConv等卷积操作,层数、核尺寸、扩展比例;另一方面,我们通过这两种策略降低搜索空间:(1)移除不避免的搜索选项,比如pooling算子;(2) 复用EfficientNet中的通道数信息。由于搜索空间更小,我们可以采用简单的随机搜索进行更大网络的搜索(比如大小类似EfficientNet-B4)。具体来说,我们采样1000个模型,每个模型训练10个epoch。搜索奖励包含模型精度A、归一化训练时长S、参数量P,并通过加权方式组合 。

  • EfficientNetV2 Architecture。上表给出了所搜索到的EfficientNetV2-S的架构信息。相比EfficientNet,它有这样几个不同:

    • EfficientNetV2大量利用了MBConv与Fused-MBConv(主要在网络早期);

    • EfficientNetV2使用了更小的扩展比例,导致了更少的内存占用;

    • EfficientNetV2倾向于选择更小的卷积核,用更多的层补偿感受野的减小;

    • EfficientNetV2移除了EfficientNet中最后的stride-1 stage。

  • EfficientNet Scaling。我们在EfficientNetV2-S的基础上采用类似EfficientNet的复合缩放(并添加几个额外的优化)得到EfficientNetV2-M/L。额外的优化描述如下:

    • 限制最大推理图像尺寸为480;

    • 在网络的后期添加更多的层提升模型容量且不引入过多耗时,可见上表中的stage5与stage6.

  • Training Speed Comparsion。上表给出了不同网络的训练速度对比(所有摩西那个采用相同的图像大小)。我们发现:(1) 当训练合理时,EfficientNet仍可以得到非常好的性能均衡;(2) 相比其他方法,EfficientNetV2训练速度更快

Progressive Learning

正如前面所提到:图像尺寸对于训练速度影响很大。除了FixRes外,还有其他方法在训练过程中动态改变图像尺寸,但通常造成了精度下降。

我们认为:上述精度下降主要源自不平衡的正则化因子,也就是说:当采用不同的图像尺寸训练时,我们应当同时调整正则化强度。事实上,大的模型需要更强的正则化以避免过拟合,比如EfficientNet-B7采用了更大的dropout核更强的数据增广。在这里,我们认为:对于相同模型,

  • 小的图像尺寸会导致更小的模型容量,因此需要弱化版正则因子;

  • 大的图像尺寸导致更多的计算量和模型容量,需要更强的正则因子以避免过拟合。

为验证上述假设,我们采用不同图像尺寸、数据增强训练了一个模型,结果见上表。这里得出的实验结论与上述假设基本一致。这就促使我们:在训练过程中,伴随图像尺寸改变自适应调整正则化因子,此即为我们所提出的改进版渐进式学习方案。

上图给出了本文所提学习方案示意图,在训练早期,我们采用较小尺寸图像+弱化正则训练,此时模型可以快速学习简单表达能力;然后,我们逐渐提升图像尺寸并添加更强的正则因子。下图给出了该渐进式学习方案的步骤说明。

我们这里所提出的渐进式学习与现有正则因子具有兼容性,为简单起见,我们主要研究了以下三种正则:Dropout、RandAugment以及Mixup。

Experiments

在训练过程中,我们将整个训练划分为四个阶段,每个阶段约87epoch:在训练的早期采用小图像块+弱化正则;在训练的后期采用更大的图像块核增强的正则,上表给出了不同模型的最大、最小图像尺寸以及正则强度。

上表给出了所提方法与其他方案在精度、参数量、FLOPs以及耗时方面的对比。从中可以看到:

  • 相比其他方法,所提EfficientNetV2训练速度更快、精度更高、参数量更少

  • 相比EfficientNet-B7,EfficientNetV2精度相当,但训练速度快11倍。

  • 相比RegNet和ResNeSt,EfficientNetV2精度更高、推理速度更快。

  • 相比ViT,EfficientNetV2以85.7%的精度超越了ViT-L/16(21k)。

  • 在推理速度方面,相比EfficientNet,EfficientNetV2精度更高、速度更快;相比ResNeSt,EfficientNetV2-M精度高0.6%,速度快2.8倍。

  • 缩放数据尺寸要比简单的缩放模型大小更有效:当top1精度超过85%后,很难通过加单的提升模型大小提升精度;然而,ImageNet21K预训练可以显著提升模型精度。

上表对所提方法的迁移学习能力进行了对比。可以看到:相比其他卷积网络与Transformer方案,本文所提方法的泛化性能更加

最后,我们还自适应正则的影响性进行分析,结果见上图。可以看到:(1) 自适应正则可以提升模型精度达0.7%;(2) 小尺度图像上添加弱化正则可以加速模型收敛。

全文到此结束,更多消融实验与分析建议各位同学查看原文。

EfficientNetV2震撼发布!87.3%准确率!模型更小,训练更快!谷歌大脑新作相关推荐

  1. Google发布新API,支持训练更小、更快的AI模型

    雷锋网消息,Google今天发布了 Quantification Aware Training(QAT)API,使开发人员可以利用量化的优势来训练和部署模型AI模型.通过这个API,可以将输入值从大集 ...

  2. 2021-06-23对深度学习模型进行更小,更快,更好的综述——微软研究院

    高效的深度学习:对深度学习模型进行更小,更快,更好的调查综述 摘要 一.引言 高效的深度学习 二.五个主要方面提升模型效率 2.1 压缩技术 2.2 学习技术 2.2 自动化 2.4 高效的架构 2. ...

  3. 时隔两年,EfficientNet v2来了!更快,更小,更强!

    导读 谷歌在EfficientNet的基础上,引入了Fused-MBConv到搜索空间中:同时为渐进式学习引入了自适应正则强度调整机制,组合得到了EfficientNetV2,它在多个基准数据集上取得 ...

  4. MobileViT: 一种更小,更快,高精度的轻量级Transformer端侧网络架构(附代码实现)...

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 [导读]之前详细介绍了轻量级网络架构的开源项目,详情请看深度学习中的轻量级网络架构总结与代码实现 ...

  5. EfficientNetV2:更小,更快,更好的EfficientNet

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | Mostafa Ibrahim 编译 | ronghuai ...

  6. EfficientNetV2:训练速度快了5~10x,更小,更快,精度更高的EfficientNet

    本文转自AI公园. 作者:Mostafa Ibrahim 编译:ronghuaiyang 导读 相比于之前的SOTA,训练速度快了5~10x,而且性能更高. 论文链接:https://arxiv.or ...

  7. 最新 | 更小、更快、更强!EfficientNetV2:Smaller-Faster-Better

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:AI公园 | ronghuaiyang编译 https://towardsdatascience.com/go ...

  8. 深度学习如何又好又快? Google发布最新《高效深度学习: 更小、更快、更好》综述...

    深度学习模型在实际生产系统中面临一系列问题,比如模型大小.训练时间等,本文这对深度学习的效率问题做了全面的综述,值得关注! 深度学习已经在计算机视觉.自然语言理解.语音识别.信息检索等领域掀起了一场革 ...

  9. 高效的深度学习:将深度学习模型变得更小、更快、更好的综述

    ©PaperWeekly 原创 · 作者 | 王馨月 学校 | 四川大学本科生 研究方向 | 自然语言处理 摘要 深度学习彻底改变了计算机视觉.自然语言理解.语音识别.信息检索等领域.然而,随着深度学 ...

最新文章

  1. Xamarin XAML语言教程控件模板的模板绑定
  2. python输出csv文件-更高效的Python CSV文件导出
  3. [云炬创业基础笔记]第五章创业机会评估测试13
  4. ACL2020 | 线上搜索结果大幅提升!亚马逊提出对抗式query-doc相关性模型
  5. java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常
  6. 前后端分离的项目,如何解决登录问题
  7. Flutter基础—定位对齐之中心定位
  8. 李彦宏进军生命科学,成立新公司“百图生科”,致力于实现人类百岁健康梦想
  9. 二叉树学习之二叉树的构建及操作
  10. 区块链入门视频?国外视频帮你快速入门了解区块链!!!
  11. 玩转树莓派——游戏主机模拟器
  12. VMware Ubuntu安装详细过程(非常靠谱)
  13. 2021年茶艺师(中级)考试总结及茶艺师(中级)证考试
  14. java学习总结(16.06.07)类的静态成员和非静态成员
  15. 从xgboost, lightgbm 到catboost
  16. 萌新带你开车上p站(二)
  17. 全球及中国常规救生艇行业研究及十四五规划分析报告
  18. 【新知实验室】快速实现视频应用
  19. 售前工程师与售后工程师
  20. python基础知识下载_python基础知识(实用)

热门文章

  1. 虚拟键码和扫描码的区别
  2. 构建Hadoop伪分布式环境
  3. VC维的来龙去脉(转)
  4. linux系统调用挂钩方法总结
  5. 利用 libvirt 和 Linux 审计子系统跟踪 KVM 客户机
  6. amazon mws api 获取所有产品_Amazon’s Choice是什么?Amazon's Choice标签全解读
  7. 计算机病毒不可能侵入rom,2008年职称计算机考试计算机基础试题7
  8. android adb打开gps,adb 命令行模拟GPS位置信息
  9. linux查看ssh端口8222,下载服务器SSH被用户恶意猜密码了
  10. android dialog横屏,解决dialog在横竖屏切换时消失