选自Google AI Blog
作者:Andrew Howard
机器之心编译
参加:王子嘉、Geek AI
说到本年最抢手的智能手机,必定绕不开谷歌重磅推出的 Pixel 4。而 Pixel 4 的强壮功用表现在很大程度上还要归功于其背面用到的黑科技——根据终端设备的机器学习。前段时刻,谷歌发布了 MobileNetV3 和 MobileNetEdgeTPU 的源代码,让咱们一探终究吧!
根据终端设备的机器学习(On-device machine learning)是完成具有隐私维护功用、能够时刻工作、快速呼应的智能的重要组成部分。这就要求咱们将根据终端的机器学习布置在算力有限的设备上,然后推动了从算法意义上来说高效的神经网络模型的研讨,以及每秒可履行数十亿次数学运算却只需求耗费几毫瓦电力的硬件的开展。最近发布的「Google Pixel 4」便是这一开展的新趋势的代表。
「Google Pixel 4」搭载了 Pixel 神经中心,它包括了 Edge TPU 架构的实例和 Google 用于边际核算设备的机器学习加速器,这增强了 Pixel 4 的运用者实在的体会,比方更好的面部解锁功用,更快的 Google 帮手以及共同的相机功用。一起,MobileNet 之类的算法为移动视觉应用程序供给了紧凑而高效的神经网络模型,是根据终端的机器学习成功的首要的要素。
上一年 11 月,谷歌发布了 MobileNetV3 和进行了 Pixel 4 Edge TPU 优化后的 MobileNetEdgeTPU 模型的源代码及检查点(checkpoint)。这些模型是最新的可感知硬件(hardware-aware)的主动机器学习(AutoML)技能与一些新式架构规划的结晶。
在移动版 CPU 上,MobileNetV3 的速度是 MobileNetV2 的两倍(准确率相同的情况下),它也改写了移动核算机视觉网络现在最佳的功用。在 Pixel 4 Edge TPU 硬件加速器上,MobileNetEdgeTPU 模型在前进模型准确性的一起减少了运转时刻和功耗,这个发展进一步突破了这一范畴的极限。
构建 MobileNetV3
与之前手动规划的 MobileNet 比较,MobileNetV3 的查找空间是适用于移动核算机视觉使命的,它在查找空间中经过 AutoML 技能找到或许的最佳架构。为了最有用地运用查找空间,谷歌顺次布置了两种技能:MnasNet 和 NetAdapt。首要,MnasNet 运用强化学习从一组离散的选项中挑选出最优装备,然后找到一个粗糙的架构。然后,谷歌运用 NetAdapt 对体系结构进行微调,NetAdapt 是一种弥补性技能,能够对未充沛的运用的激活通道进行微调。为了得到在不同条件下的最佳功用,谷歌别离生成了大型模型和小型模型。
运用 Google Pixel 4 CPU 在 ImageNet 分类使命上关于移动模型的准确性和推迟的比较。
MobileNetV3 的查找空间
谷歌在习惯移动环境的架构规划上取得了多项发展,MobileNetV3 的查找空间就建立在这些发展的根底之上。首要,谷歌引入了一种根据 Swish 非线性函数的、被称为 hard-swish(h-swish)的新激活函数。Swish 函数的首要缺陷是其在移动硬件上的核算功率很低。因而,谷歌运用了一种能够由两个分段线性函数的乘积表明的近似计划。
接下来将介绍适用于移动设备的揉捏鼓舞块(squeeze-and-excitation),该块运用分段线性近似替代了传统的 sigmoid 函数。
在 h-swish 的根底上加上适用于移动设备的揉捏鼓舞块,并与改善后的 MobileNetV2 中的倒瓶颈结构相结合,就形成了 MobileNetV3 的一个新的构建块。
MobileNetV3 经过增加 h-swish 和适用于移动设备的揉捏鼓舞块扩展了 MobileNetV2 的倒瓶颈结构,并以此作为可查找的选项。
以下参数界说了结构 MobileNetV3 时运用的查找空间:
扩展层巨细
揉捏鼓舞块紧缩度
激活函数的挑选:h-swish 或 ReLU
每个分辨率块的层数
谷歌还在网络结尾引入了一个新的高效的最终阶段,可将推迟进一步下降 15%。
MobileNetV3 的方针检测和语义切割
除了分类模型之外,谷歌还引入了 MobileNetV3 方针检测模型,该模型在 COCO 数据集上比 MobileNetV2 减少了 25% 的检测推迟(准确率相同的情况下)。
为了优化 MobileNetV3 以进行有用的语义切割,谷歌引入了一个低推迟切割解码器,将其称之为「Lite reduce Atrous Spatial Pyramid Pooling」(LR-SPP)。这个新的解码器包括三个分支,一个分支用于低分辨率语义特征,一个用于高分辨率细节,一个用于轻量级留意力机制。LR-SPP 和 MobileNetV3 的组合在高分辨率的 Cityscapes 数据集上减少了超越 35% 的推迟。
用于 Edge TPUs 的 MobileNet
Pixel 4 中的 Edge TPU 在结构上与 Coral 产品线中的 Edge TPU 类似,但经过定制后,能够彻底满意 Pixel 4 中相机的要害功用的要求。可感知加速器的 AutoML 办法大幅度减少了为硬件加速器规划和优化神经网络的手艺进程。构建神经架构查找空间是这种办法的重要一环,它以已知能大大的提高硬件运用率的神经网络操作为中心。尽管比如「揉捏-鼓舞块」和「swish 非线性」等操作已被证明是构建紧凑而快速的 CPU 模型的要害,但这些操作在 Edge TPU 上的履行作用往往欠佳,因而被扫除在查找空间之外。为了能够更容易地移植到其它各种硬件加速器上(如 DSP 和 GPU),简化版的 MobileNetV3 变种也抛弃了对这些操作的运用(例如,揉捏-鼓舞、swish、以及 5x5 卷积)。
谷歌鼓舞神经网络架构查找算法一起优化模型的准确率和 EdgeTPU 推迟,然后生成了 MobileNetEdgeTPU 模型,该模型与现有的移动版模型(如 MobileNetV2 和简化版的 MobileNetV3)比较,能够在准确率适当的情况下具有更低的推迟(或在平等推迟的根底上到达更高的准确率)。与 EfficientNet-EdgeTPU 模型(针对 Coral 中的 Edge TPU 进行了优化)比较,这些模型在 Pixel 4 上的运转推迟要低得多(尽管会丢失一部分准确率)。
尽管下降模型的功耗不是查找方针的一部分,但 MobileNetEdgeTPU 模型的低推迟也有助于下降 Edge TPU 的均匀功耗。在准确率适当的情况下,MobileNetEdgeTPU 模型耗费的能量不到简化版的 MobileNetV3 模型的 50%。
左图:在 Pixel4 EdgeTPU 上运转时,MobileNetEdgeTPU 与其它为移动设备规划的图画分类网络在 ImageNet 分类使命上的准确率比较。与其它模型比较,MobileNetEdgeTPU 具有更高的准确率和更低的推迟。右图:每秒运转 30 帧(fps)的不同分类模型的在 Edge TPU 上的均匀功率(瓦特)。
运用 MobileNetEdgeTPU 进行方针检测
在方针检测使命中,MobileNetEdgeTPU 分类模型也能够看作一个有用的特征提取器。与根据 MobileNetV2 的检测模型比较,在 Edge TPU 上可比较的运转时上,MobileNetEdgeTPU 模型大幅度的提高了在「COCO14 minival」数据集上的模型质量(经过均匀精度均值(mean average precision,mAP)衡量)。MobileNetEdgeTPU 检测模型的推迟为 6.6ms, mAP 评分为 24.3,而根据 mobilenetv2 的检测模型 mAP 为 22,每次推理需求 6.8ms。
关于可感知硬件的模型的需求
尽管上面说到的成果突出了 MobileNetEdgeTPU 模型在功率、功用和质量方面的优势,可是必需要分外留意的是,之所以有这些前进,是因为这些模型专门为 EdgeTPU 加速器定制。
在移动版 CPU 上运转时,MobileNetEdgeTPU 的功用要低于专门针对移动版 CPU 进行调优的模型(MobileNetV3)。MobileNetEdgeTPU 模型履行的操作要多得多,因而,它们在移动版 CPU 上运转得更慢也就家常便饭了,移动版 CPU 在模型的核算需求和运转时之间有更线性的联系。
当布置方针是移动版 CPU 时,MobileNetV3 依旧是最好的模型。
致研讨员与开发者
MobileNetV3 和 MobileNetEdgeTPU 的代码,以及用于 ImageNet 分类的浮点和量化的检查点,都能够在 MobileNet 的 github 主页上找到:https://github.com/tensorflow/models/tree/master/research/slim/nets/mobilenet。
在 Tensorflow 方针检测 API 中供给了 MobileNetV3 和 MobileNetEdgeTPU 方针检测的开源完成:https://github.com/tensorflow/models/tree/master/research/object_detection。
MobileNetV3 语义切割的 TensorFlow 版开源完成能够在 DeepLab 中找到:https://github.com/tensorflow/models/tree/master/research/object_detection。
原文链接:http://ai.googleblog.com/2019/11/introducing-next-generation-on-device.html