TensorFlow Lite Micro: 嵌入式 TinyML 系统上的机器学习
Tiny Machine Learning (TinyML)是机器学习的新领域。通过将深度学习模型应用于无数物联网设备和微控制器(MCU),我们扩大了人工智能应用的范围并实现了无处不在的智能。然而,由于硬件限制,TinyML 具有一定挑战性,因为内存资源有限,难以容纳为云和移动平台设计的深度学习模型;同时,裸机设备对编译器和推理引擎的支持有限。因此,我们需要对算法和系统栈进行共同设计,以实现 TinyML。在此综述中,我们首先讨论 TinyML 的定义、挑战和应用;接下来,我们调查了最近在 MCUs 上 TinyML 和深度学习的进展;然后,我们介绍了 MCUNet,展示了如何通过系统 - 算法共同设计,在物联网设备上实现 ImageNet 规模的人工智能应用;我们还将解决方案从推理扩展到训练,并介绍了小型设备上的训练技术;最后,我们展示了这个领域的未来发展方向。今天的大型模型可能成为明天的小型模型,TinyML 的范围应该随着时间的推移而不断发展和适应。
Mar, 2024
综述了 TinyML 的背景、各种支持 TinyML 的工具、利用先进技术进行 TinyML 的最新应用以及未来研究方向,TinyML 是一种嵌入式 ML 技术,使 ML 应用程序能够在多个廉价、资源和功耗受限设备上运行
Mar, 2023
近年来微型机器学习(TinyML)的最新进展为低占用嵌入式设备提供了实时的设备端机器学习能力。然而,TinyML 的实际实施面临着独特的挑战。本研究旨在弥合原型设计的单一 TinyML 模型与开发可靠的生产级 TinyML 系统之间的差距: (1) 在动态变化的条件下,嵌入式设备的操作。现有的 TinyML 解决方案主要集中于推断,使用在强大的计算机上进行离线训练的模型,并部署为静态对象。然而,在实际环境中,由于输入数据分布的演变,静态模型可能性能不佳。我们提出在线学习以实现在受限设备上的训练,并使本地模型适应最新的现场条件。(2) 然而,当前的设备端学习方法在部署条件异构和标注数据缺乏的情况下遇到困难,特别是在多设备上应用。 我们引入联邦元学习将在线学习结合在一起,以增强模型的泛化能力,促进快速学习。本方法通过知识共享确保分布式设备之间的最佳性能。(3) 此外,TinyML 的重要优势是被广泛采用。嵌入式设备和 TinyML 模型优先考虑高效率,导致资源的多样性,从内存和传感器到模型架构都具有多样性和非标准化的表示,因此在扩展 TinyML 系统时管理这些资源变得具有挑战性。 我们提出语义管理以进行模型和设备的联合管理。我们通过一个基本的回归示例演示了我们的方法,然后在三个真实的 TinyML 应用中进行评估:手写字符图像分类,关键词音频分类和智能建筑出席检测,验证了我们方法的有效性。
May, 2024
本文介绍了一个新的深度神经网络量化和部署的框架,MicroAI,并研究了在低功耗 32 位微控制器上应用该框架的优化方法和效果。通过对三个不同数据集 (UCI-HAR、Spoken MNIST 和 GTSRB) 的评估,与两种已有的嵌入式推理引擎 (TensorFlow Lite for Microcontrollers 和 STM32CubeAI) 的比较和在 ARM Cortex-M4F 微控制器 (Ambiq Apollo3 和 STM32L452RE) 上的验证,证明了 MicroAI 具有更好的内存和功耗效率。
May, 2021
本文介绍了机器学习在资源受限的微控制器上的应用,使用神经结构搜索算法来设计满足内存、延迟和能耗限制的模型,并通过可微分神经结构搜索算法搜索出了具有低内存使用和低操作计数的 MicroNet 模型,验证该文述方法在视觉唤醒词、音频关键词检测和异常检测等领域的优越性。
Oct, 2020
TinySeg 是一个优化模型的框架,可以在小型嵌入式系统中实现内存高效的图像分割,通过分析目标模型中张量的生命周期并识别长期存在的张量,利用张量溢出和合并提取技术将目标模型的峰值内存使用率降低了 39.3%。
May, 2024
本文提出了一个基于语义 Web 技术的框架,旨在管理 TinyML 模型和 IoT 设备的组合,包括建模信息、组合发现和基准测试,并支持 TinyML 组件的交换和再利用。作者设计了一个神经网络模型本体论,并以 W3C Thing Description 为基础,描述和维护 23 个公共 ML 模型和 6 个 IoT 设备的知识图谱。通过三个案例研究,验证了该框架的有效性和可重复性。
Feb, 2022
本文经验性地研究了适用于设备上的 TinyML 实现的嵌入式开发工具。研究评估了不同抽象级别的开发工具在资源受限的物联网设备上的使用情况,从基本的硬件操作到最小化的机器学习训练部署。分析包括模型训练和推理过程中的内存使用、能源消耗和性能指标以及不同解决方案的可用性。Arduino 框架提供了易于实现的方式,但相比原生选项增加了能源消耗,而 RIOT OS 表现出高效的能源消耗,尽管内存利用率较高,其使用方便性与 Arduino 框架相当。操作系统中没有直接集成某些关键功能,比如 DVFS,凸显了对精细硬件控制的限制。
Mar, 2024