一种联邦学习方法及相关装置与流程

未命名 07-27 阅读:97 评论:0


1.本技术涉及人工智能(artificial intelligence,ai)技术领域,尤其涉及一种联邦学习方法及相关装置。


背景技术:

2.随着用户对个人隐私数据的保护意愿日益提升,数据拥有者之间的用户数据无法互通,形成了大大小小的“数据孤岛”。“数据孤岛”对基于海量数据的人工智能(artificial intelligence,ai)提出了新的挑战,即在没有权限获得足够多的训练数据的情况下,如何对机器学习模型进行训练。
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.将训练数据分别输入多个模型中的每个模型,并基于每个模型输出的预测结果确定每个模型的预测精度;
55.基于每个模型的预测精度确定目标模型,目标模型包括多个训练后的模型中预测精度最高的一个或多个模型。
56.在一种可能的实现方式中,处理模块,还用于:
57.将训练数据输入门网络,得到门网络输出的多个权重值,多个权重值与多个训练后的模型一一对应,多个权重值分别用于表示多个训练后的模型的输出结果在加权求和过程中的权重,门网络为预先训练得到的网络;
58.根据多个权重值确定目标模型,目标模型包括多个训练后的模型中对应权重值最高的一个或多个模型。
59.在一种可能的实现方式中,
60.处理模块,还用于根据目标数据,在多个训练后的模型中确定部分训练后的模型,目标数据为从第一节点获取到的数据,部分训练后的模型是多个训练后的模型中在处理目标数据时具有最优性能的模型;
61.发送模块,还用于向第一节点发送部分训练后的模型。
62.在一种可能的实现方式中,处理模块,还用于对第一组别中的多个模型的权重参数进行加权求和,得到第一聚合模型;
63.其中,所述第一组别属于所述多个组别,所述第一聚合模型属于所述多个聚合模型。
64.本技术第四方面提供一种联邦学习装置,包括:
65.接收模块,用于从聚合节点接收多个模型,多个模型的网络结构不同,且多个模型是聚合节点对不同节点上的模型进行聚合后得到的;
66.处理模块,用于基于训练数据,在多个模型中确定目标模型;
67.处理模块,还用于以多个模型为教师模型,对目标模型执行知识蒸馏训练,得到训练后的目标模型。
68.在一种可能的实现方式中,处理模块,还用于:
69.将所述训练数据分别输入多个模型中的每个模型,并基于所述每个模型输出的预测结果确定所述每个模型的预测精度;
70.基于所述每个模型的预测精度确定所述目标模型,所述目标模型为所述多个模型中预测精度最高的一个或多个模型。
71.在一种可能的实现方式中,处理模块,还用于:
72.将所述训练数据输入门网络,得到所述门网络输出的多个权重值,所述多个权重值与所述多个训练后的模型一一对应,所述多个权重值分别用于表示所述多个训练后的模型的输出结果在加权求和过程中的权重,所述门网络为预先训练得到的网络;
73.根据所述多个权重值确定所述目标模型,所述目标模型包括所述多个模型中对应权重值最高的一个或多个模型。
74.在一种可能的实现方式中,所述多个模型是所述聚合节点在接收到不同节点上的模型后,对相同网络结构的模型进行参数聚合并基于所述不同节点上的模型对聚合后的模型进行知识蒸馏训练得到的。
75.本技术第五方面提供一种联邦学习装置,可以包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时实现上述第一方面或第二方面任一实现方式的方法。对于处理器执行第一方面或第二方面的各个可能实现方式中的步骤,具体均可以参阅第一方面或第二方面,此处不再赘述。
76.本技术第六方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有
计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面任一实现方式的方法。
77.本技术第七方面提供了一种电路系统,电路系统包括处理电路,处理电路配置为执行上述第一方面或第二方面任一实现方式的方法。
78.本技术第八方面提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面任一实现方式的方法。
79.本技术第九方面提供了一种芯片系统,该芯片系统包括处理器,用于支持服务器或门限值获取装置实现上述第一方面或第二方面任一实现方式中所涉及的功能,例如,发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存服务器或通信设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
80.上述第二方面至第九方面的有益效果可以参考上述第一方面的介绍,在此不再赘述。
附图说明
81.图1为本技术实施例提供的一种联邦学习的场景示意图;
82.图2为相关技术中的一种联邦学习的执行过程示意图;
83.图3为本技术实施例提供的一种卷积神经网络的结构示意图;
84.图4为本技术实施例提供的另一种卷积神经网络的结构示意图;
85.图5为本技术实施例提供的一种系统架构500的示意图;
86.图6为本技术实施例提供的一种系统架构600的示意图;
87.图7为本技术实施例提供的一种联邦学习方法的流程示意图;
88.图8为本技术实施例提供的一种聚合节点接收多个模型的示意图;
89.图9为本技术实施例提供的一种对多个模型进行分组及参数聚合的示意图;
90.图10为本技术实施例提供的一种对多个聚合模型执行知识蒸馏的示意图;
91.图11为本技术实施例提供的一种聚合节点向各个节点发送训练后的模型的示意图;
92.图12a为本技术实施例提供的一种筛选目标模型的示意图;
93.图12b为本技术实施例提供的一种筛选目标模型的示意图;
94.图13为本技术实施例提供的另一种筛选目标模型的示意图;
95.图14为本技术实施例提供的另一种联邦学习方法的流程示意图;
96.图15为本技术实施例提供的一种联邦学习装置的结构示意图;
97.图16为本技术实施例提供的一种联邦学习装置的结构示意图;
98.图17为本技术实施例提供的执行设备的一种结构示意图;
99.图18为本技术实施例提供的芯片的一种结构示意图;
100.图19为本技术实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
101.为了使本技术的目的、技术方案及优点更加清楚明白,下面结合附图,对本技术的
实施例进行描述。显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
102.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便使实施例能够以除了在本技术图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本技术中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行顺序,只要能达到相同或者相类似的技术效果即可。本技术中所出现的单元的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个单元可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元之间的间接耦合或通信连接可以是电性或其他类似的形式,本技术中均不作限定。并且,作为分离部件说明的单元或子单元可以是也可以不是物理上的分离,可以是也可以不是物理单元,或者可以分布到多个电路单元中,可以根据实际的需要选择其中的部分或全部单元来实现本技术方案的目的。
103.为便于理解,以下先介绍本技术实施例所涉及的一些技术术语。
104.(1)联邦学习
105.联邦学习本质上是一种模型训练方法,能够在保障数据隐私安全及合法合规的基础上,实现数据共享,共同建立模型。联邦学习的核心思想是在多个数据源共同参与模型训练时,不需要进行原始数据流转的前提下,仅通过交互模型中间参数进行模型联合训练,原始数据可以不出本地。这种方式实现数据隐私保护和数据共享分析的平衡,即“数据可用不可见”的数据应用模式。
106.示例性地,请参阅图1,图1为本技术实施例提供的一种联邦学习的场景示意图。联邦学习的场景中可以包括多个客户端节点和中心节点,其中多个客户端节点和中心节点可以是支持数据传输的任意节点(如网络节点)。例如,客户端节点可以是移动终端或个人电脑。中心节点可以是服务器,或集群服务器。在一些实施例中,客户端节点可以称为训练数据的拥有者,中心节点也可称为联邦学习过程的协调者。
107.中心节点可用于维护联邦模型。客户端节点可以从中心节点获取联邦模型,并结合本地训练数据进行本地训练,得到本地模型。在训练得到本地模型之后,客户端节点可以将该本地模型发送给中心节点,以便中心节点更新或优化该联邦模型。如此往复,经过多轮迭代,直到联邦模型收敛或达到预设的迭代停止条件。
108.下面将结合图2,对联邦学习的一般过程进行介绍。如图2所示,联邦学习的执行过程包括以下的步骤201-205。
109.步骤201,中心节点构建联邦模型。
110.其中,中心节点可以构建通用的机器学习模型,也可以根据需求构建特定的机器
学习模型。以图像识别任务为例,中心节点可以构建一个卷积神经网络(convolutional neural network,cnn)作为联邦模型。
111.步骤202,多个客户端节点从中心节点获取或接收联邦模型。
112.其中,多个客户端节点可以是从中心节点获取或接收同一个联邦模型。例如,在一种实现方式中,客户端节点可以主动请求中心节点下发联邦模型。或者,在另一种实现方式中,中心节点主动向客户端节点下发联邦模型。以客户端节点为个人电脑,中心节点为服务器为例,则个人电脑可以从服务器下载联邦模型。
113.步骤203,多个客户端节点利用本地训练数据对联邦模型进行训练,得到本地模型。
114.具体地,多个客户端节点可以将联邦模型作为本地模型的初始模型,然后利用本地训练数据对该初始模型进行一步或多步训练,得到本地模型。
115.由于不同的客户端节点上具有不同的本地训练数据,因此基于相同的联邦模型,不同的客户端节点能够训练得到不同的本地模型。
116.步骤204,多个客户端节点向中心节点上传训练得到的本地模型。
117.步骤205,中心节点将多个本地模型进行聚合,得到更新后的联邦模型。
118.例如,在一种实现方式中,中心节点可以将多个客户端节点的本地模型的参数进行加权求和,并将加权求和的结果作为更新后的联邦模型。
119.需要说明的是,步骤201-205描述的过程可以看成是联邦学习过程中的一轮迭代。中心节点和客户端节点可以重复执行步骤201-205,直到联邦模型收敛或达到预设效果。
120.一般来说,联邦学习可用于训练机器学习模型。最常见的机器学习模型为神经网络。下面也将会对神经网络的相关概念进行解释。
121.(2)神经网络
122.神经网络可以是由神经单元组成的,神经单元可以是指以xs(即输入数据)和截距1为输入的运算单元,该运算单元的输出可以为:
[0123][0124]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0125]
(3)深度神经网络
[0126]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一
层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
[0127]
其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量
[0128]
由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0129]
(4)卷积神经网络(convosutionas neuras network,cnn)
[0130]
卷积神经网络是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者特征图(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层(例如本实施例中的第一卷积层、第二卷积层)。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0131]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0132]
具体的,如图3所示,卷积神经网络(cnn)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
[0133]
其中,卷积层/池化层120以及神经网络层130组成的结构可以为本技术中所描述的第一卷积层以及第二卷积层,输入层110和卷积层/池化层120连接,卷积层/池化层120连接与神经网络层130连接,神经网络层130的输出可以输入至激活层,激活层可以对神经网络层130的输出进行非线性化处理。
[0134]
卷积层/池化层120。卷积层:如图3所示卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,
125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0135]
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化
……
该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
[0136]
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
[0137]
当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0138]
池化层:由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图3中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。
[0139]
神经网络层130:在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图3所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
[0140]
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图4由110至140的传播为前向传播)完成,反向传播(如图4由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的
误差。
[0141]
需要说明的是,如图3所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图4所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
[0142]
(5)损失函数
[0143]
在训练神经网络的过程中,因为希望神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么神经网络的训练就变成了尽可能缩小这个loss的过程。
[0144]
(6)反向传播算法
[0145]
神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的模型中参数的大小,使得模型的误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的模型的参数,例如权重矩阵。
[0146]
(7)非独立同分布(non independent and identically distributed,non-iid)
[0147]
在概率论与统计学中,独立同分布(independent and identically distributed,iid)是指一组随机变量中每个变量的概率分布都相同,且这些随机变量互相独立。一组随机变量独立同分布并不意味着它们的样本空间中每个事件发生概率都相同。例如,投掷非均匀骰子得到的结果序列是独立同分布的,但掷出每个面朝上的概率并不相同。
[0148]
那么,non-iid的意思是变量之间非独立,或者非同分布。在联邦学习中,non-iid的意思一般是指数据不符合同分布的情况,因为数据的分布肯定是独立的,但是它们不一定服从同一采样方法。例如数据全集中有100类图片,某设备中都是风景类图片,某设备中都是人物类及植物类图片,前者是一种分布(1/100),后者是另一种分布(2/100)。反之,如果某设备中有这100类图片,其他设备中也有这100类图片,那么它们就是同分布的。
[0149]
(8)模态
[0150]
从数据角度来说,模态是指图像或文本等数据类型,不同模态的数据则是指数据的类型不同。
[0151]
从模型角度来说,模态是指模型的类型,不同模态的模型则是基于多种不同数据训练出来的不同的模型。
[0152]
(9)知识迁移
[0153]
知识迁移是指通过把已有知识集合迁移到另一个目标领域,提升目标领域的建模能力。基于模型的知识迁移可以简单理解为就是基于模型参数的迁移学习,如何使所构建
的模型可以学习到域之间的通用知识。
[0154]
(10)知识蒸馏
[0155]
知识蒸馏是迁移学习中的一种方法。知识蒸馏是通过采用预先训练好的模型的输出作为监督信号去训练另外一个网络。简单来说,知识蒸馏就是以预先训练好的网络作为教师网络,以待训练的网络作为学生网络,通过老师网络的指导,对学生网络进行训练,以使得学生网络可以具有和老师网络相同或相似的数据处理能力。通常,教师网络可以为复杂的网络模型,学生网络则可以为简单的网络模型;通过知识蒸馏,能够将复杂的网络模型所学习到的特征表示知识传递给简单的网络模型。
[0156]
(11)经验迁移
[0157]
经验迁移可以是指一个节点以模型或者数据的形式记录其数据模式信息,并传递给另一个节点用于训练模型,实现经验在节点间的相互迁移。
[0158]
目前的联邦学习方法要求每个客户端所训练的模型均是相同结构的模型,这样中心节点才能够通过参数平均的方式来聚合多个客户端所上传的模型。然而,在一些情况下,由于不同的客户端上所拥有的本地数据往往可能是不同模态的,即不同客户端上的数据非独立同分布。因此,为了尽可能地适配本地数据,不同的客户端上所训练的模型可能是不同结构的模型,因此现有的联邦学习方法无法应用于模型异构的场景,难以实现模型的聚合。
[0159]
有鉴于此,本技术提供了一种联邦学习方法,在聚合节点获取到不同网络结构的模型时,将相同网络结构的模型划分至同一个组别中,并对相同组别的模型进行参数聚合,从而得到网络结构不同的多个聚合模型;并且,针对每个聚合模型,基于原始所获取到的多个模型对每个聚合模型进行知识蒸馏训练,实现不同网络结构模型之间的经验传递,从而整合各种网络结构的模型的知识经验,提高模型的预测精度。
[0160]
这样一来,通过对相同网络结构的模型进行参数聚合,并基于各种网络结构的模型对聚合模型进行知识蒸馏,能够将参数聚合以及知识蒸馏在整合模型经验上的优势结合起来,实现不同网络结构的模型的聚合,并且保证聚合后所得到的模型的预测精度。
[0161]
为便于理解,以下先介绍本技术实施例所提供的联邦学习方法所应用的系统架构。
[0162]
请参阅图5,图5为本技术实施例提供的一种系统架构500的示意图。如图5所示,在该系统架构500中,聚合节点501由一个或多个服务器实现。可选的,聚合节点501可以与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备。聚合节点501可以布置在一个物理站点上,或者分布在多个物理站点上。
[0163]
用户可以操作各自的用户设备(例如客户端节点511、客户端节点512

客户端节点51n)与聚合节点501进行交互。每个客户端节点可以表示任何计算设备,例如个人计算机、服务器、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
[0164]
每个客户端节点可以通过任何通信机制/通信标准的通信网络与聚合节点501进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
[0165]
在具体实现过程中,聚合节点501作为中心节点,负责接收各个客户端节点所上传的模型,且不同客户端节点所上传的模型的网络结构可能是不相同的。这样,聚合节点501基于本实施例所提供的联邦学习方法对模型进行聚合,再向各个客户端节点返回聚合后所
得到的模型。
[0166]
具体来说,图5所介绍的系统架构是一种集中式系统架构,由一个统一的中心节点来负责实现各个客户端节点上模型的聚合。
[0167]
请参阅图6,图6为本技术实施例提供的一种系统架构600的示意图。如图6所示,在该系统架构600中,包括分布式的节点601-节点608。其中,系统架构600中的每个节点可以表示任何计算设备,例如服务器、个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
[0168]
其中,节点601和节点602可以为计算能力较强的节点(例如服务器),即节点601和节点602的计算能力可以是强于节点603-节点608的计算能力。因此,在系统架构600中,计算能力相对较弱的节点可以向附近具有较强计算能力的节点发送模型,从而使得计算能力较强的节点能够接收到附近的多个节点所发送的模型。并且,不同节点所发送的模型的网络结构可能是不相同的。例如,节点603-606向附近的节点601发送模型;节点605-608向附件的节点602发送模型。
[0169]
这样,计算能力较强的节点在接收到多个模型后,可以基于本实施例所提供的联邦学习方法对模型进行聚合,再向各个计算能力较弱的节点返回聚合后所得到的模型。
[0170]
具体来说,图6所介绍的系统架构是一种去中心化的分布式系统架构,系统架构中的部分节点能够接收其他节点所发送的模型,进而实现模型的聚合。其中,负责模型聚合的部分节点可以是基于多种方式来确定,例如确定计算能力较强的节点来负责模型聚合,又例如确定距离多个节点均较近的节点来负责模型聚合,本实施例并不限定分布式系统架构中负责模型聚合的节点。
[0171]
以上介绍了本技术实施例提供的方法所应用的方法,以下将详细介绍本技术实施例提供的方法的执行过程。请参阅图7,图7为本技术实施例提供的一种联邦学习方法的流程示意图。如图7所示,该联邦学习方法包括以下的步骤701-708。
[0172]
步骤701,聚合节点获取多个模型,多个模型是从多个节点获取到的。
[0173]
本实施例中,聚合节点可以是从多个节点处获取到多个模型,以对多个节点上所部署的模型进行聚合。其中,该多个节点中的每个节点可以是向聚合节点发送一个或多个模型,以使得聚合节点能够获取到上述的多个模型。
[0174]
其中,聚合节点所获取到的模型可以是其他节点基于本地数据训练后得到的模型,由聚合节点对这些模型进行进一步的聚合。
[0175]
可选的,聚合节点可以为集中式系统架构下的中心节点,仅用于负责对从其他节点处获取到的模型进行聚合。聚合节点也可以为分布式系统架构下的节点,可以负责对从其他节点处获取到的模型进行聚合,且该聚合节点上也部署有模型,用于处理聚合节点上的本地数据。因此,在聚合节点为分布式系统架构下的节点的情况下,聚合节点所获取到的多个模型中也可以是包括部署于聚合节点上的模型,即聚合节点本地的模型。
[0176]
例如,如图7所示,在聚合节点为集中式系统架构下的中心节点的情况下,聚合节点可以是从第一节点-第n节点获取到上述的多个模型;在聚合节点为分布式系统架构下的中心节点的情况下,聚合节点可以是从聚合节点本身以及第一节点-第n节点获取到上述的多个模型。
[0177]
需要说明的是,聚合节点所获取到的多个模型是用于执行相同的处理任务的,例
如多个模型均是用于执行图像处理任务或自然语言处理任务。其中,图像处理任务例如可以包括图像分类任务、图像识别任务以及图像增强任务等任务。自然语言处理任务例如可以包括文本识别任务、文本生成任务、语音识别任务、文本翻译任务等任务。
[0178]
两个模型的网络结构相同可以是指两个模型中所包括的神经网络层是相同的,且模型中的神经网络层之间的连接关系也是相同的。但是,网络结构相同的模型中所包括的神经网络层的权重参数可能是不同的。例如,以多个模型用于执行图像分类任务为例,该多个模型均可以为卷积神经网络结构,且部分模型具有相同的卷积神经网络结构,部分模型则具有不同的卷积神经网络结构。
[0179]
步骤702,根据多个模型的网络结构,聚合节点将多个模型分为多个组别,其中多个组别中的每个组别包括至少一个模型,且同一个组别中的模型具有相同的网络结构。
[0180]
由于多个模型是聚合节点从多个不同的节点上获取到的,而不同的节点向聚合节点所发送的模型的网络结构可能是相同的,也可能是不同的。因此,聚合节点所接收到的多个模型可能对应于多种网络结构,即不同的模型可能具有不同的网络结构。
[0181]
示例性地,请参阅图8,图8为本技术实施例提供的一种聚合节点接收多个模型的示意图。如图8所示,聚合节点从节点1-节点n上接收模型,其中节点1向聚合节点发送模型,节点2向聚合节点发送模型2,节点3向聚合节点发送模型3...节点n向聚合节点发送模型n。其中,节点1所发送的模型1和节点3所发送的模型3具有相同的网络结构,节点2所发送的模型2和节点n所发送的模型n具有相同的网络结构,且模型1与模型2具有不同的网络结构。
[0182]
本实施例中,聚合节点可以是根据多个模型中每个模型的网络结构,将多个模型划分为多个组别。在划分组别的过程中,具有相同网络结构的模型则被划分至同一个组别中,不同网络结构的模型被划分至不同的组别中。因此,在划分得到的多个组别中,每个组别中至少包括一个模型,且同一个组别中的模型具有相同的网络结构。
[0183]
示例性地,请参阅图9,图9为本技术实施例提供的一种对多个模型进行分组及参数聚合的示意图。如图9所示,聚合节点所获取到的模型1-模型n对应于m种网络结构,因此聚合节点基于模型1-模型n的网络结构能够划分得到m个组别(即组别1-组别m)。其中,网络结构相同的模型1和模型3被划分至组别1中,网络结构相同的模型2和模型n被划分至组别2中。当然,组别1中可能还包括其他的与模型1和模型3具有相同网络结构的模型;组别2中可能也包括有其他的与模型2和模型n具有相同网络结构的模型,本实施例对此并不做具体限定。
[0184]
步骤703,聚合节点对多个组别的每个组别中的模型进行参数聚合,得到多个聚合模型,其中同一个组别中的模型被聚合得到一个聚合模型,多个聚合模型对应于多个组别。
[0185]
本实施例中,由于同一个组别中的模型具有相同的网络结构,因此同一个组别中的模型往往会包括相同数量的权重参数。因此,聚合节点可以是对同一个组别中的多个模型进行参数聚合,从而得到聚合模型。这样,聚合节点对多个组别的每个组别中的模型进行参数聚合,即可得到多个聚合模型,其中每个聚合模型均对应于一个组别,即多个聚合模型与多个组别一一对应。此外,每个聚合模型的网络结构与其对应的组别中的模型的网络结构是相同的。
[0186]
以多个组别中的第一组别为例,对第一组别中的模型进行参数聚合的过程具体可以包括:对第一组别中的多个模型的权重参数进行加权求和,得到第一聚合模型;其中,第
一组别属于多个组别,第一聚合模型属于多个聚合模型。由于第一组别中的多个模型具有相同的网络结构,因此该多个模型中具有权重参数的网络结构位置也是相同的,由多个模型聚合得到的第一聚合模型中具有权重参数的网络结构位置也是相同的。那么,第一聚合模型中任意一个网络结构位置上的权重参数值均可以是由多个模型在该网络结构位置上的权重参数进行加权求和得到的。
[0187]
例如,假设第一组别中的多个模型上具有权重参数的网络结构位置包括位置1-位置m,由于第一聚合模型与第一组别中的多个模型具有相同的网络结构,因此第一聚合模型上具有权重参数的网络结构位置也包括位置1-位置m。并且,第一聚合模型的位置1上的权重参数是通过对多个模型的位置1上的权重参数进行加权求和得到的;第一聚合模型的位置2上的权重参数是通过对多个模型的位置2上的权重参数进行加权求和得到的;以此类推,第一聚合模型中每个位置上的权重参数均是对多个模型的相同位置上的权重参数进行加权求和得到的。
[0188]
总的来说,每个聚合模型的网络结构均与其对应的组别中的模型的网络结构相同,且每个聚合模型中的权重参数均可以是对同一组别中的一个或多个模型的权重参数进行加权求和得到的。
[0189]
示例性地,如图9所示,组别1中的模型1和模型3被聚合得到聚合模型1,其中聚合模型1的网络结构与模型1以及模型3的网络结构相同,且聚合模型1的权重参数是通过对模型1和模型3的权重参数进行加权求和得到的。组别2中的模型2和模型n被聚合得到聚合模型2,其中聚合模型2的网络结构与模型2以及模型n的网络结构相同,且聚合模型2的权重参数是通过对模型2和模型n的权重参数进行加权求和得到的。
[0190]
步骤704,以多个模型为教师模型,聚合节点分别对多个聚合模型中的每个聚合模型执行知识蒸馏训练,得到多个训练后的模型。
[0191]
由于每个聚合模型都是基于同一个组别中具有相同网络结构的模型聚合得到的,因此每个聚合模型实际上仅仅是整合了同一网络结构的模型所学习到的知识,并没有整合到其他不同网络结构的模型的知识。
[0192]
因此,本实施例中以聚合节点原始所接收到的多个模型作为教师模型,对每个聚合模型均执行知识蒸馏训练,以实现不同网络结构的模型之间的知识迁移,保证每个聚合模型在知识蒸馏训练中能够学习到其他不同网络结构的模型上的知识。这样一来,通过对聚合模型执行知识蒸馏训练后所得到的训练后的模型实际上是整合了不同网络结构的模型之间的知识经验,能够有效地提升训练后的模型的预测精度。
[0193]
为便于理解,以下将以聚合节点对多个聚合模型中的第一聚合模型执行知识蒸馏训练为例,详细介绍对聚合模型所执行的知识蒸馏训练的过程。
[0194]
具体地,在对第一聚合模型执行知识蒸馏训练的过程中,先将训练样本分别输入第一聚合模型以及多个模型,得到目标预测结果和多个预测结果。其中,第一聚合模型可以为多个聚合模型中的任意一个模型,目标预测结果即为第一聚合模型所输出的预测结果,多个预测结果为上述的多个模型分别输出的预测结果。其中,训练样本可以是聚合节点上能够获取到的本地数据和/或公有数据。
[0195]
然后,根据第一聚合模型所输出的目标预测结果以及多个模型所输出的多个预测结果,可以构建得到损失函数,该损失函数可以是基于目标预测结果与多个预测结果之间
的差异得到的。这样,基于损失函数训练第一聚合模型,得到训练后的第一聚合模型。
[0196]
本方案中,通过基于原始的多个模型的预测结果与聚合模型的预测结果之间的差异来构建蒸馏损失函数,能够实现基于知识蒸馏的方式来支持不同网络结构的模型之间的经验传递,使得聚合模型能够进一步地聚合各种网络结构下的知识经验,提高聚合模型的预测精度。
[0197]
可选的,损失函数包括第一子损失函数和第二子损失函数,第一子损失函数是基于目标预测结果与多个预测结果之间的差异得到的,第二子损失函数则是基于训练样本的真实标签与目标预测结果之间的差异得到的。例如,假设第一聚合模型用于执行图像分类任务,则训练样本为图像,训练样本的真实标签则为训练样本的实际类别,目标预测结果是第一聚合模型所输出的类别预测结果。
[0198]
此外,损失函数具体可以是对第一子损失函数和第二子损失函数进行加权求和后得到的。其中,第一子损失函数和第二子损失函数的权重可以根据模型的实际训练情况来确定或调整,本实施例对此并不做具体限定。
[0199]
本方案中,通过基于原始的多个模型的预测结果与聚合模型的预测结果之间的差异来构建蒸馏损失函数,以及基于训练样本的真实标签来构建标签损失函数,能够实现在标签损失函数的约束下,基于知识蒸馏的方式来支持不同网络结构的模型之间的经验传递,使得聚合模型能够有效地聚合各种网络结构下的知识经验,提高聚合模型的预测精度。
[0200]
其中,上述的第一损失函数可以是通过多种方式来构建的。
[0201]
在一种可能的实现方式中,第一损失函数是基于目标预测结果与多个预测结果中每个预测结果之间的差异得到的。也就是说,第一损失函数实际上可以是对多个差异值进行加权求和得到的,该多个差异值包括目标预测结果与多个预测结果中每个预测结果之间的差异值。
[0202]
在另一种可能的实现方式中,第一损失函数是基于目标预测结果与多个预测结果的加权平均值之间的差异得到的。也就是说,在得到多个预测结果之后,可以是先对多个预测结果进行加权求和,且每个预测结果对应的权重是相同的,从而得到多个预测结果的加权平均值。这样一来,再求取目标预测结果与多个预测结果的加权平均值之间的差异值,即可得到第一损失函数。例如,在第一聚合模型用于执行图像分类任务的情况下,多个模型所输出的多个预测结果实际上均是针对于各个类别的预测概率(即每个预测结果均包括各个类别下的预测概率),因此对多个预测结果进行加权求和的过程实际上是对各个类别的预测概率值进行加权求和,从而得到各个类别下的加权求和概率值。
[0203]
示例性地,请参阅图10,图10为本技术实施例提供的一种对多个聚合模型执行知识蒸馏的示意图。如图10所示,聚合节点基于原始接收到的模型1-模型n,得到网络结构不同的聚合模型1-聚合模型m。并且,针对于聚合模型1-聚合模型m中的每个聚合模型,聚合节点基于原始接收到的模型1-模型n对每个聚合模型执行知识蒸馏,从而得到训练后的模型1-训练后的模型m。
[0204]
步骤705,聚合节点向多个节点发送多个训练后的模型。
[0205]
在聚合节点对每个聚合模型均执行知识蒸馏训练后,能够得到多个训练后的模型,该多个训练后的模型实际上都是基于不同网络结构的模型整合后得到。因此,聚合节点可以向多个节点发送多个训练后的模型,以使得多个节点能够选择其中的一个或多个模型
继续执行本地训练。
[0206]
示例性地,如图10所示,聚合点对各个聚合模型执行知识蒸馏后,得到训练后的模型1-训练后的模型m,并将训练后的模型1-训练后的模型m发送给节点1-节点n中的每个节点。
[0207]
可以理解的是,由于聚合节点对各个节点所上传的模型进行聚合后,仍然得到多个网络结构不同的模型(即上述的多个训练后的模型),因此如果聚合节点是向各个节点均发送多个训练后的模型,则可能会存在数据通信量较大的情况。尤其是在联邦学习的场景下,聚合节点和其他节点往往需要交互多轮模型,进一步加大了数据通信量。
[0208]
基于此,聚合节点可以是预先获取各个节点上所拥有的部分数据或者是获取与各个节点上的本地数据类似的数据,进而基于这些数据来为各个节点筛选一部分模型,避免向各个节点发送过多的模型。
[0209]
示例性地,聚合节点可以是根据目标数据,在多个训练后的模型中确定部分训练后的模型,并向第一节点发送部分训练后的模型。其中,目标数据为聚合节点从第一节点获取到的数据,第一节点为多个节点中的一个,该部分训练后的模型则是多个训练后的模型中在处理目标数据时具有最优性能的模型。其中,部分训练后的模型的数量可以根据第一节点的处理能力来确定或调整,在此不做具体限定。
[0210]
具体地,第一节点可以是预先在本地数据中挑选一部分数据作为目标数据,并向聚合节点发送该目标数据。其中,第一节点所挑选的目标数据可以为第一节点上的典型数据,能够有效地表征第一节点上的本地数据的特征。
[0211]
或者,在第一节点不希望向聚合节点传递第一节点上的真实数据的情况下,第一节点可以基于第一节点上的本地数据训练得到一个数据生成器,该数据生成器能够在没有数据输入的情况下输出与第一节点上的本地数据类似的数据。这样,第一节点向聚合节点发送数据生成器之后,聚合节点即可根据数据生成器生成上述的目标数据。
[0212]
示例性地,请参阅图11,图11为本技术实施例提供的一种聚合节点向各个节点发送训练后的模型的示意图。如图11所示,聚合节点可以是预先获取到来自于各个节点的数据,并基于来自于各个节点的数据为各个节点筛选部分训练后的模型,进而向节点发送筛选后所得到的部分训练后的模型,而不需要向每个节点发送所有的训练后的模型。比如,聚合节点只向节点1发送训练后1的模型1和训练后的模型2,聚合节点只向节点2发送训练后的模型2和训练后的模型n。
[0213]
步骤706,第一节点从聚合节点接收多个训练后的模型。
[0214]
其中,第一节点为上述的多个节点中的一个。该多个训练后的模型的网络结构不同,且多个模型是聚合节点对不同节点上的模型进行聚合后得到的。
[0215]
具体来说,该多个训练后的模型是第一节点在接收到不同节点上的模型后,对相同网络结构的模型进行参数聚合并基于不同节点上的模型对聚合后的模型进行知识蒸馏得到的。
[0216]
步骤707,第一节点基于训练数据,在多个训练后的模型中确定目标模型。
[0217]
由于第一节点从聚合节点接收到了多个训练后的模型,且多个训练后的模型针对于第一节点中的训练数据的处理性能是不同的,因此第一节点可以基于本地的训练数据,从多个训练后的模型中确定适用于处理第一节点的本地数据的目标模型(即筛选与第一节
点的本地数据适配的目标模型)。
[0218]
其中,第一节点所确定的目标模型可以是包括一个或多个训练后的模型。在第一节点的处理能力较差的情况下,第一节点可以是确定一个训练后的模型作为目标模型;在第一节点的处理能力较强的情况下,第一节点则可以是确定多个训练后的模型作为目标模型。
[0219]
具体地,第一节点在多个训练后的模型中确定目标模型的方式可以有多种。
[0220]
在一种可能的实现方式中,第一节点可以将训练数据输入门网络,得到门网络输出的多个权重值,多个权重值与多个训练后的模型一一对应,多个权重值分别用于表示多个训练后的模型的输出结果在加权求和过程中的权重。也就是说,多个训练后的模型是与门网络配合来实现训练数据的处理。门网络用于基于训练数据输出多个训练后的模型中每个训练后的模型对应的权重值,这样在每个训练后的模型输出训练数据对应的输出结果后,即可根据每个训练后的模型对应的权重值对多个输出结果进行加权求和,从而得到最终的输出结果。
[0221]
其中,门网络可以为基于第一节点的本地数据预先训练得到的网络。在训练门网络的过程中,第一节点可以将本地数据同时输入至门网络和多个训练后的模型中,并由门网络输出每个训练后的模型所对应的权重值。这样,在每个训练后的模型输出训练数据对应的输出结果后,即可根据每个训练后的模型对应的权重值对多个输出结果进行加权求和,从而得到最终的输出结果。因此,门网络所输出的权重值能够体现多个训练后的模型针对于第一节点的本地数据的性能表现。对于任意一个训练后的模型而言,如果门网络针对该训练后的模型所输出的权重值越高,则代表该训练后的模型在处理第一节点的本地数据上的性能表现越好,即该训练后的模型与第一节点的本地数据越适配;如果门网络针对该训练后的模型所输出的权重值越低,则代表该训练后的模型在处理第一节点的本地数据上的性能表现越差,即该训练后的模型与第一节点的本地数据越不适配。
[0222]
这样,第一节点可以根据门网络所输出的多个权重值确定目标模型,该目标模型包括多个训练后的模型中对应权重值最高的一个或多个模型。也就是说,第一节点可以是以每个训练后的模型所对应的权重值来衡量每个训练后的模型针对于第一节点的本地数据的适配程度,进而在多个训练后的模型中选择适配程度最高的一个或多个模型(即目标模型)。
[0223]
示例性地,请参阅图12a和图12b,图12a为本技术实施例提供的一种筛选目标模型的示意图;图12b为本技术实施例提供的一种筛选目标模型的示意图。如图12a和图12b所示,第一节点在获取到训练后的模型1-训练后的模型m之后,可以基于门网络以及训练后的模型1-训练后的模型m构建得到一个整体的模型,其中输入数据是同时输入至门网络以及训练后的模型1-训练后的模型m中,并且由门网络输出训练后的模型1-训练后的模型m对应的权重值,进而基于该权重值对每个训练后的模型的输出结果进行加权求和,得到最终的输出结果。
[0224]
在图12a中,在基于第一节点的本地数据完成对门网络的训练后,则可以基于门网络所输出的权重值来筛选目标模型,得到模型1-模型k。即,在图12a中,目标模型可以是包括多个模型。
[0225]
在图12b中,在基于第一节点的本地数据完成对门网络的训练后,则可以基于门网
络所输出的权重值来筛选目标模型,得到模型k。即,在图12b中,目标模型可以是仅包括一个模型。
[0226]
本方案中,通过训练门网络来输出每个模型对应的权重值,从而实现衡量每个模型针对于本地数据的适配程度,保证节点能够从多个模型中选择得到在处理节点的本地数据时能够具有最优性能的目标模型。
[0227]
在另一种可能的实现方式中,第一节点可以将训练数据分别输入多个训练后的模型中的每个训练后的模型,并基于每个训练后的模型输出的预测结果确定每个训练后的模型的预测精度。比如,第一节点可以准备多个训练样本,并将该多个训练样本均输入至多个训练后的模型中,从而能够基于多个训练后的模型针对每个训练样本的预测准确率统计得到每个训练后的模型的预测精度。
[0228]
然后,第一节点基于每个训练后的模型的预测精度确定目标模型,目标模型为多个训练后的模型中预测精度最高的一个或多个模型。
[0229]
示例性地,请参阅图13,图13为本技术实施例提供的另一种筛选目标模型的示意图。如图13所示,第一节点在获取到训练后的模型1-训练后的模型m之后,可以将训练数据输入至每个训练后的模型中,从而得到每个训练后的模型所对应的预测精度,进而基于模型的预测精度来筛选目标模型,得到预测精度最高的模型k。
[0230]
本方案中,通过基于节点的本地数据来确定每个模型的预测精度,实现衡量每个模型针对于本地数据的适配程度,保证节点能够从多个模型中选择得到在处理节点的本地数据时能够具有最优性能的目标模型。
[0231]
步骤708,第一节点以多个训练后的模型为教师模型,对目标模型执行知识蒸馏训练,得到训练后的目标模型。
[0232]
其中,第一节点对目标模型执行知识蒸馏训练的过程与上述的步骤704中聚合节点对聚合模型执行知识蒸馏训练的过程类似,区别在于第一节点对目标模型执行知识蒸馏训练的过程是采用第一节点上的本地数据,而聚合节点对聚合模型执行知识蒸馏训练的过程是采用聚合节点上的本地数据和/或聚合节点所获取到的公有数据。具体可以参考上述的步骤704,在此不再赘述。
[0233]
此外,在目标模型包括多个模型的情况下,目标模型还需要与门网络配合以执行数据处理。因此,对目标模型执行知识蒸馏训练的过程中同时对目标模型对应的门网络执行训练,以使得门网络能够正确地输出目标模型中每个模型对应的权重值。
[0234]
本实施例中,第一节点得到训练后的目标模型后,可以将训练后的目标模型部署于第一节点上,以基于第一节点上的本地数据执行推理任务。
[0235]
示例性地,如图12a和图12b所示,在确定目标模型之后,可以基于第一节点的本地数据对目标模型执行知识蒸馏训练(即基于本地数据微调目标模型),实现目标模型的进一步训练。
[0236]
本方案中,第一节点在筛选得到目标模型后,以原始接收到模型作为教师模型对目标模型执行知识蒸馏训练,能够在考虑针对第一节点的本地数据执行个性化微调的基础上,保证目标模型不会遗忘原有经验,有效地避免由于第一节点的本地数据质量差而导致目标模型的预测精度剧烈波动(即避免出现目标模型过拟合的现象)。
[0237]
可以理解的是,以上步骤701-708实际上是介绍了联邦学习过程中的一轮迭代过
程。在实际应用场景下,联邦学习过程中可以是包括多轮迭代过程,即各个节点在训练得到目标模型后,则将训练后的目标模型继续发送给聚合节点,由聚合节点再对各个节点所上传的模型进行聚合,即执行新的一轮迭代过程。
[0238]
以上介绍了聚合节点在对各个节点所上传的模型进行聚合后,向各个节点下发聚合后的模型,并由各个节点对聚合后的模型进行进一步的筛选和训练。
[0239]
在分布式系统架构中,由于聚合节点本身也部署有模型,且聚合节点也需要模型对本地数据进行处理。因此,在一些实施例中,聚合节点在聚合得到多个模型后,还可以在多个模型中筛选适用于聚合节点的模型,并进一步对所筛选的模型进行训练。
[0240]
示例性地,请参阅图14,图14为本技术实施例提供的另一种联邦学习方法的流程示意图。如图14所示,该联邦学习方法包括以下的步骤1401-1407。
[0241]
步骤1401,聚合节点获取多个模型,多个模型是从多个节点获取到的。
[0242]
本实施例中,聚合节点为分布式系统架构下的节点,且聚合节点上部署有模型。因此,聚合节点所获取到的多个模型同样包括聚合节点上所部署的模型。
[0243]
步骤1402,根据多个模型的网络结构,聚合节点将多个模型分为多个组别,其中多个组别中的每个组别包括至少一个模型,且同一个组别中的模型具有相同的网络结构。
[0244]
步骤1403,聚合节点对多个组别的每个组别中的模型进行参数聚合,得到多个聚合模型,其中同一个组别中的模型被聚合得到一个聚合模型,多个聚合模型对应于多个组别。
[0245]
步骤1404,以多个模型为教师模型,聚合节点分别对多个聚合模型中的每个聚合模型执行知识蒸馏训练,得到多个训练后的模型。
[0246]
步骤1405,聚合节点向多个节点发送多个训练后的模型。
[0247]
其中,步骤1401-1405与上述的步骤701-705类似,具体请参考上述的步骤701-705,在此不再赘述。
[0248]
步骤1406,聚合节点基于训练数据,在多个训练后的模型中确定目标模型。
[0249]
由于聚合节点本身也需要基于模型来处理聚合节点上的本地数据,因此聚合节点同样可以是基于聚合节点上的训练数据,在多个训练后的模型中确定目标模型。
[0250]
步骤1407,聚合节点以多个训练后的模型为教师模型,对目标模型执行知识蒸馏训练,得到训练后的目标模型。
[0251]
类似地,聚合节点确定目标模型以及对目标模型执行知识蒸馏训练的过程与上述的步骤707-708类似,具体可以参考上述的步骤707-708中第一节点确定目标模型以及对目标模型执行知识蒸馏训练的过程,在此不再赘述。
[0252]
以上详细介绍了本技术实施例提供的方法,接下来将介绍本技术实施例提供的用于执行上述方法的设备。
[0253]
请参阅图15,图15为本技术实施例提供的一种联邦学习装置的结构示意图。如图15所示,该联邦学习装置属于聚合节点,包括:
[0254]
获取模块1501,用于获取多个模型,多个模型是从多个节点获取到的;
[0255]
处理模块1502,还用于根据多个模型的网络结构,将多个模型分为多个组别,其中多个组别中的每个组别包括至少一个模型,且同一个组别中的模型具有相同的网络结构;
[0256]
处理模块1502,还用于对多个组别的每个组别中的模型进行参数聚合,得到多个
聚合模型,其中同一个组别中的模型被聚合得到一个聚合模型,多个聚合模型对应于多个组别;
[0257]
处理模块1502,还用于以多个模型为教师模型,分别对多个聚合模型中的每个聚合模型执行知识蒸馏训练,得到多个训练后的模型;
[0258]
发送模块1503,用于向多个节点发送多个训练后的模型。
[0259]
在一种可能的实现方式中,处理模块1502,还用于:
[0260]
将训练样本分别输入第一聚合模型以及多个模型,得到目标预测结果和多个预测结果,其中第一聚合模型为多个聚合模型中的任意一个模型,目标预测结果对应于第一聚合模型,多个预测结果对应于多个模型;
[0261]
基于损失函数训练第一聚合模型,得到训练后的第一聚合模型,损失函数是基于目标预测结果与多个预测结果之间的差异得到的。
[0262]
在一种可能的实现方式中,损失函数是基于目标预测结果与多个预测结果中每个预测结果之间的差异得到的;
[0263]
或者,损失函数是基于目标预测结果与多个预测结果的加权平均值之间的差异得到的。
[0264]
在一种可能的实现方式中,损失函数包括第一子损失函数和第二子损失函数,第一子损失函数是基于目标预测结果与多个预测结果之间的差异得到的,第二子损失函数是基于训练样本的真实标签与目标预测结果之间的差异得到的。
[0265]
在一种可能的实现方式中,处理模块1502,还用于:
[0266]
基于训练数据,在多个训练后的模型中确定目标模型;
[0267]
以多个训练后的模型为教师模型,对目标模型执行知识蒸馏训练,得到更新后的目标模型,更新后的目标模型用于执行基于本地数据的推理任务。
[0268]
在一种可能的实现方式中,处理模块1502,还用于:
[0269]
将训练数据分别输入多个模型中的每个模型,并基于每个模型输出的预测结果确定每个模型的预测精度;
[0270]
基于每个模型的预测精度确定目标模型,目标模型包括多个训练后的模型中预测精度最高的一个或多个模型。
[0271]
在一种可能的实现方式中,处理模块1502,还用于:
[0272]
将训练数据输入门网络,得到门网络输出的多个权重值,多个权重值与多个训练后的模型一一对应,多个权重值分别用于表示多个训练后的模型的输出结果在加权求和过程中的权重,门网络为预先训练得到的网络;
[0273]
根据多个权重值确定目标模型,目标模型包括多个训练后的模型中对应权重值最高的一个或多个模型。
[0274]
在一种可能的实现方式中,
[0275]
处理模块1502,还用于根据目标数据,在多个训练后的模型中确定部分训练后的模型,目标数据为从第一节点获取到的数据,部分训练后的模型是多个训练后的模型中在处理目标数据时具有最优性能的模型;
[0276]
发送模块1503,还用于向第一节点发送部分训练后的模型。
[0277]
在一种可能的实现方式中,处理模块1502,还用于对第一组别中的多个模型的权
重参数进行加权求和,得到第一聚合模型;
[0278]
其中,所述第一组别属于所述多个组别,所述第一聚合模型属于所述多个聚合模型。
[0279]
请参阅图16,图16为本技术实施例提供的一种联邦学习装置的结构示意图。如图16所示,该联邦学习装置包括:
[0280]
接收模块1601,用于从聚合节点接收多个模型,多个模型的网络结构不同,且多个模型是聚合节点对不同节点上的模型进行聚合后得到的;
[0281]
处理模块1602,用于基于训练数据,在多个模型中确定目标模型;
[0282]
处理模块1602,还用于以多个模型为教师模型,对目标模型执行知识蒸馏训练,得到训练后的目标模型。
[0283]
在一种可能的实现方式中,处理模块1602,还用于:
[0284]
将所述训练数据分别输入多个模型中的每个模型,并基于所述每个模型输出的预测结果确定所述每个模型的预测精度;
[0285]
基于所述每个模型的预测精度确定所述目标模型,所述目标模型为所述多个模型中预测精度最高的一个或多个模型。
[0286]
在一种可能的实现方式中,处理模块1602,还用于:
[0287]
将所述训练数据输入门网络,得到所述门网络输出的多个权重值,所述多个权重值与所述多个训练后的模型一一对应,所述多个权重值分别用于表示所述多个训练后的模型的输出结果在加权求和过程中的权重,所述门网络为预先训练得到的网络;
[0288]
根据所述多个权重值确定所述目标模型,所述目标模型包括所述多个模型中对应权重值最高的一个或多个模型。
[0289]
在一种可能的实现方式中,所述多个模型是所述聚合节点在接收到不同节点上的模型后,对相同网络结构的模型进行参数聚合并基于所述不同节点上的模型对聚合后的模型进行知识蒸馏训练得到的。
[0290]
请参阅图17,图17为本技术实施例提供的执行设备的一种结构示意图,执行设备1700具体可以表现为手机、平板、笔记本电脑、智能穿戴设备、服务器等,此处不做限定。具体的,执行设备1700包括:接收器1701、发射器1702、处理器1703和存储器1704(其中执行设备1700中的处理器1703的数量可以一个或多个,图17中以一个处理器为例),其中,处理器1703可以包括应用处理器17031和通信处理器17032。在本技术的一些实施例中,接收器1701、发射器1702、处理器1703和存储器1704可通过总线或其它方式连接。
[0291]
存储器1704可以包括只读存储器和随机存取存储器,并向处理器1703提供指令和数据。存储器1704的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储器1704存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
[0292]
处理器1703控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0293]
上述本技术实施例揭示的方法可以应用于处理器1703中,或者由处理器1703实
现。处理器1703可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1703中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1703可以是通用处理器、数字信号处理器(digital signal processing,dsp)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器1703可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1704,处理器1703读取存储器1704中的信息,结合其硬件完成上述方法的步骤。
[0294]
接收器1701可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器1702可用于通过第一接口输出数字或字符信息;发射器1702还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器1702还可以包括显示屏等显示设备。
[0295]
本技术实施例提供的电子设备具体可以为芯片,芯片包括:处理单元和通信单元,处理单元例如可以是处理器,通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使执行设备内的芯片执行上述实施例描述的方法。可选地,存储单元为芯片内的存储单元,如寄存器、缓存等,存储单元还可以是无线接入设备端内的位于芯片外部的存储单元,如只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)等。
[0296]
具体的,请参阅图18,图18为本技术实施例提供的芯片的一种结构示意图,芯片可以表现为神经网络处理器npu 1800,npu 1800作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路1803,通过控制器1804控制运算电路1803提取存储器中的矩阵数据并进行乘法运算。
[0297]
在一些实现中,运算电路1803内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路1803是二维脉动阵列。运算电路1803还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1803是通用的矩阵处理器。
[0298]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器1802中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器1801中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1808中。
[0299]
统一存储器1806用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,dmac)1805,dmac被搬运到权重存储器1802中。输入数据也通过dmac被搬运到统一存储器1806中。
[0300]
biu为bus interface unit即,总线接口单元1810,用于axi总线与dmac和取指存
储器(instruction fetch buffer,ifb)1809的交互。
[0301]
总线接口单元1810(bus interface unit,biu),用于取指存储器1809从外部存储器获取指令,还用于存储单元访问控制器1805从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0302]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器1806或将权重数据搬运到权重存储器1802中或将输入数据数据搬运到输入存储器1801中。
[0303]
向量计算单元1807包括多个运算处理单元,在需要的情况下,对运算电路1803的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如batch normalization(批归一化),像素级求和,对特征平面进行上采样等。
[0304]
在一些实现中,向量计算单元1807能将经处理的输出的向量存储到统一存储器1806。例如,向量计算单元1807可以将线性函数;或,非线性函数应用到运算电路1803的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1807生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1803的激活输入,例如用于在神经网络中的后续层中的使用。
[0305]
控制器1804连接的取指存储器(instruction fetch buffer)1809,用于存储控制器1804使用的指令;
[0306]
统一存储器1806,输入存储器1801,权重存储器1802以及取指存储器1809均为on-chip存储器。外部存储器私有于该npu硬件架构。
[0307]
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,asic,或一个或多个用于控制上述程序执行的集成电路。
[0308]
可以参阅图19,图19为本技术实施例提供的一种计算机可读存储介质的结构示意图。本技术还提供了一种计算机可读存储介质,在一些实施例中,上述图6所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
[0309]
图19示意性地示出根据这里展示的至少一些实施例而布置的示例计算机可读存储介质的概念性局部视图,示例计算机可读存储介质包括用于在计算设备上执行计算机进程的计算机程序。
[0310]
在一个实施例中,计算机可读存储介质1900是使用信号承载介质1901来提供的。信号承载介质1901可以包括一个或多个程序指令1902,其当被一个或多个处理器运行时可以提供以上针对图6描述的功能或者部分功能。
[0311]
在一些示例中,信号承载介质1901可以包含计算机可读介质1903,诸如但不限于,硬盘驱动器、紧密盘(cd)、数字视频光盘(dvd)、数字磁带、存储器、rom或ram等等。
[0312]
在一些实施方式中,信号承载介质1901可以包含计算机可记录介质1904,诸如但不限于,存储器、读/写(r/w)cd、r/w dvd、等等。在一些实施方式中,信号承载介质1901可以包含通信介质1905,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。因此,例如,信号承载介质1901可以由无线形式的通信介质1905(例如,遵守ieee 802.x标准或者其它传输协议的无线通信介质)来传达。
[0313]
一个或多个程序指令1902可以是,例如,计算机可执行指令或者逻辑实施指令。在一些示例中,计算设备的计算设备可以被配置为,响应于通过计算机可读介质1903、计算机可记录介质1904、和/或通信介质1905中的一个或多个传达到计算设备的程序指令1902,提供各种操作、功能、或者动作。
[0314]
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本技术提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
[0315]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本技术可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用cpu、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本技术而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、u盘、移动硬盘、rom、ram、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本技术各个实施例的方法。
[0316]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0317]
计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。

