人工智能
TinyML:应用、限制及其在物联网和边缘设备中的使用

近年来,人工智能(AI)和 机器学习 机器学习 (ML) 不仅在工业界,在学术界也经历了迅猛发展,其普及度和应用范围也显著提升。然而,当今的机器学习和人工智能模型存在一个主要限制:它们需要强大的计算和处理能力才能达到预期的结果和准确度。这通常限制了它们的使用,使其只能在拥有强大计算能力的高性能设备上使用。
但鉴于嵌入式系统技术的进步以及物联网行业的实质性发展,我们希望将机器学习技术和概念的使用纳入资源受限的嵌入式系统中,以实现无处不在的智能。 将 ML 概念应用到嵌入式和 IoT 系统中的愿望是开发 TinyML 的主要推动因素,TinyML 是一种嵌入式 ML 技术,允许在多个资源受限、功耗受限且廉价的设备上使用 ML 模型和应用程序。
然而,在资源受限的设备上实施机器学习并不简单,因为在计算能力较低的设备上实施机器学习模型在优化、处理能力、可靠性、模型维护等方面都面临着挑战。
在本文中,我们将深入探讨 TinyML 模型,了解其背景、支持 TinyML 的工具以及使用先进技术的 TinyML 应用。 那么让我们开始吧。
TinyML 简介:为什么世界需要 TinyML
物联网或物联网设备旨在利用边缘计算,这是一种计算范式,指的是用户附近的一系列设备和网络,能够无缝、实时地处理来自彼此互连的数百万个传感器和设备的数据。 物联网设备的主要优点之一是它们需要较低的计算和处理能力,因为它们可部署在网络边缘,因此内存占用较低。
此外,物联网设备严重依赖边缘平台来收集和传输数据,因为这些边缘设备收集传感数据,然后将它们传输到附近的位置或云平台进行处理。 边缘计算技术对数据进行存储和计算,同时也提供了支持分布式计算所需的基础设施。
物联网设备中边缘计算的实施提供了
- 为最终用户提供有效的安全性、隐私性和可靠性。
- 更低的延迟。
- 对应用程序和服务的更高可用性和吞吐量响应。
此外,由于边缘设备可以在传感器和云端之间部署协作技术,因此数据处理可以在网络边缘进行,而不是在云平台进行。 这可以实现有效的数据管理、数据持久性、有效交付和内容缓存。 此外,在处理 H2M 或人机交互的应用程序中实施物联网以及现代医疗保健边缘计算提供了一种显着改善网络服务的方法。
物联网边缘计算领域的最新研究证明了在多个物联网用例中实施机器学习技术的潜力。然而,主要问题是传统的机器学习模型通常需要强大的计算和处理能力以及高内存容量,这限制了机器学习模型在物联网设备和应用程序中的实施。
此外,当今的边缘计算技术缺乏高传输容量和有效的节能,导致异构系统,这是需要和谐和整体基础设施(主要用于更新、训练和部署机器学习模型)的主要原因。 为嵌入式设备设计的架构提出了另一个挑战,因为这些架构取决于不同设备的硬件和软件要求。 这是难以为物联网网络构建标准机器学习架构的主要原因。
此外,在当前场景中,由于网络实现的计算密集性,不同设备生成的数据被发送到云平台进行处理。 此外,机器学习模型通常依赖深度学习、深度神经网络、专用集成电路 (ASIC) 和图形处理单元 (GPU) 来处理数据,并且通常具有更高的功耗和内存要求。 由于明显缺乏计算和处理能力以及有限的存储解决方案,在物联网设备上部署成熟的机器学习模型并不是一个可行的解决方案。
对低功耗嵌入式设备小型化以及优化 ML 模型以提高功耗和内存效率的需求,为 TinyML 铺平了道路,TinyML 旨在在边缘物联网设备和框架上实施 ML 模型和实践。 微型机器学习 支持物联网设备上的信号处理并提供嵌入式智能,从而无需将数据传输到云平台进行处理。 在物联网设备上成功实施 TinyML 最终可以提高隐私性和效率,同时降低运营成本。 此外,TinyML 更具吸引力的是,在连接不足的情况下,它可以提供本地分析。
TinyML:简介和概述
TinyML 是一种机器学习工具,能够针对音频、视觉和语音等不同传感模式执行设备上分析。 基于 TinyML 工具构建的机器学习模型具有低功耗、内存和计算要求,这使得它们适合嵌入式网络和依靠电池供电的设备。 此外,TinyML 的低要求使其非常适合在 IoT 框架上部署 ML 模型。
在当前场景中,基于云的机器学习系统面临着一些困难,包括安全和隐私问题、高功耗、可靠性和延迟问题,这就是为什么要预装软硬件平台上的模型。 传感器收集模拟物理世界的数据,然后使用 CPU 或 MPU(微处理单元)进行处理。 MPU 可满足边缘感知 ML 网络和架构支持的 ML 分析支持的需求。 Edge ML 架构与 ML 云通信以传输数据,TinyML 的实施可以显着促进技术进步。
可以肯定地说,TinyML 是软件、硬件和算法的融合,它们相互同步工作以提供所需的性能。 可能需要模拟或内存计算才能为不支持硬件加速器的硬件和物联网设备提供更好、更有效的学习体验。 就软件而言,使用 TinyML 构建的应用程序可以在 Linux 或嵌入式 Linux 等平台以及支持云的软件上部署和实现。 最后,基于 TinyML 算法构建的应用程序和系统必须支持需要低内存大小模型的新算法,以避免高内存消耗。
总而言之,使用 TinyML 工具构建的应用程序必须在存在高质量数据的情况下优化 ML 原理和方法,同时设计紧凑的软件。 然后,这些数据必须通过二进制文件进行闪存,这些文件是使用在具有更大容量和计算能力的机器上训练的模型生成的。
此外,在 TinyML 工具上运行的系统和应用程序在更严格的约束下执行时必须提供高精度,因为支持 TinyML 含义的低功耗需要紧凑的软件。 此外,TinyML 应用程序或模块可能依赖电池电源来支持其在边缘嵌入式系统上的操作。
话虽如此,TinyML 应用程序有两个基本要求
- 能够扩展数十亿个廉价嵌入式系统。
- 将代码存储在容量低于几 KB 的设备 RAM 上。
TinyML 使用先进技术的应用
TinyML 成为 AI 和 ML 行业热门话题的主要原因之一是它的潜在应用,包括基于视觉和语音的应用、健康诊断、数据模式压缩和分类、脑控接口、边缘计算、表型组学、自我- 驾驶汽车,等等。
基于语音的应用程序
语音通讯
通常,基于语音的应用程序依赖于传统的通信方法,其中所有数据都很重要并且要进行传输。 然而,近年来,语义通信已成为传统通信的替代方案,因为在语义通信中,仅传输数据的含义或上下文。 可以使用 TinyML 方法跨基于语音的应用程序实现语义通信。
当今语音通信行业最流行的一些应用是语音检测、语音识别、在线学习、在线教学和面向目标的通信。 这些应用通常具有较高的功耗,并且对主机设备也有较高的数据要求。 为了克服这些要求,引入了新的 TinySpeech 库,允许开发人员构建低计算架构,该架构使用深度卷积网络来构建低存储设施。
为了使用 TinyML 进行语音增强,开发人员首先解决了语音增强模型的大小问题,因为它受到硬件限制和约束的影响。为了解决这个问题,我们部署了结构化剪枝和整数量化的 RNN(循环神经网络)语音增强模型。结果表明,模型大小减少了近 12 倍,而运算量减少了近 3 倍。此外,必须有效利用资源,尤其是在资源受限的语音识别应用程序上部署时。
因此,为了划分流程,针对基于 TinyML 的语音和语音识别应用提出了一种协同设计方法。 开发人员利用开窗操作对软硬件进行分区,对原始语音数据进行预处理。 该方法似乎有效,因为结果表明硬件能耗有所下降。 最后,还有可能在软件和硬件协同设计之间实现优化分区,以便在不久的将来获得更好的性能。
此外,最近的研究提出在语音识别系统中使用基于电话的传感器,该提案旨在用 Conv1D 层取代 LSTM 预测器,以减少边缘设备的计算需求。 实施后,该提案返回了积极的结果,因为 SVD 或奇异值分解已成功压缩模型,而使用 WFST 或基于加权有限状态换能器的解码则在模型改进偏差方面带来了更大的灵活性。
许多突出的语音识别应用(例如虚拟或语音助手、实时字幕和语音命令)都使用机器学习技术来工作。 目前流行的语音助手(例如 Siri 和 Google Assistant)每次收到一些数据时都会对云平台进行 ping 操作,这会引起与隐私和数据安全相关的重大担忧。 TinyML 是解决该问题的一个可行的解决方案,因为它的目标是在设备上执行语音识别,并消除将数据迁移到云平台的需要。 实现设备上语音识别的方法之一是使用 Tiny Transducer,这是一种语音识别模型,它使用 DFSMN 或深度前馈顺序内存块层与一个 Conv1D 层(而不是 LSTM 层)相结合来降低计算要求和网络参数。
助听器
听力损失是全球范围内的一个主要健康问题,人类听到声音的能力通常会随着年龄的增长而减弱,这也是包括中国、日本和韩国在内的人口老龄化国家的一个主要问题。 目前助听器的工作原理很简单,即放大周围所有输入的声音,这使得人们很难区分或区分所需的声音,尤其是在嘈杂的环境中。
TinyML 可能是解决此问题的可行解决方案,因为使用使用助听设备语音识别算法的 TinyLSTM 模型可以帮助用户区分不同的声音。
基于视觉的应用
TinyML 有潜力在处理中发挥关键作用 计算机视觉 基于数据集,因为为了更快的输出,这些数据集需要在边缘平台本身上进行处理。 为了实现这一目标,TinyML 模型在使用 OpenMV H7 微控制器板训练模型时遇到了实际挑战。 开发人员还提出了一种借助 ARM Cortex M7 微控制器来检测美国手语的架构,该微控制器仅适用于 496KB 帧缓冲 RAM。
在边缘平台上实现基于计算机视觉的应用程序 TinyML 需要开发人员克服 CNN 或卷积神经网络的主要挑战,即高泛化误差和高训练和测试精度。然而,该实现并没有有效地推广到新用例中的图像以及带有噪声的背景。当开发人员使用插值增强方法时,模型在测试数据上返回的准确率超过 98%,泛化率约为 75%。

