文摘

我们每天使用2500亿微控制器在电子设备能够运行的机器学习模型。不幸的是,大部分的这些微控制器是高度限制的计算资源,如内存使用或时钟速度。这些都是完全相同的教学资源,发挥关键作用和运行基本的计算机的机器学习模型。然而,在单片机环境中,限制资源有至关重要的影响。因此,一个新的模式被称为小机器学习必须创建满足约束要求的嵌入式设备。在这次审查中,我们讨论了资源优化微型机器学习的挑战和不同的方法,如量化、修剪,和聚类,可用于克服这些资源的困难。此外,我们总结微型机器学习框架的现状,图书馆,开发环境和工具。微型机器学习设备的基准测试是另一件事是关心;这些约束微控制器的硬件和软件的多样性将基准挑战之前,必须解决可以度量性能可靠的嵌入式设备之间的差异。我们也讨论新兴技术和方法,以促进和扩大的小机器学习过程和提高数据隐私和安全。 In the end, we form a conclusion about tiny machine learning and its future development.

1。介绍

全球物联网(物联网)设备发送数据到云在加速,因为这些设备的数量增加,和网络连接的能力提高。同时,不同的云服务平台的数量增加,而这些平台已经成为所有用户更容易。国际数据公司估计,79.4字节的数据将在416亿年产生2025年物联网设备(1]。然而,没有必要将这些数据传输到云当我们可以利用边缘计算功能的物联网设备使用云计算,而是负担网络和广播。此外,应用程序可能还需要地理上分散的,更高的带宽、超低延迟和隐私特性(2]。因此,计算范式发生接近边缘是必要的。因此,物联网设备的使用电脑是一个很重要的问题,解决综合优势。的作者(2]解释分类不同的计算范例如雾,边缘,极端的边缘,和雾计算,可以在文献中找到。在评估中,为了清晰起见,我们使用cloud-fog-edge分类,常见的术语“边缘”的意思是边缘计算发生在云或fog-connected传感器节点或物联网设备。计算或边缘,更具体地说,人工智能(AI)边缘边缘——机器学习(ML)算法的计算优势设备或节点上(3],可细如一个单片机集成物联网无线电。今天,这个词TinyML [4的上下文中)是广泛使用的嵌入式设备的轻量级毫升。此外,这些边缘设备现在位于更经常在物理世界的边缘,测量一些物理量。当定义TinyML硬件或设备,超低功耗是最定义特点,通常小于1兆瓦(5]。以这种方式,处理器范围包括32位Arm Cortex-M7和RISC-V纸浆处理器和下面。TinyML是一个庞大的研究课题,其主要元素可以大致分为数据集,用例,硬件框架和算法和模型(6]。最后,所有这些主要元素或多或少地关注产品的技术改进。

边缘AI也改变传感器,当传感器制造商最近开始在传感器实现人工智能特性的特定于应用程序的集成电路(ASIC)意法半导体等的智能传感器处理单元(ISPU) [7]。此外,意法半导体推出的新一代微机电系统(MEMS)传感器2022年,包括ISPUs和支持设备上学习。另一个自学习人工智能传感器制造商博世Sensortec,承诺不间断数据处理算法在他们的新MEMS-integrated 32位Fuser2超低功耗微控制器(8]。TinyML是一种很有前途的技术,软传感器和传感器数据融合,它最近研究的文章(9,10,11]。

2。挑战和机遇

