【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

谷歌开源下一代移动端计算机视觉模型:基于 AutoML 的 MobileNetV3 和 MobileNetEdgeTPU

  • 2019-11-30
  • 本文字数:3250 字

    阅读完需:约 11 分钟

谷歌开源下一代移动端计算机视觉模型:基于AutoML的MobileNetV3和MobileNetEdgeTPU

端上机器学习对于隐私保护、无网环境可用性和智能响应的实现是至关重要的。这需要在设备端使用机器学习算法进行计算,但设备的计算能力有限,这就刺激了算法效率高的神经网络模型和硬件的发展,这些硬件每秒能够执行数十亿次的数学运算,而只会消耗几毫瓦的电量。最近谷歌发布的Pixel 4就例证了这个趋势,它附带了 Pixel 神经核心这个硬件单元,并采用了Edge TPU架构。这个 Edge TPU 是谷歌用在边缘计算设备上的机器学习加速器,它提高了 Pixel 4 的用户体验,例如面部解锁、更快的谷歌助理和独特的摄像头功能。类似地,像MobileNets这样的算法为移动端视觉应用提供了紧致而高效的神经网络模型,这对机器学习在端上的成功应用至关重要。


今天我们很高兴宣布MobileNet3和其对应的由 Pixel 4 Edge TPU 优化过的MobileNetEdgeTPU模型及代码正式开源。这些模型是硬件感知AutoML技术以及架构设计领域的一些最新进展累积而成的重大成果。在移动端 CPU 上,MobileNetV3 比MobileNetV2快两倍,而精确度相当,这推动了最先进的计算机视觉网络技术的进步。在 Pixel 4 Edge TPU 硬件加速器上,MobileNetEdgeTPU 有了更进一步的提升,在改进了模型精度的同时还降低了运行时间和能耗。

构建 MobileNetV3

与之前手动设计的MobileNet模型版本相比,MobileNetV3 通过 AutoML 在搜索空间里寻找最好的架构,这个搜索空间是针对移动端计算机视觉任务而建立的空间。为了最高效地挖掘这个搜索空间,我们相继引入了两种技术——MnasNetNetAdapt。首先,我们使用 MnasNet 来搜索一个大致的架构,其中使用了强化学习方法从一个离散的选项集合中选择最优配置。然后,我们使用 NetAdapt 微调这个架构,NetAdapt 是一种补充技术,能够以较小的精度衰减来减少未充分利用的激活通道。为了在不同条件下都能提供最好的性能,我们分别生成了较大模型和较小模型。



使用谷歌 Pixel 4 CPU,在 ImageNet 分类任务上对移动端模型精度和延时的比较。

MobileNetV3 搜索空间

MobileNetV3 的搜索空间建立在最近架构设计领域的多项创新之上,我们将其适配到了移动端环境。首先,我们引入了一个新的激活函数,命名为 hard-swish(h-swish),它基于Swish非线性函数。Swish 函数的主要缺点是其在移动端硬件上效率非常低。所以,相应地,我们使用了其近似函数,它可以有效地表示为两个分段线性函数之积。



下一步,我们引入了移动端友好的squeeze-and-excitation模块,其使用一个分段线性近似函数替换了经典的sigmoid函数


