Py学习  »  机器学习算法

MnasNet:迈向移动端机器学习模型设计的自动化之路

谷歌开发者 • 5 年前 • 505 次点击  

文 / Google Brain 团队软件工程师 Mingxing Tan 


卷积神经网络 (CNN) 现已广泛应用于图像分类、面部识别、物体检测和其他许多领域。但遗憾的是,由于移动端模型需要小巧、快速、准确,所以为移动设备设计 CNN 非常具有挑战性。虽然科研人员已经为设计和改进移动端模型做出了巨大努力,先后推出 MobileNet 和 MobileNetV2 等模型,但人工创建高效率模型依旧面临挑战,因为有太多可能性需要考虑。在 AutoML 神经架构搜索最新进展的启发下,我们希望了解移动端 CNN 模型的设计是否也可以从 AutoML 方法中获益。

在《MnasNet:面向移动端的平台感知神经架构搜索》(MnasNet: Platform-Aware Neural Architecture Search for Mobile) 一文中,我们探讨了一种使用强化学习设计移动端模型的自动化神经架构搜索方法。为了解决移动设备的速度限制,我们明确地将速度信息纳入搜索算法的主要奖励函数中,以便该搜索能够识别在准确度和速度之间达到良好折中的模型。通过这种方式,MnasNet 能够找到运行速度比手工设计的最先进的 MobileNetV2 模型快 1.5 倍,比 NASNet 快 2.4 倍的模型,同时达到相同的 ImageNet top 1 准确率。

在以往的架构搜索方法中,需要通过另一个代理(例如 FLOPS)来考虑模型速度,而我们的方法则是通过在特定平台(例如本研究中使用的 Pixel 手机)上执行模型来直接测量模型速度。鉴于每类移动设备都有其自己的软件和硬件特质,并且可能需要采用不同的架构来实现准确度和速度之间的最佳折中,因此使用这种方式,我们可以直接测量在现实作法中可以达到的速度。

关于我们的方法,其整个流程主要由三部分组成:一个基于 RNN 的控制器,用于学习模型架构并进行采取;一个训练器,用于构建和训练模型以获得准确度;还有一个推理引擎,可使用 TensorFlow Lite 在真实手机上测量模型速度。我们构想出了一个多目标优化问题,以期同时实现高准确度和高速度,并且采用带有自定义奖励函数的强化学习算法来寻找帕累托最优解(例如,能够达到最高准确度但又不会拉低速度的模型)。


移动端自动化神经架构搜索方法的完整流程


为了在搜索灵活性和搜索空间大小之间保持恰当的平衡,我们提出了一种新的因式分解层级搜索空间,该空间将卷积神经网络因式分解为一系列区块,然后使用层级搜索空间来确定每个区块的层结构。由此,我们的方法允许不同的层使用不同的运算和连接。与此同时,我们强制每个区块中的所有层共享同一个结构,因此与扁平的逐层搜索空间相比,我们的搜索空间大小减少了几个数量级。


我们的 MnasNet 网络从新的因式分解层级搜索空间中采样,显示出整个网络架构中的层多样性

 

我们在 ImageNet 分类和 COCO 物体检测上测试了这种方法的有效性。我们的试验在典型移动速度限制下实现了新的最高准确度。特别是,下图所示为该网络在 ImageNet 上的结果。


ImageNet 的准确度和推理延迟时间对比

MnasNets 是我们的模型


在相同的准确度下,MnasNet 模型的运行速度比手工设计的最先进的 MobileNetV2 模型快 1.5 倍,并且比 NASNet 快 2.4 倍,而 NASNet 也是使用架构搜索的方法。在应用压缩和激活优化方法后,我们的 MnasNet+SE 模型实现了 76.1% 的 ResNet-50 level top-1 准确率,并且参数数量是 MnasNet 的 1/19,乘加运算数量是 MnasNet 的 1/10。在 COCO 物体检测方面,我们的模型系列实现了比 MobileNet 更高的准确度和更快的速度,并且在 1/35 的计算成本下实现了与 SSD300 模型相差无几的准确度。

我们很高兴看到我们的自动化方法可以在多个复杂的移动视觉任务上表现出最佳性能。未来,我们计划将更多运算和优化方法纳入我们的搜索空间,并将其应用到更多移动视觉任务中,例如语义分割。


更多 AI 相关阅读:

· Google BigQuery 中的机器学习

· 保护用户免受扩展程序加密劫持

·  全新 AIY Edge TPU 开发板惊艳亮相



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/0D0z5AMJsl
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/22810
 
505 次点击