TinyML有很大的挑战,如单片机有限的计算资源,缺乏一个统一的框架(12,没有开源TinyML数据集(5]。TinyML也有巨大的潜力,因为便宜和广泛的微控制器。TinyML可能降低物联网设备的能源消耗,生命周期成本,推理延迟。同时增加物联网设备的数据隐私和智力水平。表1总结了优点和缺点在物联网设备的应用特性。

边缘计算需要大量的资源从一个物联网设备,作为单片机的计算资源通常是有限的。这个计算的挑战变得无法抗拒如果标准神经网络(NN)使用基于ML算法。出于这个原因,光软件框架、工具和库最近被创建,尤其是使用微控制器,可用于构建TinyML模型。创建模型后,可以用它在源代码实现毫升特性在物联网设备。TinyML然而,最大的挑战之一是缺乏一个统一的框架,它可以使用在各种硬件(12]。正常毫升和TinyML过程之间的根本区别是,后者,创建的模型通常是在一个更高效的计算机,然后移植到单片机,它开始执行基于模型的推理(13- - - - - -15]。推理边缘吞吐量应该健壮没有帧滴(16]。另一件事是,单片机运行一个循环中的ML算法并不是唯一的过程,消耗能量和计算资源优势物联网设备。原始数据测量和通信与其他云服务和物联网设备也resource-expensive过程边缘设备通常必须执行。资源优化成为更重要的物联网设备电池。因此,计算资源优化是一个不断上升的话题已经解决最近TinyML和边缘计算使用不同的技术文章。另一个挑战是缺乏TinyML-focused足够大的开源数据集TinyML基准和学术研究5]。此外,这将是好的,如果数据中的数据与外部传感器发送的数据的时间和空间分辨率17]。

TinyML潜力巨大,因为有2500亿微控制器在我们的打印机,电视,汽车,和心脏起搏器能够运行毫升模型边缘(18]。也估计,25亿年物联网设备将附带TinyML芯片组2030年(19]。这些巨大的估计依靠微控制器却便宜得令人吃惊,这世界才刚刚开始其数字转换和将来需要更多的数据。出于这个原因,TinyML被定义为一个快速增长的领域中机器学习技术(4]。此外,cloud-sourced毫升推理可能花费很多在人工智能应用程序的数据非常中心的一生因为一些应用程序。因此,毫升推理和数据修剪便宜很多执行的数据来源(3]。这种方法还可以节约能源,因为使用物联网无线电是一个比边缘计算来说操作。此外,当毫升推理是由在一个物联网设备本身,它减少了延迟和增加数据隐私和安全20.]。

3所示。资源优化方法

不同的方法和方法可用于保存微控制器的计算资源,如内存和处理器的使用,在使用时TinyML设备。最常用的方法之一,以减少计算负荷基本边缘设备只是把繁重的计算任务边缘网关,是由作者在[21]。然而,这种方法可能会导致能耗上升TinyML设备因为发送和接收的数据是一个耗能的过程比驱动设备内置一个神经网络(NN) [22),这是至关重要的,至少对电池驱动的设备。因此,最好是通过计算手段解决资源问题在边缘设备本身。这可以通过量化、修剪和聚类方法,减少毫升模型大小和处理器使用情况。使用这些权衡方法缺点是通常预测或分类精度降低。

3.1。量化

一个单片机的一个至关重要的计算能力,通常需要得到运行,执行浮点操作。神经网络通常使用高精度32位浮点数据生产和推理模式(23]。然而,这些浮点NN操作需要大量的内存,系统吞吐量,并从单片机时钟速度(24]。在某些情况下,微控制器甚至不能够执行硬件浮点操作;如手臂Cortex-M处理器系列、硬件浮点单元(FPU)是包括从M4F处理器(25]。不过,可以通过计算手段解决这个问题通过使用Arm软件浮点C库,软件浮点仿真(消防工程),或将浮点数转换为定点数据格式(26,27]。32位浮点数据的量化8位定点数据降低了模型的内存占用了75%,和整数操作使单片机运行速度更快28]。在[29日),作者测试调整卷积神经网络(CNN)量化CIFAR-10数据集,30时代,不同重量和激活位宽的组合。结果表明,通过使用4比特定点重量和激活值,获得的分类错误率仅从6.98%提高到8.30%,而浮点值。的作者(30.)也报道好的结果在测试4比特量化精度与不同的数据集;他们报道50%的内存和计算储蓄,只有5%的准确率下降75%。然而,结果还表明,当使用3-bit或准确性开始下跌的速度快得多2比特精度超低,尽管这部分task-dependent。另外,mixed-precision量子化方法,可用于优化模型的权重和激活一些宽度分别到目标单片机内存和CPU的约束(31日]。此外,该方法可用于量化每一层分别对不同位宽度精度,避免数据丢失(最大化32]。然而,寻找最优位宽度对所有层是一个主要的计算挑战。

