[关闭]
@sambodhi 2018-05-14T11:02:49.000000Z 字数 3186 阅读 3800

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

作者|Neil Tan
译者|Sambodhi
编辑|Debra

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

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

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

Mbed开发板一览表(来源:https://os.mbed.com/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.researchgate.net/figure/Projection-into-a-3D-space-via-PCA-of-the-MNIST-benchmark-dataset-This-data-set_fig3_261567034)

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

传感器融合

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

利用机器学习和其他信号处理算法,不同的现成传感器可以组合成一个合成传感器。这种类型的传感器能够探测复杂的事件。与基于相机的系统相比,这些传感器的成本更低、更节能。访问此URL(https://techcrunch.com/2017/05/11/google-funded-super-sensor-project-brings-iot-powers-to-dumb-appliances/)可以找到超级传感器的一个很好的例子。

自我改善的产品

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

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

带宽

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

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

迁移学习

在上面的带宽示例中,神经网络分布在设备和云之间。在某些情况下,只需改变云中的层,就可以为完全不同的应用重新设计网络。

迁移学习的图形化表示(来源:https://www.slideshare.net/ckmarkohchang/applied-deep-learning-1103-convolutional-neural-networks)

云中的应用程序逻辑是相当容易更改的。网络层的这种热交换使相同的设备可以用于不同的应用。修改部分网络以执行不同的任务是迁移学习的一个例子。

生成模型

与上述带宽和迁移学习示例相辅相成,通过精心设计,可以从数据中提取的特征重建原始数据的近似值。这可能使边缘设备能够以最小的云输入生成复杂的输出,并且具有数据解压缩的应用。

总结

人工智能可以帮助边缘设备变得更智能,改善隐私和带宽的使用。不过,截至本文撰稿时,尚未出现在MCU上部署的TensorFlow模型的已知框架。我们创建了uTensor,希望能够促进边缘计算的发展。

要想让低功耗和低成本的人工智能硬件与MCU一样常见,这可能还需要时间。此外,随着深度学习算法的快速变化,拥有灵活的软件框架来跟上人工智能/机器学习的研究是有意义的。

uTensor将继续利用最新的软件和硬件的改进,例如ARM的Cortex-M机器学习API CMSIS-NN。这些都将集成到uTensor中,以确保ARM硬件上的最佳性能。开发人员和研究人员将能够使用uTensor轻松测试他们的最新想法,如新算法、分布式计算或RTL。

我们希望这个项目能让所有对这个领域感兴趣的人在一起工作。毕竟,合作是成功的关键。

原文链接: Why Machine Learning on The Edge?
https://towardsdatascience.com/why-machine-learning-on-the-edge-92fac32105e6

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注