当前所在位置:首页    行业资讯    MCU厂商,是时候了解TinyML了

MCU厂商,是时候了解TinyML了

  2022-01-11   57  

机器学习 (ML) 是一个充满活力且强大的计算机科学领域,几乎渗透到我们与之交互的所有数字设备中,无论是社交媒体、手机、汽车,甚至是家用电器。
 
尽管如此,ML 想去的地方还有很多,但很难到达。这是因为许多最先进的机器学习模型需要大量的计算资源和功耗来执行推理,这是运行 ML 模型并对其输入数据进行预测的行为。
 
对高性能计算资源的需求将许多 ML 应用程序限制在云中,在云中数据中心级别的计算很容易获得。
 
为了让 ML 扩大其影响范围,并在此过程中开启应用的新时代,我们必须找到方法在更小、资源更受限的设备上促进 ML 推理。这种追求推动来一个被称为 Tiny Machine Learning 或 TinyML(TinyML 基金会的商标术语,已成为该技术的代名词)的技术的诞生。
 

什么是 Tiny Machine Learning 或 TinyML?

 

机器学习本身是一种利用称为神经网络的算法(示例如图 1 所示)来教计算机识别模式的技术。这可以外推到各种应用,包括对象识别和自然语言处理。
 
图 1. 示例感知器神经网络的可视化
 
另一方面,TinyML 可以定义为 ML 的一个子领域,它致力于在廉价且资源和功率受限的设备上启用 ML 应用程序。
 
TinyML 的目标是以一种极端的方式将机器学习带到边缘,电池供电、基于微控制器的嵌入式设备可以实时响应地执行 ML 任务。这项工作非常多学科,需要从硬件、软件、数据科学和机器学习等领域进行优化和最大化。
 
近年来,由于作为其基础的硬件和软件生态系统的成熟,该领域在很大程度上越来越受欢迎。
 

TinyML 应用

 

无论您是否意识到,TinyML 都可能以某种身份成为您日常生活的一部分。
 
TinyML 的应用包括:
  • 关键字发现

  • 物体识别和分类

  • 手势识别

  • 音频检测

  • 机器监控

 
日常生活中 TinyML 应用的一个示例是 Google 和 Android 设备内部使用的音频唤醒词检测模型。唤醒词检测组件的示例如图 2 所示。
 
为了在听到“OK Google”字样时“开机”,Android 设备使用 14 kB 语音检测 ML 模型,该模型在 DSP 上运行。许多其他虚拟助手也是如此。
 
图 2.唤醒词应用程序的组件
 
哈佛学生的其他 TinyML 应用示例包括汽车的公路的鹿检测(物体检测的一个例子)、基于音频的蚊子检测(音频识别的一个例子)等等。
 

TinyML 应用程序中使用的硬件


 
在硬件方面,TinyML 令人印象深刻,因为它旨在处理一些相当不起眼的硬件。从某个角度来看,TinyML 的真正目标是以尽可能低的功耗执行 ML 推理。
 
被广泛认为是 TinyML 之父的Pete Warden在他关于该主题的开创性著作中指出,TinyML 的目标是在低于 1 mW 的功耗下运行。这个看似随意的数字的原因是,1 mW 的消耗使设备能够在标准纽扣电池上运行,合理的使用寿命为数月至一年。因此,当您考虑 TinyML 的电源时,请考虑纽扣电池、小型锂聚合物电池和能量收集设备。
 
从计算的角度来看,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 for Microcontrollers (TF Lite Micro)。TinyML 在 TF Lite Micro 上的通用工作流程如下图 4 所示。
 
TF Lite Micro 专为在资源受限的设备上执行 ML 任务而设计,MCU 是重点。
 
TF Lite Micro 是一个基于 Python 的环境,内置库和工具包,用于:
  • 数据采集

  • 预处理

  • 模型架构

  • 训练

  • 评估

  • 优化

  • 量化

 
图 4. TensorFlow Lite Micro 工作流程
 
在我们看来,量化确实是使 TinyML 成为可能的秘诀。但简而言之,量化是一个降低模型权重和偏差的精度(位大小)的过程,从而使模型占用更少的内存、运行得更快并且需要更少的功率——所有这些都对准确性的影响最小!

 
使用量化模型,大多数 TinyML 设备的应用程序都是用 C/C++ 编写的,以最大限度地减少开销。
 

TinyML 的好处


 
TinyML 的主要优点是它的可移植性。在具有小电池和低功耗的廉价微控制器上运行意味着,使用 TinyML,人们可以很容易地将 ML 以便宜的价格集成到几乎任何东西中。
 
除此之外,由于计算的本地特性,TinyML 还具有提高安全性的优势,即无需将数据发送到云端。在物联网等应用程序中处理个人数据时,这可能很重要。

如有侵权,请联系删除。