3.2。二值化

二值化是另一种形式的量化,即位宽度压缩水平最大化减少所有操作数,重量,激活一个位(33,34]。在关键神经网络(bnn),算术运算交换位操作,和XNOR操作,只有关键值(+ 1或- 1)的重量和激活用于所有计算(34]。因此,比特操作减少内存需求(32)和内存访问(32)的数量,最终导致功率效率。在[35),作者介绍了嵌入式的关键神经网络(eBNNs)专门为嵌入式设备的限制。eBNN BNN有相同的网络结构,他们的模型参数是相同的,但是他们不同的计算顺序。计算需要重新排序,因为原始bnn需要大量中间池用于存储临时卷积结果浮点格式,这池消耗很大一部分的嵌入式设备的可用内存。eBNN,这是解决一个池块,一次只能存储一个卷积结果,然后发送max-pooled结果通过批量标准化和二进制激活函数结果矩阵。

3.3。修剪

神经网络的计算复杂度可以降低修剪它的未使用的特性。修剪技术可以分为两大类:结构化和非结构化修剪(36]。结构化修剪意味着删除整个渠道或过滤器,和非结构化修剪意味着删除单个重量连接设置为0 (37]。此外,它可以结合不同的修剪方法。例如,在[38),作者提出了一个方法,非结构化和结构化的修剪方法结合神经结构搜索,自动发现准确的、轻量级的,和稀疏的CNN架构。

归零的过程神经网络模型的权值也称为magnitude-based修剪,它导致一个稀疏模型和能带来6倍提高模型压缩(39]。这种方法的缺点是,它也会导致稀疏矩阵乘法需要额外的计算能力和稀疏的卷积库的使用40,41]。不过,按重量修剪深层神经网络(款)模型内部的冗余,对模型可以简化,其性能可以增加没有减少预测精度(40]。重修剪方法尤其适合微控制器的使用,因为模型尺寸减少的好处是更重要的比额外的计算负载从稀疏的乘法。

结构化修剪改变层的形状和重量矩阵通过删除组体重连接(37]。当整个渠道或过滤器移除,网络的推理速度增加,和模型的大小减少。一个通道级修剪产生一个轻量级的网络,但它可以降低模型的性能和精度在整个网络的宽度减少。因此,建议尽可能使用非结构化的修剪方法。在[40],作者报道意味着性能加速3.54倍和88%大小减少模型当他们测试了不同重量和节点修剪组合与手臂Cortex-M4单片机双向SIMD(单指令多数据)单元为16位定点数学,128 kb SRAM和512 kb的闪存。此外,他们提出的修剪技术,名叫手术刀,SIMD-aware重修剪修剪和节点,获得更好的效率和更小的内存占用为模型比基本的修剪技术。

3.4。聚类

单个重量值的数量可以减少使用过程称为聚类,即模型的重量值替换为一个较小的数量的重心从原始模型权重值计算的组合权重39]。体重集群减少内存使用通过模型压缩和压缩CNN模型可以小于原来的五倍。当体重集群和量化过程相互比较,体重集群带来更高的准确性和压缩比,但仍然可以有效地使用这两个在一起42]。重量与k - means聚类算法聚类过程通常是(42,43]。

4所示。框架和库

在现实TinyML应用程序,除了毫升模型,系统逻辑,有时有一个实时操作系统(RTOS)消耗已经有限的内存资源44];但是,在大多数情况下,使用TinyML应用程序不需要实时操作。然而,rtos TinyML应用程序有时可能会是有用的,因为它们能够运行多线程并发软件执行(45]。在这种多线程TinyML应用程序,操作系统,如Miosix [46),西风操作系统(47),防暴操作系统(48),和手臂mb操作系统可以使用[45]。

