机器学习模型在日常生活中发挥着重要作用。 在典型的一天中,您很可能会与某些机器学习模型进行交互,因为它们几乎渗透到我们与之交互的所有数字产品中; 例如,社交媒体服务、虚拟个人助理、搜索引擎和电子邮件托管服务的垃圾邮件过滤。
尽管日常生活中有许多机器学习实例,但该技术仍有几个领域未能触及。 原因? 许多机器学习模型,尤其是最先进的 (SOTA) 架构,需要大量资源。 这种对高性能计算能力的需求将一些机器学习应用程序限制在云端——按需计算机系统资源提供者。
除了这些模型的训练计算成本很高之外,对它们进行推理通常也非常昂贵。 如果机器学习要扩大其范围并渗透到更多领域,则需要一种允许机器学习模型在更小、资源更受限的设备上运行推理的解决方案。 对这种解决方案的追求导致了机器学习的子领域,称为微型机器学习 (TinyML)。
在本文中,我们将:
- 定义 TinyML 及其优势
- 涵盖 TinyML 的一些应用
- 讨论 TinyML 应用程序涉及的工作流程要求。
1. 什么是TinyML
“神经网络也称为人工神经网络 (ANN)。 该架构构成了深度学习的基础,深度学习只是机器学习的一个子集,涉及从人脑的结构和功能中汲取灵感的算法。 简而言之,神经网络构成了模仿生物神经元如何相互发送信号的架构的基础。”(来源:PyTorch 教程:构建简单的神经网络)
机器学习是人工智能的一个子领域,它提供了一组算法。 这些算法允许机器从可用的历史数据中学习模式和趋势,以预测相同数据的先前已知结果。 然而,主要目标是使用经过训练的模型将其推论推广到训练数据集之外,从而在不明确编程的情况下提高预测的准确性。
用于这些任务的一种算法是神经网络。 神经网络属于机器学习的一个子领域,称为深度学习,它由通常比机器学习模型训练成本更高的模型组成。
根据 tinyml.org 的说法,“微型机器学习被广泛定义为一个快速发展的机器学习技术和应用领域,包括硬件、算法和软件,能够以极低的功耗(通常为 mW)执行设备上的传感器数据分析 范围及以下,从而实现各种始终在线的用例,并针对电池供电设备。”
TinyML 近年来的增长很大程度上归功于支持它的硬件和软件生态系统的发展。 由于这些技术可以在低能耗系统(即传感器、微控制器等)中实施,机器学习可以以一种极端的方式带到边缘,使此类应用程序能够以实时响应的方式执行。 从本质上讲,这个想法是让机器学习从业者能够事半功倍。
但为什么这如此重要? 让我们来看看为什么 TinyML 如此吸引人。
TinyML 的好处
- 延迟:数据不需要传输到服务器进行推理,因为模型在边缘设备上运行。 数据传输通常需要时间,这会导致轻微的延迟。 删除此要求可减少延迟。
- 节能:微控制器需要非常少量的电力,这使它们能够长时间运行而无需充电。 最重要的是,不需要大量的服务器基础设施,因为不会发生信息传输:结果是节省了能源、资源和成本。
- 减少带宽:推理几乎不需要互联网连接。 有设备上的传感器可以捕获数据并在设备上进行处理。 这意味着没有原始传感器数据不断地传送到服务器。
- 数据隐私:您的数据不会保存在服务器上,因为模型在边缘运行。 不向服务器传输信息增加了数据隐私的保证。
2. 使用场景:如何使用 TinyML?
TinyML 的应用遍布广泛的领域,特别是那些依赖物联网 (IoT) 网络和数据的领域——物联网 (IoT) 基本上是一个嵌入了传感器、软件和其他技术的物理项目网络 通过 Internet 连接到其他设备和系统并与之交换数据。
计算机视觉、视觉唤醒词、关键字识别器、预测性维护、手势识别、工业机器维护等都是常见的 TinyML 用例。 我们也来看看一些使用 TinyML 来驱动应用程序的行业:
农业
可以使用 TinyML 设备监控和收集实时农业和牲畜数据。 瑞典边缘 AI 产品企业 Imagimob 创建了一个用于边缘设备机器学习的开发平台。 来自整个欧盟的 55 个组织与 Imagimob 合作,了解 TinyML 如何提供对作物和牲畜的高效管理。
工业预测性维护
TinyML 可以部署在低功率设备上,以持续监控机器的故障并在问题发生之前进行预测; 这种类型的应用程序拥有帮助企业降低经常因机器故障而产生的成本的潜力。
预测性维护的一个主要示例是 Ping 服务。 他们开发了一种监控设备,可以持续监控风力涡轮机叶片的声学特征,以检测并通知任何变化或损坏。 根据 Ping 的网站,“持续监控操作员可以对叶片损坏做出及时响应,降低维护成本、故障风险和停机时间,并提高风力涡轮机的性能和效率。”
客户体验
随着客户期望的提高,个性化是一种重要的营销工具。 这个想法是为了让企业更好地了解他们的客户,并通过与他们的行为产生共鸣的广告和信息来定位他们。 部署边缘 TinyML 应用程序使企业能够理解用户上下文,包括他们的行为。
3. TinyML应用要求
在构建边缘设备应用程序时,会使用传统机器学习工作流程中部署的许多工具和架构。 主要区别在于 TinyML 允许这些模型在较小的设备上执行各种功能。
用于微控制器的 Tensorflow Lite (TF Lite Micro) 是最流行的边缘设备机器学习框架之一; 它专为在只有几千字节内存的嵌入式系统上实现机器学习任务而设计。
Python 通常是构建机器学习模型的首选语言。 但是,TensorFlow Lite 可以轻松地使用 C、C 或 Java 开发模型并在不连接到互联网的情况下部署它们。
从硬件的角度来看,需要支持的微控制器板才能开始在 TF Lite 中使用 TinyML; 该库目前支持以下微控制器:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- STM32F746 Discovery kit
- Adafruit EdgeBadge
- Adafruit TensorFlow Lite for Microcontrollers Kit
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Wio Terminal: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Synopsys DesignWare ARC EM Software Development Platform
- Sony Spresense
在 TinyML 的支持下,我们可以提高我们每天使用的数十亿台设备的智能程度,例如家用电器和物联网小工具,而无需花费大量资金购买昂贵的硬件或可靠的互联网连接,这些设备经常受到带宽和功率的限制,并且延迟较大。