了解机器学习 (ML) 的一个子部分,称为微型机器学习 (TinyML)、它是什么、它的应用程序、硬件和软件要求以及它的优势。
机器学习 (ML) 是一个动态而强大的计算机科学领域,它几乎渗透到我们与之交互的所有数字事物中,无论是社交媒体、手机、汽车,甚至是家用电器。
尽管如此,ML还是想去很多地方,但很难到达。 这是因为许多最先进的机器学习模型需要大量的计算资源和功耗来执行推理,这是运行 ML
模型并对其输入数据进行预测的行为。
对高性能计算资源的需求将许多 ML 应用程序限制在云中,在云中,数据中心级别的计算随时可用。
为了让 ML 扩大其覆盖范围,并在此过程中开启应用的新时代,我们必须找到在更小、资源更有限的设备上促进 ML
推理的方法。 这种追求导致了被称为微型机器学习或TinyML的领域(来自 TinyML基金会 这已成为该技术的代名词)。
什么是Tiny Machine Learning or TinyML?
机器学习本身是一种利用称为神经网络的算法(示例如图 1 所示)来教计算机识别模式的技术。 这被外推到各种应用,包括对象识别和自然语言处理。
图1. 感知器神经网络示例的可视化。 图片来源 罗伯特·凯姆。
另一方面,TinyML可以定义为ML的一个子领域,它追求在廉价且资源和功率受限的设备上启用ML应用程序。
TinyML的目标是以一种极端的方式将机器学习带到边缘,其中电池供电的,基于微控制器的嵌入式设备可以实时响应地执行ML任务。 这项工作是非常多学科的,需要从硬件、软件、数据科学和机器学习等领域进行优化和最大化。
该领域在很大程度上是 近年来越来越受欢迎 由于作为其基础的硬件和软件生态系统的成熟。
TinyML 应用程序
无论您是否意识到这一点,TinyML在某种程度上可能是您日常生活的一部分。
TinyML的应用包括:
关键字发现
物体识别和分类
手势识别
音频检测
机器监控
TinyML应用程序在日常生活中的一个例子是Google和Android设备内部使用的音频唤醒词检测模型。 唤醒字检测组件的示例如图 2 所示。
为了在听到“OK Google”字样时“打开”,Android设备使用在DSP上运行的14 kB语音检测ML模型。 许多其他虚拟助手也是如此。
图2. 唤醒字应用程序的组件。 图片由 闫志彤、韩卓伟
其他 哈佛大学学生的TinyML应用示例 包括汽车的公路鹿检测(物体检测示例)、基于音频的蚊子检测(音频识别示例)等等。
TinyML 应用程序中使用的硬件
当涉及到硬件方面的事情时,TinyML令人印象深刻,因为它的目标是在一些非常不起眼的硬件上工作。 从某种角度来看,TinyML的真正目标是以尽可能低的功耗执行ML推理。
皮特·沃登被广泛认为是TinyML之父,在他的 关于该主题的开创性书籍 TinyML应该以 功耗低于 1 mW.这个看似任意的数字的原因是,1 mW
的功耗使设备能够在标准纽扣电池上运行,其合理寿命为数月至一年。 因此,当您考虑TinyML的电源时,请考虑纽扣电池,小型Li-Po电池和能量收集设备。
从计算的角度来看,TinyML不像大多数ML应用程序那样依赖于图形处理单元(GPU),专用集成电路(ASIC)和微处理器。 使用 Arduino
的示例学习套件如图 3 所示。
图3. TinyML学习工具包的示例。 图片由 阿杜伊诺
为了实现1 mW的崇高目标,我们几乎完全局限于功能较弱的计算硬件,如微控制器(MCU)和数字信号处理器(DSP)。 这些设备通常基于
Cortex-M,预计不会超过几百 kB 的 RAM、相似数量的闪存和数十 MHz 的时钟速度。
除此之外,您可能希望在TinyML设备上找到的其他硬件包括传感器(例如,相机,麦克风)和可能的一些BLE(蓝牙低功耗)连接。
TinyML软件:TensorFlow
在很多方面,TinyML背后的工具和概念背后的软件是其最重要的功能。
一般来说,TinyML 开发最流行和构建的生态系统是 用于微控制器的TensorFlow Lite (TF Lite Micro)。 TF Lite
Micro 上 TinyML 的通用工作流程如图 4 所示。
TF Lite Micro 专为资源受限设备上的 ML 任务而设计,MCU 是重点。
TF Lite Micro是一个基于Python的环境,充满了内置库和工具包,用于:
数据采集
预处理
模型体系结构
训练
评估
优化
量化
图4. TensorFlow Lite Micro 工作流程。 图片由 索米特拉·贾格代尔
正如我们将在后面的文章中谈到的, 量化真的是秘诀
这使得TinyML成为可能。 但简而言之,量化是一个过程,通过该过程,您可以降低模型权重和偏差的精度(位大小),从而使模型占用更少的内存、运行速度更快、需要更少的功率
使用量化模型,大多数TinyML设备的应用程序都是用C / C++编写的,以实现最小的开销。
TinyML的优势
TinyML的主要优点是它的可移植性。 在具有微型电池和低功耗的廉价微控制器上运行意味着,使用TinyML,人们可以轻松地以便宜的价格将ML集成到几乎任何东西中。
除此之外,由于计算的本地性质,TinyML还具有提高安全性的好处,即数据不需要发送到云。 在物联网等应用程序中处理个人数据时,这可能很重要。
通过对TinyML领域的扎实介绍,我们现在可以在下一篇文章中更深入地探讨该领域的更多技术方面。
全部0条评论
快来发表一下你的评论吧 !