缺乏一个统一的TinyML框架导致自定义框架的使用。此外,定制框架,有限的可用性,需要复杂的手动优化时使用不同的硬件。然而,在过去的几年中,TinyML框架发展已经开始进步。第一批框架是手臂uTensor,开源ML微控制器的框架,然后在2019年,uTensor和谷歌TensorFlow开始一起为微控制器框架构建TensorFlow Lite (49]。近年来,手臂也发布了一组全面的网络内核软件库称为皮层的单片机软件界面Standard-NN (CMSIS-NN) [50]。Apache也延长了开源毫升框架涵盖TVM微控制器μ(TVM51]。另一个边缘毫升框架是PyTorch移动,它扩展了PyTorch生态系统(52]。除了这些更通用的框架,是emlearn库,这是一个开源毫升推理引擎从8位微控制器启动架构(53]。

4.1。TensorFlow Lite

TensorFlow Lite (TFLite)是一个开源的深度学习(DL)框架和工具,用于部署和运行毫升模型在Android上,iOS,嵌入式Linux设备和微控制器54]。它支持多种编程语言,如Java、迅速、objective - C, c++和Python。然而,当使用高度受限的微控制器,只有一些几百或几十个字节的RAM, TensorFlow Lite的微控制器(TFLM)是一种有效的工具和TFLite一起使用。TFLM可用于毫升推理在设备上运行,但它还不支持设备上训练。其核心运行时只需要16 kB的内存,它可以用于许多手臂Cortex-M架构微控制器。它也被测试Espressif ESP32和不同的数字信号处理器(DSP) (12]。此外,TFLM不需要一个操作系统,它可以作为一个下载Arduino图书馆。

TensorFlow模型优化工具箱可以用来最小化模型的延迟,内存利用率和功耗。这些工具包括岗位培训等方法量化(PTQ),量化意识培训(咔特),修剪,和集群39]。此外,TFLite包括TensorFlow Lite转换器,它可以用来postquantize已经训练模型,并将其转换为device-optimized TFLite格式(55]。Posttraining整数量化最适合约束微控制器,和方法将重量和激活32位浮点数的位宽8位定点数字。

4.2。皮质Standard-NN单片机软件接口

CMSIS-NN图书馆建立神经网络发展在手臂Cortex-M处理器,和推理基于其功能实现吞吐量4.6倍加速,和减少能源消耗的4.9倍(56]。CMSIS-NN库包含一个特定类别的神经网络函数卷积和支持等功能,激活,完全连接层、池、softmax,基本数学,激活表和数据类型的对话功能(50]。使用8位或16位整数作为参数的函数,但是大部分的功能仍在使用16位乘法和积累(MAC)等操作指令矩阵乘法(56]。这些16位SIMD指令要求具有SIMD的Arm处理器单元,但可以使用CMSIS-NN图书馆与年长的Arm处理器如手臂Cortex-M0没有SIMD单元(57]。然而,手臂Cortex-M0的表现落后于手臂Cortex-M4, M7,使用CMSIS-NN M33, M35P当。

4.3。Apache TVM

近年来,Apache TVM基础设施扩展了μTVM,张量的软件可以管理host-driven执行程序微控制器上运行没有操作系统(51]。μ运行时提供了一个TVM c代码生成器,交叉编译器界面,μ设备接口之间的互操作性μ运行时和TVM TVM AutoTVM,自动张量程序优化。μ利用JTAG TVM(联合测试行动小组)之间的连接和开放的片上调试器(OpenOCD)控制目标设备的处理器和主机,即。台式电脑。这个设置允许AutoTVM自动调谐过程,通过它生成候选内核一轮接着一轮和执行他们的目标设备;最后,它使用计时结果自动调谐模型参数。的结果(51)显示,AutoTVM优化提高性能通过降低程序的执行时间从294毫秒到157毫秒,而且它几乎是一样的TFLite + CMSIS-NN模型。

