Searching for MobileNetV3(2019)


文章目录

  • Abstract
    • 主要内容
    • 实验结果
  • Introduction
  • Related Work
  • Efficient Mobile Building Blocks
  • Network Search
    • Platform-Aware NAS for Block-wise Search
    • NetAdapt for Layer-wise Search
  • Network Improvements
    • Redesigning Expensive Layers
    • Nonlinearities
    • Large squeeze-and-excite
  • Experiments
    • Classification
    • Results
    • Ablation study
      • Impact of non-linearities
    • Detection
    • Semantic Segmentation
  • Conclusions and future work

原文链接

Abstract

主要内容

我们提出了基于互补搜索技术和新颖架构设计相结合的下一代MobileNetsMobileNetV3通过硬件感知网络架构搜索(NAS)和NetAdapt的结合来调整到移动电话cpu,然后通过新颖的先进架构进行改进本文开始探索自动搜索算法和网络设计如何协同工作,以利用互补的方法提高整体技术水平。通过这个过程,我们创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对的是高资源和低资源的用例,然后将这些模型应用于目标检测和语义分割任务。针对语义分割(或任何密集像素预测)任务,我们提出了一种新的高效分割解码器:精简空间金字塔池(LR-ASPP)。

实验结果

我们在移动分类、检测和分割方面取得了最先进的成果。与MobileNetV2相比,MobileNetV3-Large在ImageNet分类上的准确率提高了3.2%,同时延迟减少了20%。与具有类似延迟的MobileNetV2模型相比,MobileNetV3-Small的准确率提高了6.6%。MobileNetV3-Large检测速度超过25%,与Mo- bileNetV2在COCO检测上的精度大致相同。在相似的城市景观分割精度下,MobileNetV3-Large LR- ASPP比MobileNetV2 R-ASPP快34%。

Introduction

高效的神经网络在移动应用中变得无处不在,从而实现全新的设备体验。它们也是个人隐私的关键推动者——允许用户在不需要将数据发送到服务器进行评估的情况下获得神经网络的好处神经网络效率的进步不仅通过更高的准确性和更低的延迟改善用户体验,而且通过降低功耗有助于延长电池寿命。

本文描述了我们开发MobileNetV3大型和小型模型的方法,以提供下一代高精度高效神经网络模型,为设备上的计算机视觉提供动力。新的网络推动了技术的发展,并展示了如何将自动搜索与新架构的进步相结合,以建立有效的模型。
本文的目标是开发最好的移动计算机视觉架构,优化移动设备上的精度和延迟权衡。(和mnas一样嘛)

为了实现这一目标,我们引入了(1)互补搜索技术,(2)适用于移动设置的新型高效非线性算法,(3)新型高效网络设计,(4)新型高效分割解码器。并进行了深入的实验,证明了在广泛的用例和移动电话上评估的每种技术的功效和价值

Related Work

在深度神经网络结构设计中实现精度与效率的最佳平衡是近年来研究的热点。新颖的手工结构和算法神经结构搜索在这一领域的发展中发挥了重要作用
先介绍了SqueezeNet、MobileNet等手工搜索,接着又介绍了MnasNet等引入强化学习来进行自动化搜索的架构
最后介绍了下量化和知识蒸馏

Efficient Mobile Building Blocks

先引入了下以前的高效模块设计,MobileNetV1引入了深度可分离卷积,将传统卷积分解为:用于空间滤波的轻量级深度卷积和用于特征生成的较重的1x1点卷积。MobileNetV2引入了线性瓶颈和反向残余结构,以便通过利用问题的低秩性来构建更有效的层结构
MnasNet在MobileNetV2结构的基础上,将基于挤压和激励的轻量级注意力模块引入瓶颈结构
MobileNetV3使用这些层的组合作为构建块,以构建最有效的模型

Network Search

MobileNetV3使用平台感知NAS通过优化每个网络块来搜索全局网络结构。然后,我们使用NetAdapt算法搜索每层过滤器的数量。这些技术是互补的,可以结合起来有效地找到针对给定硬件平台的优化模型。

Platform-Aware NAS for Block-wise Search

和MnasNet相同,在MnasNet-A1基线模型上应用NetAdapt[48]和其他优化
一不小心观察到最初的奖励设计并没有针对小型移动模型进行优化,对于小模型,准确率随着延迟的变化更大
因此,作者采用了一个较小的权重因子w = -0.15替换原始的w = -0.07来补偿不同延迟带来的较大精度变化。

NetAdapt for Layer-wise Search

