在MCU中实现机器学习需要考虑的几大指标

cathy的头像
cathy 发布于:周四, 07/18/2024 - 17:01 ,关键词:

这些年随着AIOT(人工智能+物联网)的快速发展,以及MCU性能的提升(比如瑞萨推出的基于Cortex-M85内核的RA8系列MCU),在MCU上实现机器学习也变得越来越流行。

近些年,随着机器学习(ML, Machine Learning)的发展,出现了分歧,分为两个规模:

  • 一个是传统的大型ML(云ML),模型越来越大,以实现准确性方面的最佳性能;

  • 另外一个是新兴的微型机器学习(TinyML)领域,其中模型被缩小以适应受限设备(如MCU)以超低功耗执行。

由于TinyML是一个新兴领域,本篇文章将讨论在开发TinyML和当前行业标准纳入TinyML设备基准测试的系统时要考虑的各种参数。

关于TinyML

机器学习本身是一种利用称为神经网络的算法(如下图所示)来教计算机识别模式的技术, 这被外推到各种应用,包括对象识别和自然语言处理。

1.png

另一方面,TinyML可以认为是ML的一个子领域,它追求在廉价且资源和功率受限的设备上启用ML应用程序。
TinyML的目标是以一种极端的方式将机器学习带到边缘,比如电池供电的、基于微控制器(MCU)的嵌入式设备可以实时响应地执行ML任务。这项工作是非常多学科的,需要从硬件、软件、数据科学和机器学习等领域进行优化和最大化。

MCU中实现机器学习几大指标

上面我们了解了关于TinyML的内容,那么在MCU系统中实现机器学习,通常我们要考虑以下四个指标:准确性、功耗、延迟和内存要求。

准确性

在过去十年中,准确性一直被用作衡量机器学习模型性能的主要指标,较大的模型往往优于较小的。在TinyML系统中,准确性也是一个关键指标,但与云ML相比,与其他指标的平衡更为必要。

功耗

由于TinyML系统预计将长时间使用电池运行,因此考虑TinyML模型的功耗(通常为mW量级)至关重要。TinyML模型的功耗将取决于可用的硬件指令集,例如,由于采用了氦气指令集,ARM® Cortex®-M85比ARM® Cortex®-M7更节能。此外,功耗还取决于用于运行模型的底层软件,即推理引擎。例如,与参考内核相比,使用CMSIS-NN库可显著提高性能。

延迟

TinyML系统在端点运行并且不需要云连接,因此,此类系统的推理速度明显优于基于云的系统。在某些用例中,拥有超高的推理速度对于生产就绪至关重要(ms为单位)。与功耗指标类似,延迟取决于底层硬件和软件。

内存

内存是TinyML的一大障碍,它挤压了ML模型以适应资源受限的MCU(内存小于1MB的MCU更常见)。所以,降低内存需求一直是一个挑战。在模型开发过程中,会使用许多技术,例如:剪枝和量化。此外,底层软件发挥着重要作用,因为更好的推理引擎可以更有效地优化模型(更好的内存管理和用于执行层的库)。

由于这四个参数是相关的(往往是准确性和内存之间的负相关,但内存、延迟和功耗之间存在正相关),改进一个参数可能会影响其他参数。在开发TinyML系统时,仔细考虑这些因素很重要。一般的经验法则是根据用例定义所需的必要模型准确性,将各种开发的模型与其他三个指标进行比较。如下图所示,给定已训练的各种模型的虚拟示例。

2.png

不同标记形状表示具有不同超参数的模型架构(超参数,是指机器学习算法中的调优参数,需要人为设定)。这些超参数往往会随着架构大小的增加而提高准确性,但却牺牲了其他3个指标。根据系统定义的用例,显示一个典型的相关区域,由此,只有一个模型具有90%的精度,如果需要更高的精度,则应重新考虑整个系统以适应其他指标的增加。

在此,提一下“基准测试”(benchmark),它是设置可重复标准以比较不同技术、架构、软件等的必要工具。在AI/ML中,准确性是衡量不同模型的关键指标。在嵌入式系统中,常见的基准测试包括CoreMark和EEMBC的ULPMark用以测量性能和功耗。就TinyML而言,MLCommons作为行业标准越来越受到关注,它可以评估前面讨论的四个指标,并且由于TinyML系统的异构性,为了确保公平性,使用了4个具有4个不同AI模型的AI用例,并且必须达到一定水平的准确性才能获得基准测试资格。

目前,瑞萨基于Cortex-M85内核的MCU已经提供了TinyML的各种用例,感兴趣的读者可以进入他们官网进一步了解更多信息。

素材来源 | 瑞萨嵌入式小百科

转载来源:strongerHuang

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 29