4.4。PyTorch移动

PyTorch ML的移动提供了简化的端到端流程和执行模型在边缘设备(52]。它可以用于等更强大的移动操作系统iOS、Android和Linux。PyTorch移动包括XNNPACK浮点和QNNPACK 8位量化内核库为移动设备优化神经网络推理。PyTorch移动不能用于最受限的微控制器,但是可以使用PyTorch模型在微控制器通过开放神经网络与其他交换(ONNX)格式转换软件,包括TensorFlow STM32Cube。人工智能,Cainvas [58- - - - - -60]。

4.5。emlearn

emlearn库包含一个Python-C模型转换器和推理引擎的微控制器和其他设备,使用c代码(53]。它可用于转换等经典毫升和神经网络模型随机森林(RF),决策树(DT),朴素贝叶斯(NB),多层感知器(MLP)和连续模型建立与Keras和scikit-learn框架。它支持定点数学和不使用动态内存分配。大多数讨论的其他框架可以用32位计算机体系结构,主要用于但emlearn可以使用8位AVR处理器,是由作者(61年]。emlearn库类似于MicroMLgen [62年],FogML [63年],sklearn-porter [64年)库。

5。开发环境

冲动,边缘Qeexo AutoML, Imagimob TinyML作为服务提供。边缘的冲动是一个开源软件开发工具包(SDK),使ML微控制器(13],Qeexo AutoML是一个自动化的ML平台(14]。嵌入式系统的另一个lite工具包,我们稍后将讨论综述,意法半导体STM32Cube。人工智能(15]。的Cartesiam NanoEdge艾未未工作室包括轻量级毫升库可以用于所有手臂Cortex-M家庭微控制器(65年]。

5.1。边缘冲动工作室

边缘的冲动(EI) SDK可以用于实现神经网络在嵌入式设备上,包括真正的传感器数据采集和实时信号处理,测试和代码部署到目标设备(13]。此外,实际的传感器收集的数据可以在物联网设备和手机,和现有的数据集可以上传与一个上传工具EI SDK JSON, CBOR, JPG和WAV格式(66年]。

作者在67年)在他们的研究测试了EI SDK开发分诊COVID-19疑似病例的一种手段。作者创造了一种wrist-wearable物联网设备基于32位Espressif ESP8266EX单片机。该设备是用来测量和处理原始photoplethysmogram (PPG)数据。这些数据提取至关重要的组件并最终22神经网络输入无线功能转移到EI SDK。病人分流是由结合重要分组件和EI SDK NN分类工具链,即分类做成三个类:缓慢呼吸(呼吸过慢),正常的呼吸,沉重的呼吸。选中的人口金字塔连接神经网络架构了模型估计95.1%的准确率和138 ms推理时间设备内置推理。

5.2。Qeexo AutoML

Qeexo AutoML为手臂皮层处理器提供了一个自动化毫升平台甚至高度受限M0和M0 +处理器(14]。部署毫升M0 +可以很困难相比,这样做在一个M4因为M0 +只能计算32位定点数学和更低的内存容量,降低CPU速度,不支持饱和算术和DSP (68年]。因为这一切,Qeexo AutoML已经开发了一个高度优化的手臂皮层M0 +定点毫升管道,包括传感器数据处理、特征计算,与定点数据和推理。M0 +,管道使用基于树的ML算法如梯度增加机器(GBM),射频,极端的梯度增加(XGBoost)。Qeexo AutoML综合ML算法组合还包括NB, DT,隔离森林(如果)、支持向量机(SVM),局部离群因子(LOF),逻辑回归(LR), CNN,卷积递归神经网络(CRNN),递归神经网络(RNN)和人工神经网络(ANN) [14]。Qeexo AutoML使用智能修剪和posttraining量子化方法导致模型的大小压缩90%。额外的8位量化可以缩小模型大小75%相比,模型使用32位精度(68年]。

