如何让机器学习从云端走向边缘?你想了解的都在这儿~

一直以来,科幻小说和电影都将机器刻画成拥有完全自主能力和智慧的存在,远超普通人类。这些内容让人倍感激动,并提出了一些具有挑战性的问题,但是我们距离能将这些虚拟构建的内容变成能够在真实世界中存在的机器还有多远呢?

“”

就像每部优秀的电影一样,技术进步的条件也是:

  • 具有足够的利益驱动
  • 基础足够牢靠
  • 切实可行的商业案例
  • 优秀的人才配合实施计划

现在,所有这些条件都已经具备,机器学习的发展势头也非常迅猛,已经广泛用于各种范围的应用,例如:语音识别和控制、人脸识别和身份识别、智能检测和手势控制、物体检测和识别、异常检测和增强现实等。

“”

在我们深入探讨之前,需要先解释一些常见的机器学习术语↓↓↓

“”

人工智能(AI):是一个非常宽泛的概念,是指使用机器完成“智能”的事情并像人一样能够决策和行动。在这一领域的解决方案一直都非常专业且门槛很高。

机器学习(ML):是实施AI的众多方法之一。这个概念是向自学习机器发送大量数据,让它们学习如何自行判断并完成任务,而不需要针对每个行为进行明确编程。这样的事情正在发生,并且迅速得到广泛应用。

深度学习:是实施机器学习的众多方法之一,通常使用神经网络(NN)完成学习阶段,来自动决定最相关的数据部分,加以分析,进而推理出最合适的响应。NN技术在训练阶段需要海量数据,因此,这一方面的研究和发展还有很大的提升空间。

1、平衡机器学习的性能与成本

机器学习研究和开发之初使用的是全球最强大的计算机,而且许多训练和推理仍需在云端的超级计算机和服务器上完成。但是现在,技术已经进步到足以将机器学习从云端移动到边缘,这样更实用。

我们为什么要在边缘实施机器学习?主要是为了提升用户体验。人们不希望设备花费太长时间来识别人脸和服从命令。如果在云端完成识别和响应,这很可能出现延迟、降低可靠性,甚至会出现不合适的响应。

服务型机器人、无人机和自动驾驶车辆等可以移动的机器对边缘端机器学习具有更大的需求,因为它们必须持续收集传感器输入、推理出设备目前的状态并在毫秒内决策下一步行动。物理定律限制了通过无线连接到遥远的云端服务器来进行如此密集的数据收集和实时响应。简而言之,可以移动的自动化机器需要完全独立、可靠的机载学习和决策制定。

许多人和机器都需要保护隐私、保护重要数据和通信内容,以防遭受黑客攻击和复制。我们发现,防止未经授权的应用使用语音、视频和传感器数据的需求越来越高。显而易见,当原始数据存放在本地边缘机器上时,很少甚至不需要向云端传输数据,这样更容易保护用户的安全与隐私。

最后,技术成本已经降低到足够低的水平,以便将机器学习处理应用在楼宇、家庭和车内的边缘设备中。现有的云端带宽、处理和存储费用可在以后进一步降低甚至消除,这可以抵消将机器学习从云端迁移到各类型边缘设备或传感器节点所带来的成本。

2、开启机器学习革新

基于Arm技术的处理平台,内超广泛、可扩展性超高、它可以允许任何开发扩展或收缩,以针对每个特定用例制定高性价比解决方案。这会使软件和平台得以高度再利用,并降低维护和拥有成本。

“”

作为开展机器学习的第一步,许多NN解决方案在复杂的集中式计算平台上建造训练模型或推理引擎,之后还可以在边缘端的小型设备上运行。训练模型或推理引擎是一组数学等式,可以检测或识别对象、语言或预期行为中的变化。

下一步是从大量市面上已经存在的平台中选择一个并将训练模型迁移到这个平台。用于低带宽传感器输入的机器学习通常可以由基于Arm Cortex-M4或Cortex-M7技术的超低成本MCU处理。典型功能包括关键词声学检测、特殊声音或异常情况侦测,例如振动或环境异常变化。对于有限数量的人或单词,人脸和语音识别也可以使用基于Cortex-M的微控制器运行。

随着复杂性的增加,尤其是在使用摄像头传感器输入的情况下,可能会需要使用具有多核处理能力的设备,MIPI-CSI摄像头输入和许多其他集成功能。

“”

有了这些可供选择的硬件解决方案后,接下来我们还需要工具来优化性能、降低系统成本、增加响应时间和准确性,以及优化每个训练模型或推理引擎使用片上资源的方式。

3、机器学习软件开发环境

随着机器学习迁移到边缘,最大的挑战之一是在资源受限的设备上部署机器学习应用,尤其是已经在云中构建机器学习应用的情况下。为了直接在边缘设备上运行,必须优化这些模型并将其与支持特定计算机硬件类型的推理引擎(即CPU、GPU、DSP或机器学习加速器)进行匹配。

恩智浦的eIQ™机器学习软件开发环境支持具有推理引擎、神经网络编译器和优化库的机器学习算法,这些算法专门针对恩智浦MCU、i.MX RT跨界处理器和i.MX应用处理器。eIQ利用了开源技术,并且已完全集成到恩智浦MCUXpresso软件开发套件(SDK)和Yocto开发环境中。可以处理所有机器学习软件的依赖关系,包括将先进的机器学习技术连接到底层计算引擎所需的必要硬件抽象层,从而帮助开发者更轻松地开发完整的系统级应用。

“”

eIQ软件开发环境正在迅速扩展。我们已经部署并优化了其对多种技术的支持,例如CMSIS-NN、TensorFlow、TensorFlow Lite、OpenCV和Arm NN。eIQ软件结合示例应用进行对象检测和语音识别,为在边缘部署机器学习奠定了基础。正在进行或计划进行进一步开发以提供:

  • 基于目前热门的神经网络框架(例如TensorFlow、Caffe和ONNX)导入预训练模型的准则
  • 端到端示例应用演示了典型的客户用例,例如,摄像头推理引擎
  • 支持新兴的神经网络编译器,例如GLOW
  • 一套传统机器学习算法,例如支持矢量机(SVM)和随机森林

4、云端解决方案

尽管在本地计算机上运行机器学习模型有明显的好处,但是我们不能忽视由知名服务供应商提供、基于云的热门机器学习解决方案的优势。他们提供语音、视觉和其他机器学习服务,以及强大的开发工具包,这些工具包易于使用、成本低廉且工作量最少。

本文转载自:NXP客栈
本文作者:Alexandra Dopplinger,工程师、恩智浦工业产品市场营销经理
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理。

点击这里,获取更多关于应用和技术的有关信息
点击这里,获取更多工程师博客的有关信息

推荐阅读