此外,我们还观察到,当开发人员使用插值增强方法时,模型在量化过程中的准确性会下降,但同时模型的推理速度和分类泛化能力也会有所提高。 开发人员还提出了一种方法,进一步提高对从各种不同来源获得的数据进行泛化模型训练的准确性,并测试性能以探索将其部署在便携式智能手表等边缘平台上的可能性。
此外,额外的研究 CNN 表明可以在资源有限的设备上部署 CNN 架构并取得理想的结果。 最近,开发人员能够使用内存占用最小的 TensorFlow lite,在资源有限的 ARM Cortex M7 微控制器上开发一个用于检测医用口罩的框架。 量化后的模型大小约为 138 KB,而目标板上的干扰速度约为 30 FPS。
TinyML 用于基于计算机视觉的应用程序的另一个应用是实现一种手势识别设备,该设备可以夹在手杖上,以帮助视障人士轻松应对日常生活。 为了设计它,开发人员使用了手势数据集,并使用该数据集通过分类算法训练 ProtoNN 模型。 从设置中获得的结果是准确的,设计成本低,并且提供了令人满意的结果。
TinyML 的另一个重要应用是自动驾驶和自动驾驶汽车行业,因为该行业缺乏资源和车载计算能力。 为了解决这个问题,开发人员引入了一种基于 TinyCNN 模型的闭环学习方法,该方法提出了一种在运行时捕获图像的在线预测器模型。 开发人员在为自动驾驶实施 TinyML 时面临的主要问题是,经过训练以处理离线数据的决策模型在处理在线数据时可能无法同样有效。 为了充分最大化自动驾驶汽车和自动驾驶汽车的应用,模型理想情况下应该能够适应实时数据。
数据模式分类和压缩
当前TinyML框架最大的挑战之一是促进其适应在线训练数据。 为了解决这个问题,开发人员提出了一种称为 TinyOL 或 TinyML 在线学习的方法,允许在微控制器单元上进行增量在线学习训练,从而允许模型在物联网边缘设备上更新。 该实现是使用 C++ 编程语言实现的,并在 TinyOL 架构中添加了一个附加层。
此外,开发人员还对 Arduino Nano 33 BLE 传感器板进行了自动编码,训练后的模型能够对新的数据模式进行分类。 此外,开发工作包括为神经网络设计高效且更优化的算法,以支持在线设备训练模式。
TinyOL 和 TinyML 的研究表明,激活层的数量一直是资源有限的物联网边缘设备的一个主要问题。为了解决这个问题,开发人员引入了新的 TinyTL 或 Tiny 迁移学习模型,使物联网边缘设备上的内存利用更加有效,并避免使用中间层进行激活。此外,开发人员还引入了一个全新的偏差模块,称为“精简残差模块”以最大化适应能力,当然也允许特征提取器发现残留特征图。
与全网络微调相比,结果有利于 TinyTL 架构,因为结果显示 TinyTL 减少了约 6.5 倍的内存开销,但精度损失适中。 当对最后一层进行微调时,TinyML 将精度提高了 34%,但精度损失适中。
此外,数据压缩的研究表明 数据压缩算法 必须在便携式设备上管理收集的数据,为了实现这一目标,开发人员提出了 TAC 或 Tiny Anomaly 压缩机。 TAC 的性能优于 SDT 或平开门趋势以及 DCT 或离散余弦变换算法。 此外,TAC 算法的性能优于 SDT 和 DCT 算法,其最大压缩率超过 98%,并且在三种算法中具有优异的峰值信噪比。
健康诊断
Covid-19 全球大流行为 TinyML 的实施打开了新的机会之门,因为它现在是持续检测与咳嗽和感冒相关的呼吸道症状的基本做法。 为了确保不间断的监控,开发人员提出了一种在多模型设置上运行的 CNN 模型 Tiny RespNet,该模型部署在 Xilinx Artix-7 100t FPGA 上,允许设备并行处理信息,具有高效率、和低功耗。 此外,TinyResp模型还以患者的语音、录音和人口统计信息作为输入进行分类,并使用三个不同的数据集对患者的咳嗽相关症状进行分类。
此外,开发人员还提出了一种能够在边缘设备上运行深度学习计算的模型,即名为 TinyDL 的 TinyML 模型。 TinyDL模型可以部署在智能手表和可穿戴设备等边缘设备上进行健康诊断,还能够进行性能分析以减少带宽、延迟和能耗。 为了实现 TinyDL 在手持设备上的部署,专门针对可穿戴设备设计和训练了 LSTM 模型,并将收集到的数据作为输入。 该模型的准确率约为 75% 至 80%,并且还能够处理设备外数据。 这些在边缘设备上运行的模型显示出解决物联网设备当前面临的挑战的潜力。
最后,开发人员还提出了另一个应用程序,通过估计和分析老年人的身体姿势来监测老年人的健康状况。 该模型在设备上使用不可知论框架,允许模型进行验证并快速培育以执行适应。 该模型实现了身体姿势检测算法与面部标志相结合,以实时检测时空身体姿势。
边缘计算
TinyML 的主要应用之一是边缘计算领域,随着物联网设备连接世界各地设备的使用不断增加,设置边缘设备至关重要,因为这将有助于减少云架构上的负载。 这些边缘设备将具有单独的数据中心,使它们能够在设备本身上执行高级计算,而不是依赖云架构。 因此,它将有助于减少对云的依赖,减少延迟,增强用户安全和隐私,并减少带宽。
使用 TinyML 算法的边缘设备将有助于解决当前与功耗、计算和内存要求相关的限制,如下图所示。