5.3。STM32Cube.AI

意法半导体STM32Cube。人工智能是一个神经网络和ML工具包对STM32开发人员运行优化的推论在微控制器(15]。STM32Cube.AItools contain the most common deep learning libraries and decision-making processes with more resource-optimized algorithms such as a DT classifier. The STM32Cube.AI can be expanded with the X-CUBE-AI package, including automatic conversion of pretrained NN and classic ML models. X-CUBE-AI supports all frameworks that use ONNX format, including PyTorch, Microsoft Cognitive Toolkit, and MATLAB, and has support for well-known DL and ML frameworks such as TFlite, Keras, Caffe, Lasagne, ConvnetJS, scikit-learn (IF, SVM, k-means clustering (kMC), etc.), and XGBoost package [58,69年,70年]。此外,X-CUBE-AI可以优化网络由8位量化和重量和激活参数保存在外部Flash和RAM的记忆如果更广泛的网络。

5.4。NanoEdge艾未未工作室

Cartesiam NanoEdge艾未未工作室由软件和人工智能图书馆对于嵌入式开发人员的集合,可以作为一个搜索引擎选择最优的ML算法(65年]。它包括信号预处理,hyperparametrization、异常检测和分类模型,如再(资讯)、支持向量机和神经网络71年]。NanoEdge AI Studio允许特定于应用程序的ML图书馆发展,使无监督学习,推理和预测,可以运行在微控制器(72年]。程序自动测试、优化和计算最佳的算法组合C库。NanoEdge艾未未工作室后选择了最好的图书馆项目,图书馆可以学习正常行为和找出异常(73年]。它可以执行迭代学习30毫秒断开的手臂Cortex-M4 80 Mhz和仅消耗4 kB RAM在一个典型的配置(74年]。也值得一提Cartesiam AI已经使用的第一个商业TinyML产品,叫做鲍勃助理的传感器,它使用自动化设备上学习在线监测仪器的技术(75年]。这个传感器自动准备和发送预见性维护报告一旦学习机器的正常行为结束的时期。

5.5。Imagimob

Imagimob有两个软件产品,可用于构建边缘的人工智能应用程序。Imagimob人工智能软件套件是一个端到端的开发解决方案构建边缘AI和TinyML应用程序(76年]。它可以用于所有类型的时间序列数据,它专注于深度学习。Imagimob AI开发遵循五个步骤:(1)数据捕获和标签,(2)数据管理在一个地方,(3)自动与人工智能模型建立培训服务,(4)模型与可视化的模型验证和预测,和(5)边缘优化和应用程序包装。Imagimob支持量化LSTM(长短期记忆)层,这是具有挑战性但使用时间序列数据时必不可少的77年]。边缘是著称的SaaS解决方案,可用于简化复杂的边缘AI和TinyML开发(78年]。它可以TensorFlow和Keras h5文件格式转换成高度执行C代码中使用边缘设备。这种转换可能是一个具有挑战性的任务,即使是一个熟练的程序员,但使用Imagimob边缘时,它可以在几秒钟内自动完成。DL模型运行的套件适用于高度受限的嵌入式设备如胳膊上Cortex-M0微控制器与RAM内存大小一样的小10 kB (78年,79年]。

5.6。TinyML开发工具简介

本节总结了TinyML开发工具的功能表2,显示可用的ML算法,支持互操作框架,和最低目标处理器的体系结构和类型。

6。TinyML基准测试

