一种本地学习方法、设备及介质与流程

文档序号:30158781发布日期:2022-05-26 08:24阅读:118来源:国知局
一种本地学习方法、设备及介质与流程

1.本技术涉及微控制器技术领域,尤其涉及一种本地学习方法、设备及介质。


背景技术:

2.微控制单元(microcontroller unit,mcu),又称单片微型计算机(single chip microcomputer)或者单片机,是把中央处理器(central process unit,cpu)的频率与规格做适当缩减,并将内存(memory)、计数器(timer)、usb、a/d转换、uart、plc、dma等周边接口,甚至lcd驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
3.微型机器学习(tiny machine learning,tinyml)属于机器学习的一个子领域,包含了算法、硬件和软件,能够基于传感器数据分析,并在极低功耗的设备上运行。
4.目前市面上通过mcu和tinyml的结合,利用预先训练好的模型进行mcu可以解析的数组形式,此策略将模型视为静态对象。静态对象在从新数据中学习的情况下,需要从头开始对模型进行重新训练,并将其重新上传到mcu,这使得tinyml在行业环境中的部署成为一项具有挑战性的任务。


技术实现要素:

5.为了解决上述问题,本技术提出了一种本地学习方法,所述方法包括:通过微型机器学习tinyml模型接收输入的数据流,将所述数据流通过所述tinyml模型进行推理,得到推理数据流,并将所述推理数据流发送至本地学习模块;将所述推理数据流输入至所述本地学习模块的附加神经网络层,通过所述附加神经网络层进行推理,得到预测结果;根据所述数据流获取标签流,根据所述预测结果与所述标签流确定更新矩阵,将所述更新矩阵发送至所述本地学习模块的更新层;根据所述更新矩阵确定更新权重参数,并将所述更新权重参数发送至所述附加神经网络层,以根据所述更新权重参数将所述附加神经网络层进行更新。
6.在一个示例中,将所述推理数据流输入至所述本地学习模块的附加神经网络层,具体包括:确定所述附加神经网络层的输入单位数据个数,根据所述输入单位数据个数确定所述附加神经网络层的输入规模;根据所述输入规模将所述推理数据流进行分组,并确定推理数据流组号,根据所述推理数据流组号将所述推理数据流依次输入至所述附加神经网络层中。
7.在一个示例中,所述本地学习模块中包括多个所述附加神经网络层;所述方法还包括:确定所述多个附加神经网络层分别对应的多个所述输入规模,将所述多个附加神经网络层按照所述输入规模进行排序,得到所述多个附加神经网络层的规模编号;根据所述规模编号确定所述附加神经网络层的预测权重,并根据所述预测权重将所述推理数据流优先输入至所述输入规模大的所述附加神经网络层。
8.在一个示例中,所述方法还包括:确定所述推理数据流的数据个数,判断所述数据
个数是否大于优先输入的所述附加神经网络层的输入规模;若所述数据个数大于所述输入规模,则根据所述输入规模确定所述推理数据流的剩余数据流,将所述剩余数据流输入至其他附加神经网络层。
9.在一个示例中,根据所述更新权重参数将所述附加神经网络层进行更新之后,所述方法还包括:通过所述tinyml模型接收新数据流,并向所述本地学习模块发送更新信号;通过所述本地学习模块的存储器确定所述数据流和所述标签流,并根据所述更新信号将所述数据流和所述标签流在所述存储器中删除。
10.在一个示例中,所述方法还包括:将更新后的所述附加神经网络层与所述tinyml模型进行绑定,得到附加tinyml模型,以通过所述附加tinyml模型接收所述新数据流。
11.在一个示例中,将所述预测结果与所述标签流进行标准化运算,以得到更新矩阵,具体包括:根据所述标签流确定所述预测结果的评价指标,根据所述预测结果与所述评价指标对所述tinyml模型进行准确率评价,以根据所述准确率评价确定更新所述tinyml模型的更新权重参数,并根据所述更新权重参数确定所述更新矩阵。
12.在一个示例中,将所述数据流经过所述tinyml模型进行推理,得到推理数据流,具体包括:通过所述tinyml模型将所述数据流进行低功耗推理,得到数据流的平均值和方差,并将所述平均值和方差整合为所述推理数据流。
13.另一方面,本技术还提出了一种本地学习设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述一种本地学习设备能够执行:如权利要求1-8中任意一项权利要求所述的方法。
14.另一方面,本技术还提出了一种非易失性计算机存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令设置为:如上述任意一个示例所述的方法。
15.本技术将已有的神经网络添加了一层附加神经网络,当数据流到来时,能够推理出每个即将到来的样本,并随后利用本地学习更新其权重参数。如果检测到新的类别的对象,能够修改输出层的结构,以适应最新的信息。因此,mcu上的许多限制将会被解决。
16.本技术通过本地学习系统实现了在资源受限的mcu上的在线学习,根据收集的数据在本地进行模型权重更新。然后解决了mcu和tinyml的约束和限制。利用已有tinyml的网络为基础,增加一层附加网络层去实现本地模型参数的更新。同时,本系统还可以从本地更新的一个接一个的数据中去进行模型权重参数的更新。此外,在模型更新的同时,对于没有必要储存的历史数据就,能够在本地储存删除,减少了mcu的功耗。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
18.图1为本技术实施例中一种本地学习方法的流程示意图;
19.图2为本技术实施例中一种本地学习系统的示意图;
20.图3为本技术实施例中一种本地学习设备的示意图。
具体实施方式
21.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.以下结合附图,详细说明本技术各实施例提供的技术方案。
23.目前市面上基于tinyml硬件在部署机器学习模型时无法进行模型权重参数的更新,一方面对于这些分散的边缘设备单独进行模型更新会耗费大量的人力和物力,而且对于训练的模型不一定适用于任何的设备,同时边缘设备储存有限所以与数据中心的数据传输会造成成本的上升和延时,最后对于变化的环境不能做出正确的预测。
24.为了改进上述问题,如图1所示,本技术实施例提供的一种本地学习方法,应用在基于mcu和tinyml的本地学习系统中,如图2所示,该本地学习系统包括mcu控制器和与mcu控制器连接的tinyml模型,其中tinyml模型为神经网络模型。通过mcu控制器布置本地学习模块,本地学习模块内设置有附加神经网络层和更新层。
25.图1所示的方法包括:
26.s101:通过微型机器学习tinyml模型接收数据流,将所述数据流经过所述tinyml模型进行推理,得到推理数据流,并将所述推理数据流发送至本地学习模块。
27.tinyml模型为微型机器学习,目的是实现低功耗,适用于边缘段设备的人工智能神经网络。tinyml模型内的神经网络接收输入的数据流,该数据流经过tinyml神经网络进行推理,得到推理结果(在此称为推理数据流)。因为已有的神经网络是作为c数组上传到mcu的储存模块上的,所以tinyml神经网络被视为一个冻结的静态的图,在初始化以后不能再对其进行修改。对于不能适应数据流的推理范围,或者推理数据流准确率较低的神经网络,需要通过添加附加神经网络的方式对tinyml神经网络进行更新,以实现对整体神经网络的更新,因此,通过mcu控制器搭建本地学习模块,本地学习模块接收从tinyml神经网络发出的推理数据流,并根据该推理数据流进行进一步地分析更新。
28.s102:将所述推理数据流输入至所述本地学习模块的附加神经网络层,通过所述附加神经网络层进行推理,得到预测结果。
29.接收推理数据流后,本地学习模块将该推理数据流输入附加神经网络层(简称附加层),该附加层由若干个神经元组成,这些神经元可以被定制、初始化和动态更新。本系统通过已有的tinyml神经网络进行数据推理后,添加的附加神经网络层作为新的输出层成为神经网络的一部分。本系统是在ram中运行的,因此可以训练附加层中的神经元,即通过附加层进行推理,得到预测结果,再通过对预测结果进行分析得到更新方案。在本地学习系统中,预训练模型的一部分是固定的,将该部分固定的模型认为是tinyml神经网络,而微调发生在最后几层,将最后几层认为是附加层。
30.s103:根据所述数据流获取标签流,根据所述预测结果与所述标签流确定更新矩阵,将所述更新矩阵发送至所述本地学习模块的更新层。
31.本地学习系统除了接收数据流进行推理外,还接收与其对应标签流,用于检验tinyml模型的推理准确率。根据任务的不同,累积的平均值和方差将被更新,并且输入可以被标准化。系统在附加层将运行推理后得到预测结果,并从标签流中找到相应的标签,使用
在线梯度下降算法调整附加层中的评价指标和权重值,例如:随机梯度下降(sgd)。评价指标就是指神经网络对里面的一个参数,通过这个参数去评定这个模型的准确率。权重也是评判预测结果好坏的参数,也就是附加层的准确率。从而,根据预测结果与标签流确定更新矩阵,将更新矩阵发送至本地学习模块的更新层。
32.s104:根据所述更新矩阵确定更新权重参数,并将所述更新权重参数发送至所述附加神经网络层,以根据所述更新权重参数将所述附加神经网络层进行更新。
33.更新层根据更新矩阵确定更新权重参数,通过更新权重参数确定附加层的更新范围,之后更新层将更新矩阵覆盖进附加层对应的更新范围中,从而通过本地学习系统完成对整个神经网络的模型更新。
34.在一个实施例中,将推理数据流输入至本地学习模块的附加神经网络层时,由于附加层的可接受数据规模有限,需要通过规模输入的方式将推理数据流输入至附加层。确定附加层的输入单位数据个数,从而根据输入单位数据个数确定附加层的输入规模。将推理数据流根据输入规模进行分组,以使每组的数据规模为附加层能够接收的规模。将分组后的推理数据流标记组号,根据推理数据流组号将推理数据流依次输入至附加层中。规模输入的意义就在于减少设备端的能耗,mcu附加层的电力是有限的,需要尽可能的减少数据的读写,从而减少能耗。规模输入就是为了上述目的,达到一定数据规模再进行数据的传输。
35.在一个实施例中,本地学习模块中可以包括多个附加神经网络层。每个附加层具有对应的输入规模,按照输入规模从大到小的顺序,将多个附加层进行排序,并根据拍的顺序得到每个附加层的规模编号。例如,输入规模最大的附加层的规模编号为1。根据规模编号确定附加络层的预测权重,规模编号越小的预测权重越靠前,预测权重越靠前,优先将推理数据流输入至对应的附加层。
36.在一个实施例中,在上述多个附加神经网络层的本地学习系统的基础上,确定全部推理数据流总体的数据个数,判断该数据个数是否大于优先输入的附加层的输入规模,及该数据个数是否大于规模编号为1的附加层的输入规模。若数据个数小于或等于该输入规模,则直接将全部推理数据流输入该规模编号为1的附加层;若数据个数大于该输入规模,则将推理数据流中分离出一部分数据流组,该数据流组的数据个数等于规模编号为1的输入规模,再根据推理数据流与该输入规模相减,等到剩余数据流,将剩余数据流输入至其他附加神经网络层。
37.在一个实施例中。根据更新权重参数将附加神经网络层进行更新时,训练和预测步骤都是交错的。一旦神经元被更新,样本就可以被有效地丢弃,每次只有一个流的数据对存在内存中,不需要存储历史数据。更新之后,通过tinyml模型接收新的数据流,并向本地学习模块发送更新信号。通过本地学习模块的存储器确定上次更新时的数据流和标签流,并在接收到更新信号后将数据流和标签流在存储器中删除。与批量/离线训练设置相比,本系统可以以最小的资源利用率进行培训更新,使设备上的大规模数据流训练成为可能。
38.在一个实施例中,将更新后的附加神经网络层与tinyml模型进行绑定,得到附加tinyml模型,通过附加tinyml模型接收新数据流,以作为更新后的完整神经网络模型进行后续推理。
39.在一个实施例中,根据标签流确定预测结果的评价指标,根据预测结果与评价指
标对tinyml模型进行准确率评价,以根据准确率评价确定更新tinyml模型的更新权重参数,并根据更新权重参数确定更新矩阵。评价指标就是指神经网络对里面的一个参数,通过这个参数去评定这个模型的准确率。权重也是评判预测结果好坏的参数,也就是附加层的准确率。从而,根据预测结果与标签流确定更新矩阵,将更新矩阵发送至本地学习模块的更新层。
40.在一个实施例中,通过tinyml模型将数据流进行低功耗推理,得到数据流的平均值和方差,并将平均值和方差整合为推理数据流。
41.在一个实施例中,如图2所示,在基于mcu和tinyml的本地学习系统中,首先,初始化tinyml模型和本地学习模块。其次,向tinyml模型输入数据流,根据tinyml模型的推理,更新平均值和方差,得到的数据通过规模输入的方式输入至附加神经网络层,通过附加神经网络层得到预测结果。接着本地学习系统接收标签流,并根据标签流和预测结果得到更新矩阵以及更新权重参数,最后,更新层将更新矩阵以及更新权重参数覆盖至附加神经网络层,以完成tinyml神经网络的更新。在mcu上运行神经网络推理相当于一个接一个地处理数据流。在最后一次推理完成后,神经网络可以处理下一个输入样本。本地学习系统利用了这一特点,并进一步扩展了现有神经网络的后训练能力。利用已有的tinyml模型,添加了一个新的网络层连接到mcu中的现有的神经网络,或者替换神经网络中的特定层。当数据流出现时,本系统可以推断每个即将到来的样本,然后利用本地学习的优势更新其权重。如果检测到新类的对象,本系统可以修改输出层的结构以适应最新信息。因此,可以解决mcu上的许多约束,即数据存储、计算开销等等。
42.如图3所示,本技术实施例还提供了一种本地学习设备,包括:
43.至少一个处理器;以及,
44.与所述至少一个处理器通信连接的存储器;其中,
45.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述一种本地学习设备能够执行如上述任意一个实施例所述的方法。
46.本技术实施例还提供了一种非易失性计算机存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为:如上述任意一个实施例所述的方法。
47.本技术中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
48.本技术实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
49.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
50.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
51.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
52.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
53.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
54.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
55.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
56.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
57.以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1