技术特征:
1.一种联邦学习方法,其特征在于,包括:获取多个模型,所述多个模型是从多个节点获取到的;根据所述多个模型的网络结构,将所述多个模型分为多个组别,其中所述多个组别中的每个组别包括至少一个模型,且同一个组别中的模型具有相同的网络结构;对所述多个组别的每个组别中的模型进行参数聚合,得到多个聚合模型,其中同一个组别中的模型被聚合得到一个聚合模型,所述多个聚合模型对应于所述多个组别;以所述多个模型为教师模型,分别对所述多个聚合模型中的每个聚合模型执行知识蒸馏训练,得到多个训练后的模型;向所述多个节点发送所述多个训练后的模型。2.根据权利要求1所述的方法,其特征在于,所述以所述多个模型为教师模型,分别对所述多个聚合模型中的每个聚合模型执行知识蒸馏训练,得到多个训练后的模型,包括:将训练样本分别输入第一聚合模型以及所述多个模型,得到目标预测结果和多个预测结果,其中所述第一聚合模型为所述多个聚合模型中的任意一个模型,所述目标预测结果对应于所述第一聚合模型,所述多个预测结果对应于所述多个模型;基于损失函数训练所述第一聚合模型,得到训练后的第一聚合模型,所述损失函数是基于所述目标预测结果与所述多个预测结果之间的差异得到的。3.根据权利要求2所述的方法,其特征在于,所述损失函数是基于所述目标预测结果与所述多个预测结果中每个预测结果之间的差异得到的;或者,所述损失函数是基于所述目标预测结果与所述多个预测结果的加权平均值之间的差异得到的。4.根据权利要求2或3所述的方法,其特征在于,所述损失函数包括第一子损失函数和第二子损失函数,所述第一子损失函数是基于所述目标预测结果与所述多个预测结果之间的差异得到的,所述第二子损失函数是基于所述训练样本的真实标签与所述目标预测结果之间的差异得到的。5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:基于训练数据,在所述多个训练后的模型中确定目标模型;以所述多个训练后的模型为教师模型,对所述目标模型执行知识蒸馏训练,得到更新后的目标模型,所述更新后的目标模型用于执行基于本地数据的推理任务。6.根据权利要求5所述的方法,其特征在于,所述基于训练数据,在所述多个训练后的模型中确定目标模型,包括:将所述训练数据分别输入多个模型中的每个模型,并基于所述每个模型输出的预测结果确定所述每个模型的预测精度;基于所述每个模型的预测精度确定所述目标模型,所述目标模型包括所述多个训练后的模型中预测精度最高的一个或多个模型。7.根据权利要求5所述的方法,其特征在于,所述基于训练数据,在所述多个训练后的模型中确定目标模型,包括:将所述训练数据输入门网络,得到所述门网络输出的多个权重值,所述多个权重值与所述多个训练后的模型一一对应,所述多个权重值分别用于表示所述多个训练后的模型的输出结果在加权求和过程中的权重,所述门网络为预先训练得到的网络;
根据所述多个权重值确定所述目标模型,所述目标模型包括所述多个训练后的模型中对应权重值最高的一个或多个模型。8.根据权利要求1-7任意一项所述的方法,其特征在于,所述向所述多个节点发送所述多个训练后的模型,包括:根据目标数据,在所述多个训练后的模型中确定部分训练后的模型,所述目标数据为从第一节点获取到的数据,所述部分训练后的模型是所述多个训练后的模型中在处理所述目标数据时具有最优性能的模型;向所述第一节点发送所述部分训练后的模型。9.根据权利要求1-8任意一项所述的方法,其特征在于,所述对所述多个组别的每个组别中的模型进行参数聚合,得到多个聚合模型,包括:对第一组别中的多个模型的权重参数进行加权求和,得到第一聚合模型;其中,所述第一组别属于所述多个组别,所述第一聚合模型属于所述多个聚合模型。10.一种联邦学习方法,其特征在于,包括:从聚合节点接收多个模型,所述多个模型的网络结构不同,且所述多个模型是所述聚合节点对不同节点上的模型进行聚合后得到的;基于训练数据,在所述多个模型中确定目标模型;以所述多个模型为教师模型,对所述目标模型执行知识蒸馏训练,得到训练后的目标模型。11.根据权利要求10所述的方法,其特征在于,所述基于训练数据,在所述多个模型中确定目标模型,包括:将所述训练数据分别输入多个模型中的每个模型,并基于所述每个模型输出的预测结果确定所述每个模型的预测精度;基于所述每个模型的预测精度确定所述目标模型,所述目标模型为所述多个模型中预测精度最高的一个或多个模型。12.根据权利要求10所述的方法,其特征在于,所述基于训练数据,在所述多个模型中确定目标模型,包括:将所述训练数据输入门网络,得到所述门网络输出的多个权重值,所述多个权重值与所述多个训练后的模型一一对应,所述多个权重值分别用于表示所述多个训练后的模型的输出结果在加权求和过程中的权重,所述门网络为预先训练得到的网络;根据所述多个权重值确定所述目标模型,所述目标模型包括所述多个模型中对应权重值最高的一个或多个模型。13.根据权利要求10-12任意一项所述的方法,其特征在于,所述多个模型是所述聚合节点在接收到不同节点上的模型后,对相同网络结构的模型进行参数聚合并基于所述不同节点上的模型对聚合后的模型进行知识蒸馏训练得到的。14.一种联邦学习装置,其特征在于,包括:获取模块,用于获取多个模型,所述多个模型是从多个节点获取到的;所述处理模块,还用于根据所述多个模型的网络结构,将所述多个模型分为多个组别,其中所述多个组别中的每个组别包括至少一个模型,且同一个组别中的模型具有相同的网络结构;
所述处理模块,还用于对所述多个组别的每个组别中的模型进行参数聚合,得到多个聚合模型,其中同一个组别中的模型被聚合得到一个聚合模型,所述多个聚合模型对应于所述多个组别;所述处理模块,还用于以所述多个模型为教师模型,分别对所述多个聚合模型中的每个聚合模型执行知识蒸馏训练,得到多个训练后的模型;发送模块,用于向所述多个节点发送所述多个训练后的模型。15.根据权利要求14所述的装置,其特征在于,所述处理模块,还用于:将训练样本分别输入第一聚合模型以及所述多个模型,得到目标预测结果和多个预测结果,其中所述第一聚合模型为所述多个聚合模型中的任意一个模型,所述目标预测结果对应于所述第一聚合模型,所述多个预测结果对应于所述多个模型;基于损失函数训练所述第一聚合模型,得到训练后的第一聚合模型,所述损失函数是基于所述目标预测结果与所述多个预测结果之间的差异得到的。16.根据权利要求15所述的装置,其特征在于,所述损失函数是基于所述目标预测结果与所述多个预测结果中每个预测结果之间的差异得到的;或者,所述损失函数是基于所述目标预测结果与所述多个预测结果的加权平均值之间的差异得到的。17.根据权利要求15或16所述的装置,其特征在于,所述损失函数包括第一子损失函数和第二子损失函数,所述第一子损失函数是基于所述目标预测结果与所述多个预测结果之间的差异得到的,所述第二子损失函数是基于所述训练样本的真实标签与所述目标预测结果之间的差异得到的。18.根据权利要求14-17任意一项所述的装置,其特征在于,所述处理模块,还用于:基于训练数据,在所述多个训练后的模型中确定目标模型;以所述多个训练后的模型为教师模型,对所述目标模型执行知识蒸馏训练,得到更新后的目标模型,所述更新后的目标模型用于执行基于本地数据的推理任务。19.根据权利要求18所述的装置,其特征在于,所述处理模块,还用于:将所述训练数据分别输入多个模型中的每个模型,并基于所述每个模型输出的预测结果确定所述每个模型的预测精度;基于所述每个模型的预测精度确定所述目标模型,所述目标模型包括所述多个训练后的模型中预测精度最高的一个或多个模型。20.根据权利要求18所述的装置,其特征在于,所述处理模块,还用于:将所述训练数据输入门网络,得到所述门网络输出的多个权重值,所述多个权重值与所述多个训练后的模型一一对应,所述多个权重值分别用于表示所述多个训练后的模型的输出结果在加权求和过程中的权重,所述门网络为预先训练得到的网络;根据所述多个权重值确定所述目标模型,所述目标模型包括所述多个训练后的模型中对应权重值最高的一个或多个模型。21.根据权利要求14-20任意一项所述的装置,其特征在于,所述处理模块,还用于根据目标数据,在所述多个训练后的模型中确定部分训练后的模型,所述目标数据为从第一节点获取到的数据,所述部分训练后的模型是所述多个训练后的模型中在处理所述目标数据时具有最优性能的模型;
所述发送模块,还用于向所述第一节点发送所述部分训练后的模型。22.一种联邦学习装置,其特征在于,包括:接收模块,用于从聚合节点接收多个模型,所述多个模型的网络结构不同,且所述多个模型是所述聚合节点对不同节点上的模型进行聚合后得到的;处理模块,用于基于训练数据,在所述多个模型中确定目标模型;所述处理模块,还用于以所述多个模型为教师模型,对所述目标模型执行知识蒸馏训练,得到训练后的目标模型。23.一种联邦学习装置,其特征在于,包括存储器和处理器;所述存储器存储有代码,所述处理器被配置为执行所述代码,当所述代码被执行时,所述装置执行如权利要求1至13任意一项所述的方法。24.一种计算机存储介质,其特征在于,所述计算机存储介质存储有指令,所述指令在由计算机执行时使得所述计算机实施权利要求1至13任意一项所述的方法。25.一种计算机程序产品,其特征在于,所述计算机程序产品存储有指令,所述指令在由计算机执行时使得所述计算机实施权利要求1至13任意一项所述的方法。

技术总结
一种联邦学习方法,应用于人工智能技术领域。在该方法中,在聚合节点获取到不同网络结构的模型时,将相同网络结构的模型划分至同一个组别中,并对相同组别的模型进行参数聚合,从而得到网络结构不同的多个聚合模型;并且,针对每个聚合模型,基于原始所获取到的多个模型对每个聚合模型进行知识蒸馏训练,实现不同网络结构模型之间的经验传递,从而整合各种网络结构的模型的知识经验,能够将参数聚合以及知识蒸馏在整合模型经验上的优势结合起来,实现不同网络结构的模型的聚合,并且保证聚合后所得到的模型的预测精度。所得到的模型的预测精度。所得到的模型的预测精度。


技术研发人员:宛烁 邵云峰 陈熙
受保护的技术使用者:华为技术有限公司
技术研发日:2023.03.31
技术公布日:2023/7/25
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