当讨论TinyML性能基准测试的设计,有四个主要挑战去克服:(1)不同的范围的设备能耗;(2)和不同的内存资源有限的设备;(3)缺乏硬件异构性,这使得很难正常化性能结果;(4)缺乏软件异质性因为主要厂商有自己的专用工具和编译器5]。此外,模型的基准工具应包括各种方式部署。今天,基准测试设计基准毫升推理或单片机性能而不是这些技术的交集。不合适的基准测试方法之一是MLPerf推理基准(80年),这是针对更强大的计算机。最近,作者的81年]介绍了MLPerf微小的TinyML基准套件,以满足要求。这个开源套件(82年)可以用来测量准确性、延迟和能耗TinyML推理。MLPerf小v0.5提供视觉单词之后,关键词定位,异常检测和图像分类任务为基准,包括参考实现,提供使用TFLite和TFLM [81年]。套件可以用于评估嵌入式设备的时钟速度的10 MHz - 250 MHz,通常使用不到50 mW /推理(82年]。

作者在61年)测试emlearn、sklearn-porter MicroMLgen经典毫升库与极其受限的Arduino Uno单片机,只有一个8位处理器,16兆赫的时钟速度,32 kB的闪存,SRAM的2 kB。他们的工作选择DT,射频、支持向量机和延时算法测试,指标显示,DT和射频给最好的精度,最低内存占用和分类速度最快。0.97中的延时算法基准测试显示良好的精度与一个隐藏层神经元有四个,但它的重量和偏见没有继续符合Arduino Uno的SRAM当网络复杂性增长。MicroMLgen SVM是最弱的执行算法的基准的准确性和内存占用。

7所示。新兴技术TinyML

在最新的新兴TinyML技术联合学习(FL),引入和定义在83年]。FL是大规模机器学习技术,毫升模型训练在远程设备同时保持训练数据本地化(84年]。因此,FL使数据隐私和安全的攻击表面只有物联网设备本身(有限83年]。FL架构可分为集中式和分散式的(85年]。在集中的方法中,有一个服务器端设备之间,在分散的方法,终端设备之间交换数据。例如,当集中优势设备协同训练预测模型,他们首先在本地更新新的参数共享预测模型,然后向服务器发送更新,最后接收从服务器返回的聚合模型(86年]。在典型的分散的方法,每个设备可以执行本地更新毫升模型参数梯度设备已收到后直接从所有其他节点(梯度更新87年]。

当结合FL和TinyML技术的一个关键挑战是设备内置模型训练,通常在TinyML框架不支持。不过,设备内置的培训和评估可以使用编程语言,如Java来实现迅速、和C / c++ (86年]。此外,FL资源优化可以通过使用一个称为转移的技术学习(TL),它使用旧模型来生成一个新的(88年]。这个过程可以减少所需的计算资源来训练新模式。在[89年],作者提出了一个方法叫联邦转移学习小设备(TinyFedTL),让他们实现自己的完全连接层之间的推理和反向传播更新Arduino Nano 33 BLE微控制器和本地服务器。结果,他们设法培养一个毫升模型没有将原始数据发送给服务器;只有重量和偏见的数据发送客户机节点和服务器之间。然而,就像任何其他毫升模型训练过程中,也在FL方法,训练效率和模型精度依赖于数据集质量和计算能力90年]。TL方法使用本身也是一种有效的方法。就像在91年),微小转移学习(TinyTL)减少内存占用6.5倍。TinyTL使用pretrained模型保存微控制器的内存资源而不是存储激活,学习只有偏见,冻结的权重。

最近的另一篇文章提出了一个方法称为TinyML在线学习(TinyOL),可以使用流媒体数据posttraining和升级现有的设备内置NN模型(22]。在这种方法中,一个额外的TinyOL训练层与预测阶段交叉使用。新数据后首先通过现有TinyML模型推理阶段,结果发现标签,评价指标和权重根据新数据更新。当TinyOL使用增量学习过程,它降低了微控制器的内存和处理器相比,使用批处理学习,因为可以一个接一个,处理新数据,最后,可以擦除数据更新完成后。除了现代神经网络模型,NB等传统ML算法,支持向量机,LR, DT更好的适合于资源受限的设备上的培训,因为他们的资源需求通常是低(92年]。此外,如TinyML总体而言,降低模型复杂度降维修剪和降低计算负载和量化有助于达到更好的设备上训练的性能。

