分享

为什么要在边缘设备部署机器学习?

 云锁人工智能 2018-08-02
AI 前线导读:在物联网的世界中,一个新的概念越来越流行:智能边缘计算。边缘指物联网的每个边缘设备都具备处理数据的能力,而不是简单将数据储存在云中。但要做起来并不容易。这个世上从不缺乏高手。这不,就有人研发了 uTensor,它是一个基于 mbed 和 TensorFlow 的极端轻量级深度学习推理框架,是特别为 ARM Cortex-M 微程序控制器(MCU)开发的神经网络函数库。AI 前线翻译了 uTensor 项目的创建者 Neil Tan 撰写的文章 Why Machine Learning on The Edge? 。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

软件工程可以很有趣,特别是当你和志同道合的人朝着一个共同目标努力的时候。自从我们启动 uTensor 项目(一种微程序控制器(MCU)人工智能框架)以来,很多人都问我们:为什么要在 MCU 上使用边缘计算呢?难道云和应用程序处理器还不足以构建物联网系统吗?这的确是一个令人深思的问题。我将在本文尝试解释我们项目的初衷,希望能够让读者们发现,它们也是很有趣的。

TL;DR: 在 MCU 上的人工智能可以支持更便宜、更低功耗和更小型的边缘设备。它减少了延迟,节省了带宽,改善了隐私,并支持更智能的应用程序。

Mbed 开发板一览表(来源:https://os./platforms/)

MCU 是什么?

MCU 是成本非常低的微型计算设备。它们经常出现在 IoT 边缘设备的核心。每年有 150 亿片 MCU 出货,这些芯片无处不在。它们的低能耗意味着可以在纽扣电池上运行数月而无需散热器。它们的简单性有助于降低系统的总体成本。

AI 前线注:MCU:微程序控制器(Microprogrammed Control Unit),也称为单片机。MCU 是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU、随机存储器 RAM、只读存储器 ROM、多种 I/O 口和中断系统、定时器 / 计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D 转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪 80 年代,由当时的 4 位、8 位单片机,发展到现在的 300M 的高速单片机。

未发挥的潜能

MCU 的计算能力在过去的几十年里一直在增长。然而,在大多数的物联网应用中,它们只是将数据从传感器转移到云。通常 MCU 的时钟频率为几百 MHz,并封装有数百 KB 的 RAM。考虑到时钟速度和内存容量,转发数据是一件易如反掌的事。事实上,大多时候 MCU 都处于空闲状态。让我们来说明一下:

典型 IoT 应用的 MCU 占用时间与空闲时间的示意图

上图所示为 MCU 的计算预算。绿色区域显示 MCU 繁忙时,可以包括:

  • 网络

  • 传感器读数

  • 更新显示

  • 定时器和其他中断

蓝色区域代表闲置的、未开发的潜力。想象一下,在现实世界中部署了数以百万计的此类设备,它们都是大量未被利用的计算能力。

为边缘设备增加人工智能

如果我们能利用这种力量呢?在边缘设备上我们能做得更多吗?事实证明,人工智能用在边缘设备非常合适。让我们看看一些可以在边缘设备应用人工智能的方法:

推论

投影到 MNIST 基准数据集的 3D 空间(通过 PCA)。(来源:https://www./figure/Projection-into-a-3D-space-via-PCA-of-the-MNIST-benchmark-dataset-This-data-set_fig3_261567034)

简单的图像分类、手势识别、声音检测和运动分析,都可以在边缘设备上完成。由于只传输最终的结果,因此我们可以最大限度减少延迟,提高隐私性并节省物联网系统中的带宽。左图显示了投影空间中的经典手写数字数据集 MNIST。

传感器融合

超级传感器的图例,包括加速计、麦克风、磁力计等。(来源:https://www./s/607837/this-mega-sensor-makes-the-whole-room-smart/)

利用机器学习和其他信号处理算法,不同的现成传感器可以组合成一个合成传感器。这种类型的传感器能够探测复杂的事件。与基于相机的系统相比,这些传感器的成本更低、更节能。

访问此 URL:https:///2017/05/11/google-funded-super-sensor-project-brings-iot-powers-to-dumb-appliances/

可以找到超级传感器的一个很好的例子。

自我改善的产品

联合学习的一个实例(来源:https://research./2017/04/federated-learning-collaborative.html)

设备可以在现场部署后进行持续改进。Google 的 Gboard 使用了一种称为联合学习(federated learning)的技术,它涉及到每个设备收集数据并进行个别改进。这些单独的改进集中在一个中心服务上,然后每个设备都被更新到合并的结果。

带宽

可以对神经网络进行分区,这样就可以在设备上对某些层进行评估,并在云中对其余的层进行评估。这样做可以平衡工作负载和延迟。网络的初始层可以被视为特征抽象函数。当信息通过网络传播时,它们会抽象为高级特征。这些高级特性比原始数据占用的空间要小得多,从而使它们更容易通过网络传输。IoT 通信技术,如 Lora 和 NB-IoT 的有效载荷大小非常有限。特征提取有助于在有限的有效负载中打包最相关的信息。

IoT 的 Lora 网络设置的一个实例(来源:https://blog./lora-and-2g-in-one-module/)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多