我们在架构搜索中使用的第二种技术是NetAdapt[48],这种方法是对平台感知的NAS的补充:它允许以顺序的方式对各个层进行微调,而不是试图推断粗糙的全局架构。简而言之,技术流程如下:
1.从平台感知NAS找到的子网络架构开始
2. For each step:
(a):生成一组新建议,每个提议都代表了一个架构的修改,与前一步相比,至少减少δ的延迟。
(b):对于每个建议,我们使用前一步预训练的模型并填充新提出的体系结构,截断并随机初始化适当的缺失权重。对每个建议进行T步微调,以获得精度的粗略估计
©:根据某种度量选择最佳方案
3.迭代前一步,直到达到目标延迟
我们使延时变化与精度变化之比最小化。也就是说,对于在每个NetAdapt步骤中生成的所有提案,我们选择一个最大的提案:∆Acc/ |∆latency|,∆latency满足2(a)中的约束。直觉是,因为我们的建议是离散的,我们更喜欢那些最大化权衡曲线斜率的建议。

重复这个过程,直到延迟达到目标,然后我们从头开始重新训练新的架构。我们使用与MobilenetV2相同的提案生成器。具体来说,我们允许以下两类提案:
1.减少任何扩展层的尺寸
2.减少共享相同瓶颈大小的所有块中的瓶颈-以保持剩余连接

Network Improvements

我们在网络的开始和结束处重新设计计算开销大的层。我们还引入了一种新的非线性,h-swish,它是最近swish非线性的改进版本,计算速度更快,更易于量化。

Redesigning Expensive Layers

基于MobileNetV2的倒瓶颈结构和变体的模型使用1x1卷积作为最后一层,以便扩展到更高维度的特征空间。为了减少延迟并保留高维特征,我们将这一层移动到最终的平均池化之后。最后一组特征现在以1x1的空间分辨率计算,而不是7x7的空间分辨率。这种设计选择的结果是,在计算和延迟方面,特征的计算几乎是自由的。
我们在之前的瓶颈层中删除投影层和过滤层,进一步降低计算复杂度。原始和优化后的最后一级如图5所示。高效的最后阶段将延迟减少了7毫秒,占运行时间的11%,并在几乎没有准确性损失的情况下将操作数量减少了3000万MAdds。
目前的移动模型倾向于在一个完整的3x3卷积中使用32个滤波器来构建用于边缘检测的初始滤波器组。我们在这一层使用hard swish非线性,因为它表现得和其他非线性测试一样好。我们能够将过滤器的数量减少到16个,同时使用ReLU或swish保持与32个过滤器相同的精度。这节省了额外的2毫秒和1000万MAdds。

Nonlinearities

引入了一种称为swish的非线性,当用作ReLU的替代时,它显着提高了神经网络的准确性。非线性定义为
虽然这种非线性提高了精度,但它在嵌入式环境中带来了非零成本,因为在移动设备上计算sigmoid函数要昂贵得多。我们用两种方法处理这个问题
1.我们将sigmoid函数替换为它的分段线性硬模拟ReLU6(x+3)/6,则swish为:

最后,在实践中,h-swish可以作为逐个函数实现,以减少内存访问次数,从而大大降低延迟成本。

2.随着我们深入网络,应用非线性的成本会降低,因为每次分辨率下降时,每层激活存储器通常都会减半。顺便说一句,我们发现swish的大多数好处都是通过在更深的层中使用它们来实现的。因此,在我们的架构中,我们只在模型的后半部分使用h-swish。我们参考表1和表2了解精确的布局

Large squeeze-and-excite

在MnasNet中,挤压-激发瓶颈的大小与卷积瓶颈的大小是相对的。相反,我们将它们全部替换为固定为扩展层通道数的1/4。我们发现这样做可以在参数数量适度增加的情况下提高精度,并且没有明显的延迟成本

Experiments

Classification

Results




Ablation study

Impact of non-linearities

在h-swish@N中,N表示启用了h-swish的第一层中的通道数。第三列显示了没有经过优化的h-swish的运行时间。前1的精度在ImageNet上,延迟以毫秒为单位

显然h-swish优于Relu,且在整个网络中添加h-swish比扩大网络的插值边界稍微好一些

Detection

对于这两个MobileNetV3模型,通道减少技巧在没有mAP损失的情况下减少了大约15%的延迟,这表明Imagenet分类和COCO对象检测可能更喜欢不同的特征提取器形状。

Semantic Segmentation


