本文转自AI公园。

作者:Mostafa Ibrahim

编译:ronghuaiyang

导读

相比于之前的SOTA,训练速度快了5~10x,而且性能更高。

  • 论文链接:https://arxiv.org/pdf/2104.00298.pdf

  • 项目链接:https://github.com/google/automl/efficientnetv2

通过渐进学习,我们的EfficientNetV2在ImageNet和CIFAR/Cars/Flowers数据集上显著优于之前的模型。通过在相同的ImageNet21k上进行预训练,我们的EfficientNetV2在ImageNet ILSVRC2012上实现了87.3%的top1精度,在使用相同的计算资源进行5到11倍的训练时,比最近的ViT的准确率高出2.0%。代码可以在https://github.com/google/automl/efficientnetv2上找到。

EfficientNets已经成为高质量和快速图像分类的重要手段。它们是两年前发布的,非常受欢迎,因为它们的规模让它们的训练速度比其他网络快得多。几天前谷歌发布了EfficientNetV2,在训练速度和准确性方面都有了很大的提高。在本文中,我们将探索这个新的EfficientNet是如何对之前的一个进行改进的。

性能更好的网络(如DenseNets和EfficientNets)的主要基础是用更少的参数实现更好的性能。当你减少参数的数量时,你通常会得到很多好处,例如更小的模型尺寸使它们更容易放到内存中。然而,这通常会降低性能。因此,主要的挑战是在不降低性能的情况下减少参数的数量。

这一挑战目前主要集中在神经网络体系结构搜索(NAS)这一日益成为热点的领域。在最优情况下,我们给某个神经网络一个问题描述,然后它就会给出这个问题的最优网络结构。

我不想在这篇文章中讨论EfficientNets 。但是,我想提醒你EfficientNets的概念,这样我们就可以精确地指出在架构上的主要差异,从而使性能更好。EfficientNets使用NAS来构建一个基线网络(B0),然后他们使用“复合扩展”来增加网络的容量,而不需要大幅增加参数的数量。在这种情况下,最重要的度量指标是FLOPS(每秒浮点运算次数),当然还有参数的数量。

      01      

渐进式训练

EfficientNetV2使用了渐进式学习的概念,这意味着尽管在训练开始时图像大小最初很小,但它们逐渐增大。这个解决方案源于这样一个事实,即EfficientNets的训练速度在大图像尺寸时开始受到影响。

渐进式学习并不是一个新概念,它在以前已经被使用过。问题是,以前使用的时候,相同的正则化效果被用于不同大小的图像。EfficientNetV2的作者认为这降低了网络容量和性能。这就是为什么他们会随着图像大小的增加而动态增加正规化来解决这个问题。

如果你仔细想想,这很有道理。在小图像上过度正则化会导致拟合不足,而在大图像上过度正则化会导致过拟合。

通过改进的渐进学习,我们的EfficientNetV2在ImageNet、CIFAR-10、CIFAR- 100、Cars和Flowers数据集上取得了强大的结果。在ImageNet上,我们实现了85.7%的top-1精度,同时训练速度提高了3 - 9倍,比以前的模型小6.8倍

      02      

在MB Conv层上构建Fused-MB Conv层

EfficientNets使用了一个称为“depth convolution layer”的卷积层,这些层有较少的参数和FLOPS,但它们不能充分利用GPU/CPU。为了解决这一问题,最近发表了一篇题为“MobileDets: Searching for Object Detection Architectures for Mobile accelerator”的论文,该论文通过一个名为“Fuse-MB Conv layer”的新层解决了这一问题。这个新层被使用在这里的EfficientNetV2上。然而,由于其参数较多,不能简单地将所有旧的MB Conv层都替换成Fused-MB Conv层。

这就是为什么他们使用训练感知NAS来动态搜索fused和常规MB Conv层的最佳组合。NAS实验结果表明,在较小的模型中,早期将部分MB Conv层替换为fused层可以获得更好的性能。研究还表明,MB Conv层(沿网络)的扩展比越小越好。最后,它表明更小的内核大小和更多的层是更好的。

      03      

一个更加动态的方法去扩展

我认为这里值得学习的一个主要有价值的想法是他们改进网络的方法。我认为总结这一方法的最好方法是首先用EfficientNet来查看问题,这是显而易见的,但接下来的步骤是开始制定一些更动态的规则和概念,以便更好地适应目标和目的。我们首先在渐进式学习中看到了这一点,当他们使正则化更加动态,以便更好地适应图像大小,提高了表现。

我们现在看到这种方法再次被用于扩展网络。EfficientNet使用一个简单的复合缩放规则,均匀地扩大所有stages。EfficientNetV2的作者指出这是不必要的,因为并不是所有的阶段都需要通过扩展来提高性能。这就是为什么他们使用非统一的扩展策略在后期逐步添加更多层的原因。他们还添加了一个缩放规则来限制最大的图像大小,因为EfficientNets倾向于积极地将图像大小放大。

