一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的全局模型确定方法及装置、存储介质与流程

2022-03-16 03:18:22 来源:中国专利 TAG:


1.本技术涉及互联网技术领域,尤其是涉及到一种基于区块链的全局模型确定方法及装置、存储介质、计算机设备。


背景技术:

2.区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。现今随着互联网技术的快速发展,区块链技术正在受到越来越多人的青睐。
3.在区块链技术中,为了保证数据隐私、打破数据孤岛,可以将机器学习任务分发到各个终端设备节点进行学习,再将所有终端设备节点学习产生的结果数据进行聚合,得到最终的训练模型。其中,聚合的方法通常为对各个终端设备节点对应的结果数据进行简单的求取平均值。然而,实际上各个终端设备节点的本地数据多服从非独立同分布,此种聚合方法得到的最终训练模型应用效果较差。


技术实现要素:

4.有鉴于此,本技术提供了一种基于区块链的全局模型确定方法及装置、存储介质、计算机设备,可以使各个目标边缘设备节点的本地数据服从非独立同分布的情况下,减少数据偏态性对目标全局模型对应的目标全局参数的影响,提升目标全局模型的准确性。
5.根据本技术的一个方面,提供了一种基于区块链的全局模型确定方法,应用于聚合节点,包括:
6.确定参与本地训练的多个目标边缘设备节点,并向所述目标边缘设备节点发送本地训练指令,以使所述目标边缘设备节点依据所述本地训练指令得到目标边缘设备参数,并将与所述目标边缘设备参数对应的第一目标地址写入区块链网络;
7.基于每个所述第一目标地址,从所述目标边缘设备节点中获取所述目标边缘设备参数,并依据所述目标边缘设备参数,得到目标均值向量以及目标方差向量;
8.依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
9.可选地,所述依据所述目标边缘设备参数,得到目标均值向量以及目标方差向量,具体包括:
10.依据所述目标边缘设备参数,确定与所述目标边缘设备节点对应的目标矩阵,其中,所述目标矩阵的列数与所述目标边缘设备节点的数量一致,所述目标矩阵的行数与任一所述目标边缘设备参数的维度一致,任意所述目标边缘设备参数对应的维度相同;
11.基于所述目标矩阵,确定所述目标矩阵中任一行元素对应的行均值;
12.将所述目标矩阵中的任一行元素分别减去对应的所述行均值,得到目标距离矩阵,并基于所述目标距离矩阵,得到目标均值向量以及目标方差向量。
13.可选地,所述依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,
具体包括:
14.基于所述目标均值向量以及所述目标方差向量,通过预设随机算法得到目标随机数向量,并基于所述目标随机数向量以及所述目标均值向量,确定目标全局参数。
15.可选地,所述基于所述目标全局参数,得到目标全局模型,具体包括:
16.通过所述目标全局参数,更新所述聚合节点中预设全局模型对应的预设全局参数,得到更新全局模型;
17.通过预设测试集对所述更新全局模型进行测试,并统计测试准确率;
18.当所述测试准确率小于或等于预设准确率阈值时,将所述更新全局模型作为所述目标全局模型;
19.当所述测试准确率大于所述预设准确率阈值时,重新确定所述目标全局参数。
20.可选地,所述当所述测试准确率大于所述预设准确率阈值时,重新确定所述目标全局参数,具体包括:
21.当所述测试准确率大于所述预设准确率阈值时,将所述目标全局参数对应的第二目标地址写入所述区块链网络,并将所述第二目标地址广播给所述目标边缘设备节点,以使所述目标边缘设备节点基于所述第二目标地址获取所述目标全局参数,并基于所述目标全局参数更新所述目标边缘设备参数;
22.获取更新后的所述目标边缘设备参数,重新确定所述目标全局参数。
23.根据本技术的另一方面,提供了另一种基于区块链的全局模型确定方法,应用于目标边缘设备节点,包括:
24.接收聚合节点发送的本地训练指令,从区块链网络中下载预设全局模型;
25.基于预设本地数据,对所述预设全局模型进行训练,当训练完毕后得到目标边缘设备参数,并生成与所述目标边缘设备参数对应的第一目标地址;
26.将所述第一目标地址写入所述区块链网络,以使所述聚合节点依据所述第一目标地址获取所述目标边缘设备参数,基于所述目标边缘设备参数得到目标均值向量以及目标方差向量,依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
27.可选地,所述方法还包括:
28.实时监听所述聚合节点,并当监听到所述聚合节点广播第二目标地址后,基于所述第二目标地址,从所述聚合节点中获取所述目标全局参数;
29.依据所述目标全局参数更新所述目标边缘设备节点中所述预设全局模型对应的预设全局参数,并依据所述预设本地数据对更新后的所述预设全局模型进行训练,当训练完毕后更新所述目标边缘设备参数。
30.根据本技术的另一方面,提供了一种基于区块链的全局模型确定装置,应用于聚合节点,包括:
31.节点确定模块,用于确定参与本地训练的多个目标边缘设备节点,并向所述目标边缘设备节点发送本地训练指令,以使所述目标边缘设备节点依据所述本地训练指令得到目标边缘设备参数,并将与所述目标边缘设备参数对应的第一目标地址写入区块链网络;
32.参数获取模块,用于基于每个所述第一目标地址,从所述目标边缘设备节点中获
取所述目标边缘设备参数,并依据所述目标边缘设备参数,得到目标均值向量以及目标方差向量;
33.模型确定模块,用于依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
34.可选地,所述参数获取模块,具体用于:
35.依据所述目标边缘设备参数,确定与所述目标边缘设备节点对应的目标矩阵,其中,所述目标矩阵的列数与所述目标边缘设备节点的数量一致,所述目标矩阵的行数与任一所述目标边缘设备参数的维度一致,任意所述目标边缘设备参数对应的维度相同;基于所述目标矩阵,确定所述目标矩阵中任一行元素对应的行均值;将所述目标矩阵中的任一行元素分别减去对应的所述行均值,得到目标距离矩阵,并基于所述目标距离矩阵,得到目标均值向量以及目标方差向量。
36.可选地,所述模型确定模块,具体用于:
37.基于所述目标均值向量以及所述目标方差向量,通过预设随机算法得到目标随机数向量,并基于所述目标随机数向量以及所述目标均值向量,确定目标全局参数。
38.可选地,所述模型确定模块,具体还用于:
39.通过所述目标全局参数,更新所述聚合节点中预设全局模型对应的预设全局参数,得到更新全局模型;通过预设测试集对所述更新全局模型进行测试,并统计测试准确率;当所述测试准确率小于或等于预设准确率阈值时,将所述更新全局模型作为所述目标全局模型;当所述测试准确率大于所述预设准确率阈值时,重新确定所述目标全局参数。
40.可选地,所述模型确定模块,具体还用于:
41.当所述测试准确率大于所述预设准确率阈值时,将所述目标全局参数对应的第二目标地址写入所述区块链网络,并将所述第二目标地址广播给所述目标边缘设备节点,以使所述目标边缘设备节点基于所述第二目标地址获取所述目标全局参数,并基于所述目标全局参数更新所述目标边缘设备参数;获取更新后的所述目标边缘设备参数,重新确定所述目标全局参数。
42.根据本技术的另一方面,提供了一种基于区块链的全局模型确定装置,应用于目标边缘设备节点,包括:
43.模型下载模块,用于接收聚合节点发送的本地训练指令,从区块链网络中下载预设全局模型;
44.参数生成模块,用于基于预设本地数据,对所述预设全局模型进行训练,当训练完毕后得到目标边缘设备参数,并生成与所述目标边缘设备参数对应的第一目标地址;
45.地址写入模块,用于将所述第一目标地址写入所述区块链网络,以使所述聚合节点依据所述第一目标地址获取所述目标边缘设备参数,基于所述目标边缘设备参数得到目标均值向量以及目标方差向量,依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
46.可选地,所述装置还包括:
47.监听模块,用于实时监听所述聚合节点,并当监听到所述聚合节点广播第二目标
地址后,基于所述第二目标地址,从所述聚合节点中获取所述目标全局参数;
48.参数更新模块,用于依据所述目标全局参数更新所述目标边缘设备节点中所述预设全局模型对应的预设全局参数,并依据所述预设本地数据对更新后的所述预设全局模型进行训练,当训练完毕后更新所述目标边缘设备参数。
49.依据本技术又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于区块链的全局模型确定方法。
50.依据本技术再一个方面,提供了一种计算机设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述基于区块链的全局模型确定方法。
51.借由上述技术方案,本技术提供的一种基于区块链的全局模型确定方法及装置、存储介质、计算机设备,通过聚合节点将不同目标边缘设备节点对应的训练结果进行计算得到目标均值向量以及目标方差向量,并通过目标均值向量和目标方差向量得到目标全局参数,通过目标全局参数得到目标全局模型,可以使各个目标边缘设备节点的本地数据服从非独立同分布的情况下,减少数据偏态性对目标全局模型对应的目标全局参数的影响,提升目标全局模型的准确性。
52.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
53.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
54.图1示出了本技术实施例提供的一种基于区块链的全局模型确定方法的流程示意图;
55.图2示出了本技术实施例提供的另一种基于区块链的全局模型确定方法的流程示意图;
56.图3示出了本技术实施例提供的另一种基于区块链的全局模型确定方法的流程示意图;
57.图4示出了本技术实施例提供的一种基于区块链的全局模型确定装置的结构示意图;
58.图5示出了本技术实施例提供的另一种基于区块链的全局模型确定装置的结构示意图。
具体实施方式
59.下文中将参考附图并结合实施例来详细说明本技术。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
60.在本实施例中提供了一种基于区块链的全局模型确定方法,应用于聚合节点,如图1所示,该方法包括:
61.步骤101,确定参与本地训练的多个目标边缘设备节点,并向所述目标边缘设备节
点发送本地训练指令,以使所述目标边缘设备节点依据所述本地训练指令得到目标边缘设备参数,并将与所述目标边缘设备参数对应的第一目标地址写入区块链网络;
62.在传统机器学习中,数据分布在同一个机器上,并且假设数据是从同一个分布中独立地采样的,那么数据服从独立同分布。后来随着数据量的急剧暴长,大数据时代需要分布式算法进行并行计算,此时分布式优化主要做的事情是利用多台机器对大数据或者大模型进行并行计算,包括模型并行和数据并行两种基本范式,但此时仍只是为了加速计算,各个客户端上的数据仍然是服从独立同分布的。但是随着物联网设备的大规模使用,此时数以万计的设备归属于某个用户、企业、场景,因此其数据分布往往是差异极其大的,即数据非独立同分布,区块链网络中各个节点设备对应的本地数据即服从非独立同分布。在这里,非独立同分布可以从两个方面进行理解:第一,非同分布。非同分布很容易理解,就是因为数据分布差异大造成的;第二,非独立。由于受到用户群体、地域关联等因素,这些设备的数据分布往往是有关联的,即非独立。此外,频数分布有正态分布和偏态分布之分。正态分布是指多数频数集中在中央位置,两端的频数分布大致对称。偏态分布是指频数分布不对称,集中位置偏向一侧。现有技术中将机器学习任务分发到各个终端设备节点进行学习,再将所有终端设备节点学习产生的结果数据进行聚合,聚合结果往往受数据服从非独立同分布造成数据偏态性的影响,经过聚合后的最终训练模型准确性较差。本技术实施例提供的一种基于区块链的全局模型确定方法,可以有效解决现有技术中各个终端设备节点中的本地数据服从非独立同分布的情况下,通过各个终端设备节点的本地数据对预设全局模型进行本地训练,并将训练结果进行聚合后得到的最终训练模型受数据的偏态性影响的问题。首先,区块链网络中的聚合节点可以从多个边缘设备节点中随机确定本次参与本地训练的目标边缘设备节点。在这里,本地训练指的是各个目标边缘设备节点在本地利用预设本地数据对预设全局模型进行训练,通过本地训练可以使目标边缘设备节点中的数据在不离开本地的前提下,参与全局模型的构建,从而确保用户的数据安全。确定目标边缘设备节点后,聚合节点将本地训练指令分别发送给这些目标边缘设备节点,这样每个目标边缘设备节点接收到该本地训练指令后,可以以该本地训练指令为基础,根据本地训练指令从区块链网络中获得预设全局模型,并通过预设本地数据对预设全局模型进行训练,其中,预设全局模型中包括预设全局参数。当训练的次数达到预设次数阈值时,或当训练后得到的模型对应的模型误差小于预设误差阈值时,确定对应的目标边缘设备参数,生成与目标边缘设备参数对应的第一目标地址。例如,当本地训练结束的条件为模型误差小于预设误差阈值时,在模型误差小于预设误差阈值之前,每次训练结束后可以调整按照预设调参策略调整预设全局模型对应的参数,其中第一次训练完毕后对预设全局模型的预设全局参数进行调整,直到模型误差小于预设误差阈值时,预设全局模型对应的参数为目标边缘设备参数。之后,将该目标边缘设备参数对应的第一目标地址写入到区块链网络中,在这里,第一目标地址中可以包括目标边缘设备节点对应的本地地址和目标边缘设备参数在目标边缘设备节点中的存储位置。
63.步骤102,基于每个所述第一目标地址,从所述目标边缘设备节点中获取所述目标边缘设备参数,并依据所述目标边缘设备参数,得到目标均值向量以及目标方差向量;
64.在该实施例中,接着,聚合节点可以根据每个目标边缘设备参数对应的第一目标地址,从目标边缘设备节点中找到存储的目标边缘设备参数,之后聚合节点可以以不同目
标边缘设备节点对应的全部目标边缘设备参数为基础,计算目标均值向量和目标方差向量。在这里,相比于直接将目标边缘设备参数存储于区块链网络中,并从区块链网络中直接获取目标边缘设备参数,聚合节点通过第一目标地址从目标边缘设备节点获取目标边缘设备参数,可以大大提升聚合节点的访问效率。
65.步骤103,依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
66.在该实施例中,得到目标均值向量和目标方差向量之后,进一步可以将目标均值向量和目标方差向量作为基础,确定目标全局参数。在这里,目标全局参数是与预设全局模型中预设全局参数相对应的参数,通过目标全局参数更新预设全局模型中的预设全局参数,可以得到目标全局模型。实际上,如果不同目标边缘设备节点中的预设本地数据存在较高的异构性,那么经过本地训练得到的目标边缘设备参数也会有较大的差异。假如直接利用这些差异较大的目标边缘设备参数确定目标全局参数,那么目标全局参数的结果会受到这些目标边缘设备参数的较大影响,导致目标全局参数不准确。本技术通过目标均值向量和目标方差向量约束目标全局参数的范围,让目标全局参数尽量保持在目标边缘设备参数的均值附近,可以使各个目标边缘设备节点的本地数据服从非独立同分布的情况下,减少数据偏态性对目标全局模型对应的目标全局参数的影响。得到目标全局模型后,还可以将目标全局模型写入到区块链网络中,并广播给区块链网络的所有节点,这样区块链网络中的节点可以直接从区块链网络中下载该目标全局模型。
67.通过应用本实施例的技术方案,首先,区块链网络中的聚合节点可以从多个边缘设备节点中随机确定本次参与本地训练的目标边缘设备节点,确定目标边缘设备节点后,聚合节点将本地训练指令分别发送给这些目标边缘设备节点,这样每个目标边缘设备节点接收到该本地训练指令后,可以以该本地训练指令为基础,根据本地训练指令最终确定对应的目标边缘设备参数,并将该目标边缘设备参数对应的第一目标地址写入到区块链网络中。接着,聚合节点可以根据每个目标边缘设备参数对应的第一目标地址,从目标边缘设备节点中找到存储的目标边缘设备参数,之后聚合节点可以以不同目标边缘设备节点对应的全部目标边缘设备参数为基础,计算目标均值向量和目标方差向量。得到目标均值向量和目标方差向量之后,进一步可以将目标均值向量和目标方差向量作为基础,确定目标全局参数,通过目标全局参数可以得到目标全局模型。得到目标全局模型后,还可以将目标全局模型写入到区块链网络中,并广播给区块链网络的所有节点。本技术实施例通过聚合节点将不同目标边缘设备节点对应的训练结果进行计算得到目标均值向量以及目标方差向量,并通过目标均值向量和目标方差向量得到目标全局参数,通过目标全局参数得到目标全局模型,可以使各个目标边缘设备节点的本地数据服从非独立同分布的情况下,减少数据偏态性对目标全局模型对应的目标全局参数的影响,提升目标全局模型的准确性。
68.进一步的,作为上述实施例具体实施方式的细化和扩展,为了完整说明本实施例的具体实施过程,提供了另一种基于区块链的全局模型确定方法,应用于聚合节点,如图2所示,该方法包括:
69.步骤201,确定参与本地训练的多个目标边缘设备节点,并向所述目标边缘设备节点发送本地训练指令,以使所述目标边缘设备节点依据所述本地训练指令得到目标边缘设
备参数,并将与所述目标边缘设备参数对应的第一目标地址写入区块链网络;
70.步骤202,基于每个所述第一目标地址,从所述目标边缘设备节点中获取所述目标边缘设备参数;
71.在该实施例中,区块链网络中的聚合节点可以从多个边缘设备节点中随机确定本次参与本地训练的目标边缘设备节点,确定目标边缘设备节点后,聚合节点将本地训练指令分别发送给这些目标边缘设备节点,这样每个目标边缘设备节点接收到该本地训练指令后,可以以该本地训练指令为基础,根据本地训练指令最终确定对应的目标边缘设备参数,并将该目标边缘设备参数对应的第一目标地址写入到区块链网络中。在这里,本地训练指令指的是要求目标边缘设备节点在本地进行模型训练任务的指令,具体可以包括目标边缘设备标识以及训练任务信息。接着,聚合节点可以根据每个目标边缘设备参数对应的第一目标地址,从目标边缘设备节点中找到存储的目标边缘设备参数。
72.步骤203,依据所述目标边缘设备参数,确定与所述目标边缘设备节点对应的目标矩阵,其中,所述目标矩阵的列数与所述目标边缘设备节点的数量一致,所述目标矩阵的行数与任一所述目标边缘设备参数的维度一致,任意所述目标边缘设备参数对应的维度相同;基于所述目标矩阵,确定所述目标矩阵中任一行元素对应的行均值;将所述目标矩阵中的任一行元素分别减去对应的所述行均值,得到目标距离矩阵,并基于所述目标距离矩阵,得到目标均值向量以及目标方差向量;
73.在该实施例中,以不同目标边缘设备节点对应的目标边缘设备参数为基础,将任一目标边缘设备节点对应的目标边缘设备参数为列,利用全部目标边缘设备节点对应的目标边缘设备参数生成目标矩阵。也即,目标矩阵的行数可以是每个目标边缘设备参数对应的维度,目标矩阵的列数可以是目标边缘设备节点的个数。在这里,不同目标边缘设备节点对应的目标边缘设备参数的维度是相同的。例如,目标边缘设备节点共有5个,分别为节点1至节点5。其中,节点1对应的目标边缘设备参数为节点2对应的目标边缘设备参数为以此类推,节点5对应的目标边缘设备参数为这5个目标边缘设备参数的维度均为4,那么生成的目标矩阵可以是接着,以目标矩阵为基础,确定目标矩阵中每一行全部元素的行均值。例如,针对上述目标矩阵,第一行元素对应的行均值为以此类推,第四行元素对应的行均值为最后,把目标矩阵中的每一行对应的元素,分别减去与该行对应的行均值,这样可以得到与目标矩阵对应的目标距离矩阵。例如,目标距离矩阵可以表示为:
74.之后以该目标距离矩阵为基础,可以得到目标均值向量和目标方差向量。其中,目标均值向量可以是目标距离矩阵中,将目标距离矩阵每行的元素进行降维,具体可以是每行元素相加并除以每行元素的个数,得到降维后的新的行元素,从而得到目标均值向量;目标方差向量可以是目标距离矩阵中,将目标距离矩阵每行的元素,分别平方后相加再除以每行元素的个数,得到降维后的新的行元素,从而得到目标均值方差。在这里,目标均值向量和目标方差向量均可以是列向量。例如,目标均值向量可以是目标方差向量可以是
75.步骤204,基于所述目标均值向量以及所述目标方差向量,通过预设随机算法得到目标随机数向量,并基于所述目标随机数向量以及所述目标均值向量,确定目标全局参数;
76.在该实施例中,计算得到目标均值向量和目标方差向量后,可以将目标均值向量和目标方差向量作为基础,利用预设随机算法,得到目标随机数向量,其中,目标随机数向量的行数与目标均值向量的行数以及目标方差向量的行数都是一致的,而且目标随机数向量中的元素都是服从正态分布的。接着,根据目标随机数向量和目标均值向量,确定目标全局参数。具体可以是将目标随机数向量与目标均值向量相加,得到目标全局参数对应的向量,其中每个元素均为目标全局参数。
77.步骤205,通过所述目标全局参数,更新所述聚合节点中预设全局模型对应的预设全局参数,得到更新全局模型;通过预设测试集对所述更新全局模型进行测试,并统计测试准确率;当所述测试准确率小于或等于预设准确率阈值时,将所述更新全局模型作为所述目标全局模型;当所述测试准确率大于所述预设准确率阈值时,重新确定所述目标全局参数;
78.步骤206,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
79.在该实施例中,区块链网络中预先存储有预设全局模型。得到目标全局参数后,聚合节点可以以目标全局参数为基础,对预设全局模型中对应的预设全局参数进行更新,并得到更新全局模型。得到更新全局模型后,进一步可以利用预先准备好的测试数据集对更新全局模型进行测试,并当全部测试数据测试完毕后,统计测试准确率。当测试准确率小于或者等于预设准确率阈值时,说明更新全局模型的测试准确率较高,该更新全局模型可以直接使用,那么可以直接将该更新全局模型作为目标全局模型。当测试准确率大于预设准
确率阈值时,说明更新全局模型的测试准确率还不能满足要求,需要再次通过目标边缘设备节点进行本地训练,即目标边缘设备节点利用更新全局模型和预设本地数据进行训练,训练结束后得到新的目标边缘设备参数,聚合节点再次通过这些更新的目标边缘设备参数进行目标全局参数的计算,并通过该目标全局参数得到全新的更新全局模型,直到更新全局模型对应的测试准确率小于或等于预设准确率阈值时,得到目标全局模型。得到目标全局模型后,还可以将目标全局模型写入到区块链网络中,并广播给区块链网络的所有节点,这样区块链网络中的节点可以直接从区块链网络中下载该目标全局模型。
80.在本技术实施例中,可选地,步骤205中所述“当所述测试准确率大于所述预设准确率阈值时,重新确定所述目标全局参数”,具体包括:当所述测试准确率大于所述预设准确率阈值时,将所述目标全局参数对应的第二目标地址写入所述区块链网络,并将所述第二目标地址广播给所述目标边缘设备节点,以使所述目标边缘设备节点基于所述第二目标地址获取所述目标全局参数,并基于所述目标全局参数更新所述目标边缘设备参数;获取更新后的所述目标边缘设备参数,重新确定所述目标全局参数。
81.在该实施例中,当测试准确率大于预设准确率阈值时,聚合节点可以将目标全局参数对应的第二目标地址写入到区块链网络中。在这里,第二目标地址中可以包括聚合节点对应的本地地址和目标全局参数在聚合节点中的存储位置。此外聚合节点还可以将第二目标地址广播给目标边缘设备节点。目标边缘设备节点监听到聚合节点广播的第二目标地址后,可以根据第二目标地址从聚合节点中获取目标全局参数。接着,以目标全局参数为基础,更新预设全局模型中的预设全局参数,并利用预设本地数据再次训练更新后的预设全局模型,得到更新后的目标边缘设备参数。之后聚合节点可以重新从这些目标边缘设备节点中获取更新后的目标边缘设备参数,并重新确定目标全局参数。
82.在本实施例中提供了一种基于区块链的全局模型确定方法,应用于目标边缘设备节点,如图3所示,该方法包括:
83.步骤301,接收聚合节点发送的本地训练指令,从区块链网络中下载预设全局模型;
84.本技术实施例提供的一种基于区块链的全局模型确定方法,可以有效解决现有技术中各个终端设备节点中的本地数据服从非独立同分布的情况下,通过各个终端设备节点的本地数据对预设全局模型进行本地训练,并将训练结果进行聚合后得到的最终训练模型受数据的偏态性影响的问题。首先,区块链网络中的目标边缘设备节点可以接收聚合节点发送的本地训练指令,接收本地训练指令后可以从区块链网络中下载预设全局模型。在这里,区块链网络中的预设全局模型可以是由聚合节点上传的,具体可以是聚合节点通过随机数生成算法生成的初始全局模型。
85.步骤302,基于预设本地数据,对所述预设全局模型进行训练,当训练完毕后得到目标边缘设备参数,并生成与所述目标边缘设备参数对应的第一目标地址;
86.在该实施例中,目标边缘设备节点从区块链网络中下载预设全局模型后,可以以预设本地数据为基础,通过预设本地数据对该预设全局模型进行训练,当训练的次数达到预设次数阈值时,或当训练后得到的模型对应的模型误差小于预设误差阈值时,确定对应的目标边缘设备参数,并生成与该目标边缘设备参数对应的第一目标地址,在这里,第一目标地址中可以包括目标边缘设备节点对应的本地地址和目标边缘设备参数在目标边缘设
备节点中的存储位置。
87.步骤303,将所述第一目标地址写入所述区块链网络,以使所述聚合节点依据所述第一目标地址获取所述目标边缘设备参数,基于所述目标边缘设备参数得到目标均值向量以及目标方差向量,依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
88.在该实施例中,目标边缘设备节点可以将生成的第一目标地址写入到区块链网络中,这样聚合节点可以根据该第一目标地址,从目标边缘设备节点中获取与第一目标地址对应的目标边缘设备参数,并以目标边缘设备参数为基础,计算得到目标均值向量和目标方差向量,接着以目标均值向量和目标方差向量为基础,得到目标全局参数。之后聚合节点可以根据目标全局参数得到目标全局模型,将目标全局模型写入区块链网络,并广播给区块链网络中的节点。
89.在该实施例中,可选地,所述方法还包括:实时监听所述聚合节点,并当监听到所述聚合节点广播第二目标地址后,基于所述第二目标地址,从所述聚合节点中获取所述目标全局参数;依据所述目标全局参数更新所述目标边缘设备节点中所述预设全局模型对应的预设全局参数,并依据所述预设本地数据对更新后的所述预设全局模型进行训练,当训练完毕后更新所述目标边缘设备参数。
90.在该实施例中,目标边缘设备节点还可以对聚合节点进行实时监听。聚合节点根据目标边缘设备节点的目标边缘设备参数得到目标全局模型后,可以计算目标全局模型对应的测试准确率,当测试准确率大于预设准确率阈值时,聚合节点可以将目标全局参数对应的第二目标地址写入区块链网络中,并将第二目标地址广播给目标边缘设备节点。目标边缘设备节点监听到聚合节点广播第二目标地址之后,可以根据第二目标地址从聚合节点中找到目标全局参数,并获取该目标全局参数。之后可以以目标全局参数为基础,对目标边缘设备节点中预设全局模型对应的预设全局参数进行更新。接着利用目标边缘设备节点中的预设本地数据对更新后的预设全局模型进行训练,并当训练完毕后,可以对上一次得到的目标边缘设备参数进行更新。
91.在该实施例中,可选地,所述“当训练完毕后得到目标边缘设备参数”之后,所述方法还包括:对所述目标边缘设备参数进行签名。
92.在该实施例中,得到目标边缘设备参数后,对目标边缘设备参数进行签名,可以说明目标边缘设备参数是经过目标边缘设备节点训练得到的,而不是其他恶意设备上传的,能够从侧面反映出目标边缘设备参数的可用性。
93.进一步的,作为图1方法的具体实现,本技术实施例提供了一种基于区块链的全局模型确定装置,应用于聚合节点,如图4所示,该装置包括:
94.节点确定模块,用于确定参与本地训练的多个目标边缘设备节点,并向所述目标边缘设备节点发送本地训练指令,以使所述目标边缘设备节点依据所述本地训练指令得到目标边缘设备参数,并将与所述目标边缘设备参数对应的第一目标地址写入区块链网络;
95.参数获取模块,用于基于每个所述第一目标地址,从所述目标边缘设备节点中获取所述目标边缘设备参数,并依据所述目标边缘设备参数,得到目标均值向量以及目标方差向量;
96.模型确定模块,用于依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
97.可选地,所述参数获取模块,具体用于:
98.依据所述目标边缘设备参数,确定与所述目标边缘设备节点对应的目标矩阵,其中,所述目标矩阵的列数与所述目标边缘设备节点的数量一致,所述目标矩阵的行数与任一所述目标边缘设备参数的维度一致,任意所述目标边缘设备参数对应的维度相同;基于所述目标矩阵,确定所述目标矩阵中任一行元素对应的行均值;将所述目标矩阵中的任一行元素分别减去对应的所述行均值,得到目标距离矩阵,并基于所述目标距离矩阵,得到目标均值向量以及目标方差向量。
99.可选地,所述模型确定模块,具体用于:
100.基于所述目标均值向量以及所述目标方差向量,通过预设随机算法得到目标随机数向量,并基于所述目标随机数向量以及所述目标均值向量,确定目标全局参数。
101.可选地,所述模型确定模块,具体还用于:
102.通过所述目标全局参数,更新所述聚合节点中预设全局模型对应的预设全局参数,得到更新全局模型;通过预设测试集对所述更新全局模型进行测试,并统计测试准确率;当所述测试准确率小于或等于预设准确率阈值时,将所述更新全局模型作为所述目标全局模型;当所述测试准确率大于所述预设准确率阈值时,重新确定所述目标全局参数。
103.可选地,所述模型确定模块,具体还用于:
104.当所述测试准确率大于所述预设准确率阈值时,将所述目标全局参数对应的第二目标地址写入所述区块链网络,并将所述第二目标地址广播给所述目标边缘设备节点,以使所述目标边缘设备节点基于所述第二目标地址获取所述目标全局参数,并基于所述目标全局参数更新所述目标边缘设备参数;获取更新后的所述目标边缘设备参数,重新确定所述目标全局参数。
105.进一步的,作为图3方法的具体实现,本技术实施例提供了一种基于区块链的全局模型确定装置,应用于目标边缘设备节点,如图5所示,该装置包括:
106.模型下载模块,用于接收聚合节点发送的本地训练指令,从区块链网络中下载预设全局模型;
107.参数生成模块,用于基于预设本地数据,对所述预设全局模型进行训练,当训练完毕后得到目标边缘设备参数,并生成与所述目标边缘设备参数对应的第一目标地址;
108.地址写入模块,用于将所述第一目标地址写入所述区块链网络,以使所述聚合节点依据所述第一目标地址获取所述目标边缘设备参数,基于所述目标边缘设备参数得到目标均值向量以及目标方差向量,依据所述目标均值向量以及所述目标方差向量,确定目标全局参数,并基于所述目标全局参数,得到目标全局模型,将所述目标全局模型写入所述区块链网络,并广播给所述区块链网络中的节点。
109.可选地,所述装置还包括:
110.监听模块,用于实时监听所述聚合节点,并当监听到所述聚合节点广播第二目标地址后,基于所述第二目标地址,从所述聚合节点中获取所述目标全局参数;
111.参数更新模块,用于依据所述目标全局参数更新所述目标边缘设备节点中所述预
设全局模型对应的预设全局参数,并依据所述预设本地数据对更新后的所述预设全局模型进行训练,当训练完毕后更新所述目标边缘设备参数。
112.需要说明的是,本技术实施例提供的一种基于区块链的全局模型确定装置所涉及各功能单元的其他相应描述,可以参考图1至图3方法中的对应描述,在此不再赘述。
113.基于上述如图1至图3所示方法,相应的,本技术实施例还提供了一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述如图1至图3所示的基于区块链的全局模型确定方法。
114.基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施场景所述的方法。
115.基于上述如图1至图3所示的方法,以及图4至图5所示的虚拟装置实施例,为了实现上述目的,本技术实施例还提供了一种计算机设备,具体可以为个人计算机、服务器、网络设备等,该计算机设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1至图3所示的基于区块链的全局模型确定方法。
116.可选地,该计算机设备还可以包括用户接口、网络接口、摄像头、射频(radio frequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如蓝牙接口、wi-fi接口)等。
117.本领域技术人员可以理解,本实施例提供的一种计算机设备结构并不构成对该计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。
118.存储介质中还可以包括操作系统、网络通信模块。操作系统是管理和保存计算机设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与该实体设备中其它硬件和软件之间通信。
119.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本技术可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。首先,区块链网络中的聚合节点可以从多个边缘设备节点中随机确定本次参与本地训练的目标边缘设备节点,确定目标边缘设备节点后,聚合节点将本地训练指令分别发送给这些目标边缘设备节点,这样每个目标边缘设备节点接收到该本地训练指令后,可以以该本地训练指令为基础,根据本地训练指令最终确定对应的目标边缘设备参数,并将该目标边缘设备参数对应的第一目标地址写入到区块链网络中。接着,聚合节点可以根据每个目标边缘设备参数对应的第一目标地址,从目标边缘设备节点中找到存储的目标边缘设备参数,之后聚合节点可以以不同目标边缘设备节点对应的全部目标边缘设备参数为基础,计算目标均值向量和目标方差向量。得到目标均值向量和目标方差向量之后,进一步可以将目标均值向量和目标方差向量作为基础,确定目标全局参数,通过目标全局参数可以得到目标全局模型。得到目标全局模型后,还可以将目标全局模型写入到区块链网络中,并广播给区块链网络的所有节点。本技术实施例通过聚合节点将不同目标边缘设备节点对应的训练结果进行计算得到目标均值向量以及目标方差向量,并通过目标均值向量和目标方差向量得到目标全局参数,通过
目标全局参数得到目标全局模型,可以使各个目标边缘设备节点的本地数据服从非独立同分布的情况下,减少数据偏态性对目标全局模型对应的目标全局参数的影响,提升目标全局模型的准确性。
120.本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本技术所必须的。本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
121.上述本技术序号仅仅为了描述,不代表实施场景的优劣。以上公开的仅为本技术的几个具体实施场景,但是,本技术并非局限于此,任何本领域的技术人员能思之的变化都应落入本技术的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献