中电网移动|移动中电网|高清图滚动区

边缘计算如何玩转人工智能?

近些年,人工智能、机器学习以及深度学习这些热点技术,受到了极为广泛的关注,这要归功于很多大型互联网公司对这些技术的应用,例如图像或者语音识别,以及自然语言处理,我们大多数人几乎每天都会使用这样的系统和应用。

当我们考虑机器学习时,首先能够想到的是,通过服务器集群搭建的大数据中心和云平台,对于很多机器学习的应用来讲,这是一个存在了很多年的标准搭建方式。但近些年来,随着硬件能力的不断提升、物联网场景的出现以及成本的下降,大量的应用场景从云端转移到了边缘。在这样的模式转换中,随着智能化越来越接近事件发生地而远离云端,节点设备会变得更加自主化。这些变化导致了很多有趣的应用产生,例如无人机、ADAS辅助驾驶以及可移动的智能机器人,而且这仅仅是个开始。

在本文中,我们将在系统设计层面,综合阐述如何考虑在边缘部署人工智能。通常,一个比较典型的思路,可以归纳为对于任务的理解、算法的选择,以及对于推理模型的训练和部署。 

目标:问题定义

在做任何的方案时,往往最重要恰恰也是经常被忽视的一点就是,识别我们需要解决的问题。我们需要真正地理解问题,这对于我们选择合适的方法和技术至关重要。我们现在尝试要解决的问题,是否是一个需要多层深度神经网络来处理的复杂分类任务? 机器学习并不局限于深度学习和神经网络,实际上,有很多的经典机器学习分类方法,例如K 均值、支持向量机以及统计学模型,这些方法通常使用资源较少,可能只是一个最优解。因此,我们需要通过不断的试验以及试错,来获得最合适的解决问题的方法。从这个角度讲,深度学习是目前人工智能普及的主要驱动力。 

架构:选择正确的工具

应用的需求和限制是驱动带有人工智能算法的最终产品标准的因素。这些需求和限制,与鲁棒性、推理时间、硬件资源以及服务质量相关,这对于考虑边缘方案的部署以及嵌入式平台的选型至关重要。鲁棒性代表了模型输出的精确度,以及防止运算结果过度拟合的能力。一般来讲,模型越复杂(深度和层级),数据集越丰富,鲁棒性越好。

推理时间的需求完全取决于应用场景。对于有些场景,例如自动驾驶,考虑到功能安全因素,需要机器视觉系统的响应时间在毫秒级别,但对于测量值变化缓慢的传感器融合系统来说,需求就没有这样苛刻。推理的速度取决于模型的复杂度,模型的层级越多,需要的计算就越多,从而导致更长的推理时间。这个问题可以通过选择算力资源更为丰富的方案来规避,例如嵌入式GPU、DSP,以及带有OpenCL内核的神经网络加速器。

模型的内存占用是随着神经元数量以及权重的增加而增加的,每个权重都需要作为数据存储在内存中。为了减小模型占用的内存,以及解决一些硬件细节问题,可以将权重从浮点数或双精度数转换为整数进行存储。服务的质量以及系统的可靠性取决于模型的部署。在云端为基础的方案里,连接的需求使得系统的可靠性存在疑问,一旦服务器无法可靠连接,服务就无法获取,决策也就无法正常处理。在这种情况下,边缘部署就成了唯一可行的方案,例如自动驾驶汽车以及需要隔离的环境。基于机器学习的算法,本质上是概率系统,其输出具有一定的不确定性,理解这一点很重要,但在许多情况下,AI系统所做出的预测精准度和可靠度,早已超过人类的判断。至于系统设计是否需要90%乃至99%的概率,是由应用需求决定的。

最后,设计者应该根据解决方案的开发难度以及可扩展性的需要,来考虑采用何种硬件和软件。举例来说,在NVIDA Jetson这个AI应用嵌入式开发平台上运行模型,软件可以无缝运行,从而大大降低软件开发成本。 

Jetson AGX Xavier开发套件

数据 & 训练:获取正确的结果

数据是人工智能的真正货币,通过收集、处理和分析数据,公司可以对业务流程、人类行为或识别模式获得重要而有意义的认知。因此,许多互联网公司,如谷歌或亚马逊(Amazon),在存储和处理可访问的数据方面投入了巨大的资金。在深度学习中,数据集被用来训练神经网络。一般来说,数据集越大,模型的精度和鲁棒性就越好。为了使其不受环境因素(阳光、镜片上的灰尘、噪音、振动等)的影响,通常会对数据进行增强,例如通过旋转图像、剪切或添加人工噪音。

训练模型有很多种方法,简要来说,分为监督学习、无监督学习以及增强学习。对于监督学习,首先数据集会被标注,就图像分类而言,图像和标签是成对出现的。图像通过模型的各层向前传播,每层增加一点抽象,最终得到分类值;输出的分类值与标签进行比较,得到的误差反向传播到模型初始以更新权重。而对于无监督学习,数据集不会被标注,模型会开启自我寻找模式。对于增强学习,电子游戏是个最好的应用用例,增强学习的目标是在与环境的交互过程中,通过一系列的后续行为,对环境的反馈作出响应,达成回报最大化,例如执行一系列从一个地方移动到另一个地方的连续控制决策。 

部署和推理:尚未解决的挑战

大多数的深度神经网络会在大型的GPU 上完成训练。当模型被用来进行推理时,例如通过神经网络的正向传播,以获得对单个样本的预测或者分类,可以使用的平台有很多种。我们可以将用于推理的模型部署在微控制器为Cortex M、Cortex A的设备上,这些微控制器带有GPU、神经网络加速器、FPGA 或者专有ASIC,硬件的选型取决于应用的需要,而它们的区别在于运算能力、功耗以及成本。选择方案时,最棘手的一点在于如何有效且简易地部署模型。一般来说,模型训练通常会在诸如Tensor Flow或者Caffe这样的深度学习框架下完成,这些训练好的模型必须转变成在边缘设备的推理引擎上能够运行的格式。举例来说,使用开放式神经网络交换格式(ONNX),或者是在Cortex M 上使用的ARM CMSISNN文件格式。除此之外,模型还需要根据边缘设备的特点进行进一步的优化,可以通过剪枝(删除接近零的值)、量化(从float32移动到integer)或压缩来优化权重。

模型在边缘设备上的部署和运行,最终还是需要通过推理引擎来实现,这取决于设备供应商为OpenCV或者OpenCL等框架支撑所提供的目标处理器以及组件。令人遗憾的是,这个市场目前碎片化很严重,我们可以看到很多不同版本的SDK 以及工具,并没有一个统一的标准来指导如何在边缘节点上部署和推理。因此,业界对于类似于ONNX这样的统一标准更感兴趣,期待标准化的进一步演进。 

结论:边缘节点将会变得越来越智能!

人工智能已经成为近些年最大的发展趋势,对边缘设备来说,当前采用人工智能最大的障碍就是,缺乏对于在边缘设备端部署和运行模型所需方案的充分理解,以及可能会遇到的问题的充分认识。供应商竞相吸引客户,并将客户所需的解决方案确立为首选标准,艾睿电子拥有独特的地位,能够理解来自合作伙伴的不同方法,并能够识别哪种平台可能对我们的客户最有用。我们正在利用我们在人工智能方面的专长来帮助客户,并揭开边缘计算的神秘面纱。 

猜你喜欢
中电网移动|移动中电网|频道导航区