由于计算机体系结构的革命性发展以及人工智能和机器学习应用的突破性进展,嵌入式开发中的嵌入式系统技术正在经历一个转型时期。
根据设计,机器学习模型使用大量资源,并需要强大的计算机基础设施。因此,它们通常是具有更多资源的运行设备,如PC或云服务器,在这些设备上数据处理是高效的。由于机器学习和高级算法的最新发展,机器学习应用程序、ML框架和处理器计算能力现在可以直接部署在嵌入式设备上。这被称为嵌入式机器学习(E-ML)。
使用嵌入式机器学习技术,处理过程更接近传感器收集数据的边缘。这有助于消除带宽和连接问题、通过互联网传输数据的安全漏洞以及数据传输功耗等障碍。此外,它支持使用神经网络和其他机器学习框架,以及信号处理服务、模型构建、手势识别等。根据最大化市场研究小组的报告,2021至2026年间,嵌入式人工智能的全球市场预计将以5.4%的复合年增长率扩张,达到约388.7亿美元。
1.嵌入式机器学习的基本概念
今天,在嵌入式开发中,嵌入式计算系统正在迅速扩展到人类事业的各个领域,在可穿戴健康监控系统、无线监控系统、物联网(IoT)网络系统、家庭自动化智能设备以及汽车防抱死制动系统等领域都有实际应用。
用于嵌入式平台的常见ML技术包括SVM(支持向量机)、CNN(卷积神经网络)、DNN(深度神经网络),k-NNs(k-Nearest Neighbour)和Naive Bayes。使用这些技术进行有效的训练和推理需要大量的处理和存储资源。即使有深度缓存内存结构、多核改进等,通用CPU也无法处理深度学习模型的高计算需求。可以通过利用诸如GPU和TPU处理器的资源来克服这些限制。这主要是因为复杂的线性代数计算(如矩阵和向量运算)是非平凡的深度学习应用程序的组成部分。深度学习算法可以在GPU和TPU上非常有效和快速地运行,这使它们成为理想的计算平台。
在嵌入式硬件上运行机器学习模型被称为嵌入式机器学习。后者根据以下基本原则工作:当模型执行和推理过程发生在嵌入式设备上时,ML模型(如神经网络)的训练发生在计算集群或云中。与普遍的观点相反,事实证明,深度学习矩阵运算可以在CPU能力受限的硬件上,甚至在16位/32位微控制器上有效执行。在嵌入式开发中,使用极小硬件(如超低功耗微控制器)运行ML模型的嵌入式机器学习类型称为TinyML。
机器学习方法可分为三大类:强化学习、无监督学习和监督学习。在监督学习中,可以学习标记数据;在无监督学习中,可以发现未标记数据中的隐藏模式;在强化学习中,系统可以通过试错方法从其直接环境中学习。学习过程被称为模型的“训练阶段”,它经常利用具有大量处理能力的计算机架构(如几个GPU)来执行。然后将训练后的模型应用于新数据,以在学习后做出智能决策。实现的推理阶段被称为这个过程。物联网和移动计算设备,以及处理资源有限的其他用户设备,通常用于进行推断。
2.机器学习技术
嵌入式机器学习的应用领域
智能传感器系统
机器学习技术在嵌入式传感器网络系统中的有效应用引起了极大的兴趣。许多机器学习算法,包括GMM(高斯混合模型)、SVM和DNN,正在移动自组织网络、智能穿戴系统和智能传感器网络等重要领域得到了实际应用。
异构计算系统
包含多种类型处理核心的计算机系统被称为异构计算系统。在嵌入式开发中,大多数异构计算系统被用作加速单元,以将计算要求较高的任务从CPU转移并加快系统速度。异构多核架构是一个应用领域,在该领域中,为了加快计算成本高昂的机器学习技术,中间件平台将GPU加速器集成到现有的基于CPU的架构中,从而提高ML数据模型集的处理效率。
嵌入式FPGA
由于其低成本、高性能、能源经济性和灵活性,FPGA在计算行业中越来越受欢迎。它们经常用于预实现ASIC架构和设计加速单元。使用FPGA和基于OpenCL的FPGA硬件加速的CNN优化是FPGA架构用于加速机器学习模型执行的应用领域。
3.优势
高效的网络带宽和功耗
在嵌入式硬件上运行的机器学习模型使直接从数据源提取特征和见解成为可能。因此,不再需要将相关数据传输到边缘或云服务器,从而节省了带宽和系统资源。微控制器是许多节能嵌入式系统中的一种,它们可以在不充电的情况下长时间运行。与在消耗大量电力的移动计算系统上执行的机器学习应用程序相比,TinyML可以在更大程度上提高嵌入式平台的机器学习应用的电力自主性。
全面隐私
在嵌入式开发中,嵌入式机器学习无需在云服务器上进行数据传输和存储。这降低了数据泄露和隐私泄露的可能性,这对于处理个人信息、医疗数据、知识产权(IP)信息和机密信息等敏感数据的应用程序至关重要。
低延迟
嵌入式ML支持低延迟操作,因为它消除了向云传输大量数据的需求。因此,当涉及到在各种工业场景中实现现场驱动和控制等实时用例时,嵌入式机器学习是一个很好的选择。
嵌入式机器学习应用程序是使用能够在资源有限的节点上创建和部署机器学习模型的方法和工具构建的。在嵌入式开发中,它们为希望最大化数据价值的企业提供了大量创新机会,它还帮助优化其机器学习应用程序的带宽、空间和延迟。