最具吸引力的新兴技术组合之一是低功耗广域网络的集成与TinyML (LPWANs)。能源效率和大型覆盖LPWANs的最重要的特征是,尽管他们有一个低数据率(93年]。因此,LPWAN无线电技术,如LoRaWAN Sigfox, NB-IoT, TinyML LTE-M是理想的技术伙伴;这是因为在TinyML,推理约束单片机内,而且在大多数情况下,只需要一个压缩的推理结果发送到服务器。今天,当国家LPWAN网络和覆盖全球正变得越来越普遍,人们更容易避免单独的网关设备和构建独立的结束节点的应用程序。这是有意义的,因为它也更容易建立一个设备比单独的结束节点和网关的一个复杂的组合。电子产品制造商也发现了这一点,他们开始将32位Arm皮层处理器和sub-GHz收音机芯片系统(SoC)和system-in-package (SiP)单位(94年,95年]。在[85年),作者建立了一个可穿戴TinyML设备,他集成模型和外设如LoRaWAN收发器,GPS模块,和惯性传感器。结果表明,外围设备的模型库和内存占用低于2 kB SRAM,足够小,即使是最微小的微控制器。表3总结了TinyML新兴技术的优点。

8。结论

TinyML最近不断研究不同组织,进而创造了各种框架、工具和方法对微控制器应用毫升。在这些研究中,克服了微控制器的资源约束是主要的研究课题;提出了许多文章,这通常是通过计算意味着降低内存占用的ML模式,也有积极影响微处理器的CPU使用率和功耗。然而,在这个缺点是模型的大小和精度之间的权衡,因为它有一个accuracy-lowering影响,尽管这是在大多数情况下,在一个合理的水平。总之,TinyML仍处于早期阶段,和商业产品,例如,主要还是去实现。因此,TinyML进化的未来取决于企业和学术界关注他们的资源进行测试和基准测试各种TinyML应用程序和算法。综合基准工具,可以用于各种微控制器是一个至关重要的第一步创建一个连续体进行研究。

9。未来的应用领域

总的来说,在考虑小型物联网设备的技术进化从更广泛的角度来看,尚未有任何大趋势的产品,每个人都应该拥有。那些可用的微型物联网设备主要用于控制目的和可能通过互联网发送数据。然而,在未来,TinyML可能改变微型物联网设备的发展和需求,我们会看到许多这类新的必备产品。主要原因是新型智能产品中心的数字,data-orientated,节能,resource-optimized生活方式。这个产品类别的一个很好的例子是可穿戴技术,结合健康、人身安全、通信技术。因此,未来使用TinyML不仅限于微电子现在存在的地区,但它也将扩展到新领域和便宜的产品。这方面的一个例子产品类别包括状态监测解决方案,目前只应用于重要和昂贵的机器。因此,低成本TinyML传感器将可能扩展状态监测应用程序更少的关键和移动机械,甚至不需要电,因为传感器可以使用电池。此外,这些类型的机器也好的FL目标应用程序,因为它们通常是批量生产的,所以他们可以加入在一起产生一个毫升模型可以推广到不同的情况。另一件值得考虑的是技术,如TinyML, FL,设备上学习,和LPWAN可能影响研究自然科学在不同领域,这样可以将地理上分布的研究对象的行为和观察到设备上,然后推理结果,甚至升级毫升模型的参数发送到服务器。 In addition, this improves data privacy and security because no sensitive raw data are sent to cloud servers. Inference engine on edge also reduces inference time and network usage, which can be critical features for some applications. From a negative point of view, TinyML may be used for ethically controversial solutions such as military, surveillance, and hacking devices. Thus, it is essential to remember the ethical aspect when building TinyML applications. Finally, TinyML is likely to cement its position among other ML techniques, and its maturity will quickly multiply over time.

的利益冲突

作者宣称没有利益冲突。

确认

这项工作已经完成eAlytelli下coADDVA由欧洲区域发展基金资助和芬兰中部的区域委员会。