我们提出了一种轻量级分段头,称为Lite R-ASPP(或LR-ASPP),如图10所示。Lite R-ASPP在R-ASPP的基础上进行了改进,以类似于挤压和激励模块[20]的方式部署了全局平均池化,其中我们使用了一个具有大跨距的大型池化内核(以节省一些计算),并且模块中只有一个1 × 1卷积。我们对MobileNetV3的最后一个块应用属性卷积[18,40,33,6]来提取更密集的特征,并进一步从低级特征中添加askip连接[30]来捕获更详细的信息。

(1)减少渠道的最后一块网络骨干2倍显著提高速度的同时保持类似的表演(第一行和第二行,行5与行6),(2)提出分割头LR-ASPP略高于R-ASPP[39]虽然性能改善(第二行和第三行,行6vs行7),(3)减少分割的过滤器头从256年到128年提高了速度稍差的成本性能(第3行与行4(4)当使用相同的设置时,MobileNetV3模型变量获得类似的性能,同时比MobileNetV2对应版本略快(第1行vs.第5行,第2行vs.第6行,第3行vs.第7行,第4行vs.第8行),(5)MobileNetV3-small获得与MobileNetV2-0.5相似的性能,同时更快,(6)MobileNetV3-small显着优于MobileNetV2-0.35,同时产生相似的速度。

我们的模型(以MobileNetV3-Small作为网络骨干)的性能仍然优于所有这些模型,至少高出2.1%

Conclusions and future work

在本文中,我们介绍了MobileNetV3大型和小型模型,展示了移动分类,检测和分割的新状态。我们已经描述了我们在利用多种网络架构搜索算法以及网络设计的进步来提供下一代移动模型方面所做的努力。我们展示了如何以一种量化友好和有效的方式适应非线性,如swish和应用挤压和激发,将它们作为有效的工具引入到移动模型中。我们还引入了一种新的轻量级分割解码器,称为LR-ASPP。虽然如何最好地将自动搜索技术与人类直觉相结合仍然是一个悬而未决的问题,但我们很高兴地展示了这些初步的积极结果,并将在未来的工作中继续改进方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240892.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP-Xlswriter高性能导出Excel

使用背景 使用传统的PHPExcel导出效率太慢,并且资源占用高,数据量大的情况,会导致服务占用大量的资源,从而导致生产意味,再三思索后,决定使用其他高效率的导出方式 PHP-Xlswriter PHPExcel 因为内存消耗过…

信号与线性系统翻转课堂笔记9——傅里叶变换

信号与线性系统翻转课堂笔记9——傅里叶变换 The Flipped Classroom9 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1,重点)…

MyBatis中延迟加载,全局和局部的开启使用与关闭