我认为这背后的主要原因是,早期的层并不需要扩展,因为在这个早期阶段,网络只关注高级特征。然而,当我们深入到网络的更深层,并开始研究低级特征时,我们将需要更大的层来完全消化这些细节。

英文原文:https://towardsdatascience.com/google-releases-efficientnetv2-a-smaller-faster-and-better-efficientnet-673a77bdd43c

END

备注:部署

模型压缩与应用部署交流群

模型压缩、网络压缩、神经网络加速、轻量级网络设计、知识蒸馏、应用部署、MNN、NCNN等技术,

若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

EfficientNetV2:训练速度快了5~10x,更小,更快,精度更高的EfficientNet相关推荐

  1. 更小的刘海和更宽的5G天线,下一代iPhone你期待吗?

    10月23日消息,据国外媒体报道,苹果2020款iPhone可能拥有更小的"刘海".更宽的5G天线. 苹果公司正在测试几种方法,以为其2020款iPhone打造更小的"刘 ...

  2. html设置字体比12还小,css字体更小 css比12px更小的方法

    css 字间距.CSS字体间距.css 字符间距设置 1.text-indent设置抬头距离css缩进 2.letter-spacing来设置字与字间距_字符间距离,字体间距css样式 CSS 字体( ...

  3. 如何用更小的成本去更远的地方

    驰途旅游卡是由驰途旅游打造全新的旅游新模式,持卡人享受全球目的地免费双人出游,卡内数十条热门旅游线路任选, 包含接送机.酒店住宿.餐饮.旅游巴士.景点门票等,卡外线路更可持卡折扣预订,一卡在手世界畅游 ...

  4. css字体更小 css比12px更小的方法

    1 <span style="margin-top: 0;-webkit-transform-origin-x: 0;-webkit-transform: scale(0.90);&q ...

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

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

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

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

  7. QFE23xx揭秘:最强大的Qualcomm RF360前端芯片——更多频带,更多模式,更小的PCB尺寸

    QFE23xx揭秘:最强大的Qualcomm RF360前端芯片 --更多频带,更多模式,更小的PCB尺寸 美国高通公司的RF360™大新闻又来啦!第一款采用包络追踪的商用手机是三星的GALAXY N ...

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

    EfficientNetV2: Smaller Models and Faster Training paper: https://arxiv.org/abs/2104.00298 code(官方TF ...

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

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

最新文章

  1. 袁国勇院士团队纳米孔测序揭示人和禽流感病毒新型检测和监测靶点
  2. Thecus色卡司1U机架式网络存储服务器
  3. linux 驱动开发 --- 字符设备与混杂设备区别
  4. AIX 中关于文件存储的相关命令
  5. php js urlencode,JavaScript版本的UrlEncode和UrlDecode函数实现
  6. C语言树形文件结构的创建,C语言二叉树
  7. iptables命令_程序员最有用的linux命令汇总
  8. 数据结构 - 二叉树(前序中序后序查找)
  9. 2014/09/30 Learning Note
  10. Java案例:文件切割与合并
  11. Elasticsearch refresh
  12. 大龄程序员的8种出路
  13. cracking the pm interview_2020泰晤士报THE世界大学排名发布!如何凭艺术冲进大U名校?...
  14. Unity动画系统-配置Avatar
  15. Faceswap文档之---使用手册
  16. 深信服SSL远程接入与深信服行为审计同步登陆用户信息
  17. java 接口 实验报告_java-接口练习实验报告
  18. MySQL语句练习---由简入繁
  19. 罗马数字与阿拉伯数字的相互转换
  20. 面向对象进阶 三大特性

热门文章

  1. FastMM FastCode FastMove的使用
  2. Java7并发编程指南——第六章:并发集合
  3. 当前服务器文件夹不存在,供应商文件夹不存在,无法创建
  4. iphone同步助手_如何将 iPhone 或 iCloud 的照片和视频备份到电脑?
  5. python requests form data_Python爬虫:Request Payload和Form Data的简单区别说明
  6. python量化交易策略实例_Python量化实例 – 基于股票的金融数据量化分析
  7. 会议系统m900服务器网口灯,【中兴视频会议多点控制单元ZXV10 M900-64MA 今日特卖】价格,厂家,视讯会议系统-搜了网...
  8. php速度慢不怕cpu漏洞,PHP曝远程DOS漏洞可致CPU持续占满,请注意升级_护卫神
  9. python中codecs_Python:如何使用codecs模块将unicode数据保存成gbk格式
  10. 没有第三个变量的前提下交换两个变量_JavaScript 交换值的方法,你能想到几种?