结合 h-swish 和移动端友好的 squeeze-and-excitation(修改了 MobileNetV2 中引入的inverted bottleneck结构,我们为 MobileNetV3 构建了一个新的模块单元。



MobileNetV3 扩展了 MobileNetV2 的 inverted bottleneck 结构,增加了 h-swish 和移动端友好的 squeeze-and-excitation 模块作为搜索选项。


以下参数定义了用来构建 MobileNetV3 的搜索空间:


  • expansion 层的大小

  • squeeze-excite 压缩的程度

  • 激活函数选取:h-swish 或者ReLU

  • 每种分辨率模块的层数


我们还在网络末端引入了一个高效的模块,这将延时进一步减少了 15%。


MobileNetV3 物体检测和语义分割

除了分类模型以外,我们还介绍了 MobileNetV3 的物体检测模型,在COCO数据集上,其相比于 MobileNetV2 减少了 25%的延时,而精度维持在同样水平。


为了优化 MobileNetV3 来实现高效的语义分割,我们引入了具有低延时的分割解码器,命名为 Lite Reduced Atrous Spatial Pyramid Pooling(LR-SPP)。这个新的解码器网络包含三个分支,一个用于低精度的语义特征,一个用于高精度细节特征,最后一个用于轻权重的注意力模型。在高精度Cityscapes数据集上,LR-SPP 和 MobileNetV3 的结合使延时降低了 35%以上。

MobileNet for Edge TPUs

Pixel 4 上的 Edge TPU 架构和Coral产品线上的 Edge TPU 很像,但是其为了满足 Pixel 4 上摄像机关键特性的要求而进行了定制化。加速器感知的AutoML方法大大减少了为硬件加速器设计和优化神经网络的手动操作。设计神经架构搜索空间是这个方法的重要部分,其围绕着如何选取神经网络操作来改进硬件利用率。尽管像 squeeze-and-excite 和非线性 swish 这样的操作在构建紧致而快速的 CPU 模型方面被认为是至关重要的,但是在 Edge TPU 上的表现并非最优,因此,我们将其排除在搜索空间之外。MobileNetV3 的最小化变种也放弃了这些操作的使用(例如 squeeze-and-excitation、swish 和 5x5 卷积),这样可以使模型更容易地移植到其他一些硬件加速器上,例如DSPGPU


神经网络架构搜索基于同时优化模型精确度和 Edge TPU 延时的动机,其生成的 MobileNetEdgeTPU 模型在固定某个精度时达到了更低的延时(或者在固定的延时条件下达到了更高的精确度,这是和之前像 MobileNetV2 和最小化的 MobileNetV3 模型相比的)。和EfficientNet-EdgeTPU模型(在 Coral 中为 Edge TPU 优化过的模型)相比,这些模型在 Pixel 4 上运行时的延时低得多,尽管代价是在精度上有点损失。


尽管减少模型的能耗并不是搜索目标的一部分,MobileNetEdgeTPU 模型的低延时还是帮助减少了 Edge TPU 的平均能耗。MobileNetEdgeTPU 模型在同样精确度情况下,只需要消耗最小化的 MobileNetV3 模型一半不到的能量。


左侧:Pixel4 Edge TPU上运行MobileNetEdgeTPU网络和其他移动端图像分类网络的精度对比情况,运行任务为ImageNet分类任务。MobileNetEdgeTPU相比于其他模型实现了更高的精度和更低的延时。右侧:在每秒运行30帧(FPS)的情况下,不同分类模型在Edge TPU上的平均能耗(单位:瓦特)。


左侧:Pixel4 Edge TPU 上运行 MobileNetEdgeTPU 网络和其他移动端图像分类网络的精度对比情况,运行任务为 ImageNet 分类任务。MobileNetEdgeTPU 相比于其他模型实现了更高的精度和更低的延时。右侧:在每秒运行 30 帧(FPS)的情况下,不同分类模型在 Edge TPU 上的平均能耗(单位:瓦特)。

使用 MobileNetEdgeTPU 做物体检测

MobileNetEdgeTPU 分类模型还可以作为物体检测任务的高效特征提取器。和基于 MobileNetV2 的物体检测模型相比,MobileNetEdgeTPU 模型在模型质量方面有了重大改进(用 mean average precisin 指标来衡量,即 mAP),这是在 Edge TPU 上运行了足够多的COCO 14 minival数据集的结果。MobileNetEdgeTPU 检测模型延时为 6.6ms,mAP 分数达到了 24.3,而基于 MobileNetV2 的检测模型 mAP 只有 22,每次推理延时为 6.8ms。

硬件感知模型的必要性

以上结果凸显了 MobileNetEdgeTPU 模型在能耗、性能和质量方面带来的好处,值得注意的是,这些模型通过在 Edge TPU 加速器上运行而得到了定制化,这才有了这些方面的改进。MobileNetEdgeTPU 如果直接跑在移动端 CPU 上,其性能不如移动端 CPU 特意调过后的模型版本(如 MobileNetV3)。MobileNetEdgeTPU 模型执行的操作数量远超之前的模型版本,所以,它们在移动端 CPU 上运行的更慢也就不足为怪了,其在模型算力需求和运行时间之间展现出了更多的线性关系。



在使用移动端 CPU 时,MobileNetV3 仍然是部署到目标机器上性能表现最好的网络。

写给研究人员和开发人员

MobileNetV3 和 MobileNetEdgeTPU 代码,以及 ImageNet 分类任务对应的浮点和量化模型,可以在 MobileNet 的 github 页面下载:


https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet


MobileNetV3 和 MobileNetEdgeTPU 物体检测模型的开源实现可以在 Tensorflow 物体检测 API 页面获取:


https://github.com/tensorflow/models/tree/master/research/object_detection


MobileNetV3 语义分割的开源实现可以在 Tensorflow 代码库中的 DeepLab 获取:


https://github.com/tensorflow/models/tree/master/research/deeplab

致谢

这个工作是谷歌多个团队合作的成果。我们要感谢以下人员:Berkin Akin, Okan Arikan, Gabriel Bender, Bo Chen, Liang-Chieh Chen, Grace Chu, Eddy Hsu, John Joseph, Pieter-jan Kindermans, Quoc Le, Owen Lin, Hanxiao Liu, Yun Long, Ravi Narayanaswami, Ruoming Pang, Mark Sandler, Mingxing Tan, Vijay Vasudevan, Weijun Wang, Dong Hyuk Woo, Dmitry Kalenichenko, Yunyang Xiong, Yukun Zhu and support from Hartwig Adam, Blaise Agüera y Arcas, Chidu Krishnan 和 Steve Molloy。


原文链接:


https://ai.googleblog.com/2019/11/introducing-next-generation-on-device.html


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-11-30 12:0010655
用户头像
蔡芳芳 InfoQ主编

发布了 781 篇内容, 共 494.3 次阅读, 收获喜欢 2748 次。

关注

评论 1 条评论

发布
用户头像
谷歌云目前有什么线下活动能给大家分享下吗
2019-12-04 10:15
回复
没有更多了
发现更多内容

数据结构与算法 | 记忆化搜索(Memorize Search)

不在线第一只蜗牛

数据结构 算法 数据

探索向量数据库 | 重新定义数据存储与分析

-亦世凡华、

数据库 亚马逊云科技 向量数据库

Layer 2 真的为以太坊扩容了吗?

Footprint Analytics

以太坊 Layer 2

公司让我开发一个管理系统,有了它,So easy!

互联网工科生

软件开发 低代码 快速开发 JNPF

Util应用框架基础(六)- 日志记录 - Seq

何镇汐

开源 后端 软件开发

VPC终端节点的实现架构和原理

天翼云开发者社区

VPC终端节点

紧密合作三周年,Elastic颁发腾讯云2022年杰出开源贡献奖

腾讯云大数据

ES

云图说|华为云主机安全新版本上线

华为云开发者联盟

华为云 华为云开发者联盟 华为云云图说

时序数据库 TDengine + 高级分析软件 Seeq,助力企业挖掘时序数据潜力

TDengine

tdengine 时序数据库

常见光模块的封装类型有哪些?

小魏写代码

聚势启新,KaiwuDB 生态联盟沙龙首站落地长春

KaiwuDB

Kubernetes Operator可以做什么?

高端章鱼哥

kubernetes 运维

文心一言 VS 讯飞星火 VS chatgpt (134)-- 算法导论11.2 6题

福大大架构师每日一题

福大大架构师每日一题

「我在淘天做技术」假如你五行属商家,如何算好账?

阿里技术

财务 算好账 财务开发

为什么 Amazon Bedrock 中的模型只有部分可用?

花花

亚马逊云科技

正式开源!网易有道上线“易魔声”语音合成引擎

有道技术团队

人工智能 语音合成 TTS

崩溃的阿里云,并非是单纯的坏事?

ToB行业头条

在HarmonyOS上实现ArkTS与H5的交互

HarmonyOS开发者

HarmonyOS

低代码平台如何提高开发效率?

高端章鱼哥

软件开发 低代码 JNPF

在AI时代,提升程序员竞争力的关键策略

不在线第一只蜗牛

人工智能 编程 程序员 AI

全域全自主建设,亚信科技AntDB数据库助力广电5G业务上线运行

亚信AntDB数据库

数据库 AntDB AntDB数据库

英特尔锐炫GPU助力AI向大众用户市场普及

E科讯

Docker 和 Kubernetes:技术相同和不同之处

EquatorCoco

Docker k8s K8s 多集群管理 kubernetes 运维

同济 MBA × 和鲸:聚焦商业数据思维培养,赋能工管人才转型升级

ModelWhale

人才培养 企业数字化转型 数智化 MBA 同济大学

足球盘口数据获取:API接口与数据采集的权衡之道

软件开发-梦幻运营部

快速拉取聚水潭单据的ETL工具

RestCloud

数据同步 ETL

重磅!天翼云发布一站式智算服务平台“慧聚”

天翼云开发者社区

人工智能 云计算 云服务 云平台

Util应用框架基础(六)- 日志记录 - Exceptionless

何镇汐

开源 后端 软件开发

特权账号管理之定期改密篇

尚思卓越

网络安全 定期改密

RestCloud AppLink已支持的数据源有哪些?

RestCloud

零代码 APPlink 自动化集成

流程图怎么画?3个好用的在线流程图软件推荐,绘图再也没烦恼!

彭宏豪95

可视化 流程图 在线白板 画图工具 流程图绘制

谷歌开源下一代移动端计算机视觉模型:基于AutoML的MobileNetV3和MobileNetEdgeTPU_AI&大模型_Andrew Howard、Suyog Gupta_InfoQ精选文章