扫一扫关注我们

业务咨询

业务咨询×

怎么称呼您:

您的单位是:

您的手机号:

您的邮箱:

您对哪款产品感兴趣:

您想咨询的内容:

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

2018-06-14 19:22:00

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


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

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

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

MCU 是什么?

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

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。

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

原文链接:

https://towardsdatascience.com/why-machine-learning-on-the-edge-92fac32105e6