此外,TinyML 还可以通过解决无人机当前面临的限制来增强这些机器的使用和应用。 使用 TinyML 可以让开发人员实现具有低延迟和高计算能力的节能设备,可以充当这些无人机的控制器。
脑机接口或 BCI
TinyML 在医疗保健行业有着重要的应用,事实证明它在癌症和肿瘤检测、使用心电图和脑电图信号的健康预测以及情绪智力等不同领域都非常有益。 使用 TinyML 可以使自适应深部脑刺激或 aDBS 成功适应临床适应。 TinyMl 的使用还可以让 aDBS 使用大脑信号的侵入性记录来识别与疾病相关的生物标记及其症状。
此外,医疗保健行业通常需要收集大量患者数据,并需要对这些数据进行处理,以便在疾病早期阶段制定针对性治疗方案。因此,构建一个不仅高效,而且高度安全的系统至关重要。当我们将物联网应用与 TinyML 模型相结合时,一个全新的领域应运而生,即 H-IoT(即医疗保健物联网),其主要应用领域包括诊断、监测、物流、传播控制和辅助系统。如果我们想要开发能够远程检测和分析患者健康状况的设备,那么开发一个具有全球可访问性和低延迟性的系统至关重要。

自主车辆
最后,TinyML 可以在自动驾驶汽车行业中得到广泛的应用,因为这些车辆可以以不同的方式使用,包括人类跟踪、军事目的,并且具有工业应用。 这些车辆的首要要求是在搜索物体时能够有效地识别物体。
到目前为止,自动驾驶汽车和自动驾驶是一项相当复杂的任务,特别是在开发微型或小型车辆时。 最近的发展表明,通过使用 CNN 架构并在 GAP8 MCI 上部署模型,可以改善微型车辆自动驾驶的应用。
挑战
TinyML 是 AI 和 ML 行业中一个相对较新的概念,尽管取得了进展,但它对于边缘和物联网设备的大规模部署仍然没有达到我们的需要。
TinyML设备目前面临的最大挑战是这些设备的功耗。 理想情况下,嵌入式边缘和物联网设备的电池寿命预计可延长 10 年以上。 例如,在理想情况下,使用 2Ah 电池运行的物联网设备的电池寿命应该超过 10 年,因为设备的功耗约为 12 uA。 然而,在给定状态下,带有温度传感器、MCU单元和WiFi模块的物联网架构,电流消耗约为176.4 mA,在这个功耗下,电池只能持续约11小时,而不是所需的 10 年电池寿命。
资源限制
为了保持算法的一致性,确保电源可用性至关重要。鉴于当前情况,TinyML 设备的电源可用性有限是一个关键挑战。此外,内存限制也是一个重大挑战,因为部署模型通常需要大量内存才能有效、准确地运行。
硬件限制
由于硬件设备的异构性,硬件限制使得大规模部署 TinyML 算法变得困难。 有数千种设备,每种设备都有自己的硬件规格和要求,因此,目前需要针对每个单独的设备调整 TinyML 算法,这使得大规模部署成为一个主要问题。
数据集约束
TinyML 模型的主要问题之一是它们不支持现有的数据集。 这对所有边缘设备来说都是一个挑战,因为它们使用外部传感器收集数据,并且这些设备通常具有功率和能源限制。 因此,现有的数据集不能用于有效地训练TinyML模型。
总结
机器学习技术的发展引发了物联网生态系统的一场革命和视角转变。 机器学习模型在物联网设备中的集成将使这些边缘设备能够自行做出智能决策,而无需任何外部人工输入。 然而,传统上,ML 模型通常具有较高的功耗、内存和计算要求,这使得它们能够统一部署在资源通常有限的边缘设备上。
因此,人工智能领域出现了一个新的分支,致力于将机器学习应用于物联网设备,它被称为 TinyML。 TinyML 是一个 ML 框架,即使是资源受限的设备也可以利用 AI 和 ML 的力量来确保更高的准确性、智能和效率。
在本文中,我们讨论了 TinyML 模型在资源受限的 IoT 设备上的实现,这种实现需要训练模型、在硬件上部署模型并执行量化技术。 然而,考虑到当前的范围,准备部署在物联网和边缘设备上的机器学习模型具有多种复杂性和限制,包括硬件和框架兼容性问题。