文章目录 MyBatis中延迟加载,全局和局部的开启使用与关闭1、问题提出2、延迟加载和立即加载延迟加载立即加载 3、三种对应的表关系中的加载4、打开全局延迟加载(实现一对一的延迟加载)5、实现一对多的延迟加载(将上面设置的全局延…

零成本搭建一款博客网站(基于Vercel+Hexo完美实现)【保姆级教程】

文章目录 🐸基于VercelHexo零成本搭建博客网站🐻实现思路 🐮Hexo的配置与安装🐒Hexo的美化与使用🐫Github的推送与部署🐼Vercel部署与网站上线🐛总结 🐸基于VercelHexo零成本搭建博客…

【数据结构】递归与分治

一.递归 1.递归的概念: 子程序(或函数). 接调用自己或通过一系列调用语句间接调用自己,成为递归。 递归是一种描述问题和解决问题的基本方法。 重复地把问题转化为与原问题相似的新问题,直到问题解决为止。 2.递归…

ElasticSearch学习篇9_文本相似度计算方法现状以及基于改进的 Jaccard 算法代码实现

背景 XOP亿级别题库的试题召回以及搜题的举一反三业务场景都涉及使用文本相似搜索技术,学习此方面技术以便更好的服务于业务场景。 目前基于集合的Jaccard算法以及基于编辑距离的Levenshtein在计算文本相似度场景中有着各自的特点,为了优化具体的计算时…

【Linux驱动】字符设备驱动程序框架 | LED驱动

🐱作者:一只大喵咪1201 🐱专栏:《RTOS学习》 🔥格言:你只管努力,剩下的交给时间! 目录 🏀Hello驱动程序⚽驱动程序框架⚽编程 🏀LED驱动⚽配置GPIO⚽编程驱动…

YB75XXH系列是采用CMOS工艺制造,低功耗的高压稳压器

YB75xxH 高耐压线性稳压器 ■产品简介: YB75XXH系列是采用CMOS工艺制造,低功耗的高压稳压器,最高输入电压可达25V,输出电压范围为1.5V一12.0V。它具有高精度的输出电压、极低的供电电流、极低的跌落电压等特点。 ■产品特点: …

SpringBoot 3 集成Hive 3

前提条件: 运行环境&#xff1a;Hadoop 3.* Hive 3.* MySQL 8 &#xff0c;如果还未安装相关环境&#xff0c;请参考&#xff1a;Hive 一文读懂 Centos7 安装Hadoop3 单机版本&#xff08;伪分布式版本&#xff09; SpringBoot 2 集成Hive 3 pom.xml <?xml ver…

MyBatis 通过 SqlSession 实现动态Entity批量插入

需要几个关键点: 1、entity对应的service需要继承BaseService 2、entity对应的serviceImpl需要实现baseMapper方法&#xff0c;需要把当前的mapper返回去 3、entity对应的Mapper需要BaseMapper

又是阿里,通义灵码免费平替GitHub Copilot

毫无疑问&#xff0c;人工智能已经在影响着我们日常生活的方方面面&#xff0c;同样的在软件开发领域&#xff0c;AI正在改变我们的开发方式。在软件开发领域&#xff0c;尽管有许多强大的AI编码工具&#xff0c;但国产&#xff0c;免费&#xff0c;使用门槛低&#xff0c;用起…

机器学习算法(11)——集成技术(Boosting——梯度提升)

一、说明 在在这篇文章中&#xff0c;我们学习了另一种称为梯度增强的集成技术。这是我在机器学习算法集成技术文章系列中与bagging一起介绍的一种增强技术。我还讨论了随机森林和 AdaBoost 算法。但在这里我们讨论的是梯度提升&#xff0c;在我们深入研究梯度提升之前&#xf…

linux buffer的回写的触发链路

mark_buffer_dirty中除了会标记dirty到buffer_head->state、page.flag、folio->mapping->i_pages外&#xff0c;还会调用inode所在文件系统的dirty方法&#xff08;inode->i_sb->s_op->dirty_inode&#xff09;。然后为inode创建一个它所在memory group的wri…

(十七)Flask之大型项目目录结构示例【二扣蓝图】

大型项目目录结构&#xff1a; 问题引入&#xff1a; 在上篇文章讲蓝图的时候我给了一个demo项目&#xff0c;其中templates和static都各自只有一个&#xff0c;这就意味着所有app的模板和静态文件都放在了一起&#xff0c;如果项目比较大的话&#xff0c;这就非常乱&#xf…

阿里云吴结生:云计算是企业实现数智化的阶梯

云布道师 近年来&#xff0c;越来越多人意识到&#xff0c;我们正处在一个数据爆炸式增长的时代。IDC 预测 2027 年全球产生的数据量将达到 291 ZB&#xff0c;与 2022 年相比&#xff0c;增长了近 2 倍。其中 75% 的数据来自企业&#xff0c;每一个现代化的企业都是一家数据公…

大创项目推荐 深度学习+python+opencv实现动物识别 - 图像识别

文章目录 0 前言1 课题背景2 实现效果3 卷积神经网络3.1卷积层3.2 池化层3.3 激活函数&#xff1a;3.4 全连接层3.5 使用tensorflow中keras模块实现卷积神经网络 4 inception_v3网络5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; *…

Excel 获取当前行的行数

ROW() 获取当前行 ROW()1 获取当前行然后支持二次开发

【H3C】交换机VLAN配置

交换机配置 ACCESS配置方式 u t m //关闭提示 sys //进入系统视图 vlan 10 to 11 //批量创建vlan10到11 int g1/0/1 //进接口 port link-type access //配置接口类型access&#xff0c;t…

Linux--Shell脚本应用实战

实验环境 随着业务的不断发展&#xff0c;某公司所使用的Linux服务器也越来越多。在系统管理和维护过程中&#xff0c;经 常需要编写一些实用的小脚本&#xff0c;以辅助运维工作&#xff0c;提高工作效率。 需求描述 > 编写一个名为getarp.sh的小脚本&#xff0c;记录局域…

大数运算·字符串相加·阶乘

大数&#xff0c;就是C/C中利用基本类型所不能存储的数字&#xff0c;少则数十位&#xff0c;大则几万位&#xff0c;如何存储和计算大数就是本文的内容。 在C和C中&#xff0c;没有存储大数的数据结构&#xff0c;就算 unsigned long long也只能表示19位的数字  如果我们用d…