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

一种联邦学习方法、设备及系统与流程

2022-03-04 22:05:19 来源:中国专利 TAG:


1.本技术实施例涉及机器学习技术领域,尤其涉及一种联邦学习方法、设备及系统。


背景技术:

2.作为机器学习技术的一种,联邦学习技术能够在保护隐私安全、遵守行业数据使用规范的前提下,解决数据孤岛问题。
3.联邦学习所使用的联邦学习系统包括服务端和多个客户端。在联邦学习过程中,服务端向各个客户端发送本轮训练的模型参数,客户端根据本轮训练的模型参数在本地进行本轮训练,并将训练结果发送给服务端;服务端根据各个客户端的训练结果确定下一轮训练的模型参数,并发送给各个客户端,以进行下一轮训练。
4.但是,若联邦学习系统遭遇拜占庭攻击(byzantine attack),即攻击者通过控制一个或多个客户端向服务端发送恶意数据,则会导致服务端将错误的数据下发至所有客户端,导致客户端根据错误的数据进行训练,相当于攻击者间接地对所有客户端进行了攻击。
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.在一种实现方式下,机器学习模型的性能包括准确率、精确率、召回率以及f1分数中的至少一种。
30.该实现方式提供了机器学习模型的性能的多种选择。
31.本技术实施例第二方面一种联邦学习方法,应用于联邦学习系统,联邦学习系统包括服务端和多个客户端,多个客户端上部署有机器学习模型;方法包括:服务端向多个客户端分别发送机器学习模型的参数的第一值,参数的第一值用于机器学习模型的本轮训练;服务端接收多个客户端各自的本轮训练的训练结果;在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端从多个客户端各自的本轮训练的训练结果中筛选训练结果,报警信息指示参数的第一值不满足第一条件;服务端根据筛选出的训练结果计算参数的第三值,参数的第三值用于机器学习模型的下一轮训练。
32.在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端会对多个客户端各自的本轮训练的训练结果进行筛选,并根据筛选出的训练结果确定下一轮训练的参数的第三值,从而避免采用异常训练结果确定参数的第三值,保证参数的第三值的准确性。
33.在一种实现方式下,本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差。
34.该实现方式提供了训练结果的两种形式。
35.在一种实现方式下,本轮训练的训练结果为参数的本地值与本轮训练得到的参数的值之间的差。
36.该实现方式提供了训练结果的另外一种形式。
37.在一种实现方式下,本轮训练的训练结果为本轮训练得到的参数的值与参数的本地值之间的差的绝对值。
38.在一种实现方式下,在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端从多个客户端各自的本轮训练的训练结果中筛选训练结果包括:在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端根据第二训练数据和多个客户端各自的本轮训练的训练结果,计算多个客户端各自的机器学习模型的性能的第二实际值,机器学习模型的性能的第二实际值为机器学习模型经过本轮训练后的性能的值,第二训练数据为预留在服务端的数据;服务端根据多个客户端各自的机器学习模型的性能的第二实际值和机器学习模型的性能的第二目标值,从多个客户端各自的本轮训练的训练结果中筛选出定满足第二条件的训练结果。
39.服务端根据多个客户端各自的机器学习模型的性能的第二实际值和机器学习模型的性能的第二目标值,从多个客户端各自的本轮训练的训练结果中筛选出定满足第二条件的训练结果,这样,根据筛选出的满足第二条件的训练结果确定的参数的第三值,能够使得机器学习模型具有较好的性能。
40.在一种实现方式下,机器学习模型的性能的第二目标值为在本轮训练前,多个客户端各自的机器学习模型经过每轮训练后的性能的最大值;或机器学习模型的性能的第二目标值为多个客户端各自的机器学习模型的性能的第二实际值的最大值。
41.该实现方式提供了性能的第二目标值的多种选择。
42.在一种实现方式下,第二条件为:第二客户端的机器学习模型的性能的第二实际值大于机器学习模型的性能的第二目标值或第二差值小于第二阈值,第二差值等于机器学习模型的性能的第二目标值与第二客户端的机器学习模型的性能的第二实际值的差,第二客户端为多个客户端中的任意一个。
43.该实现方式提供了第二条件的多种选择。在一种实现方式下,上报有报警信号的
客户端的训练结果都满足第二条件;根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值大于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
44.服务端根据筛选出的训练结果计算参数的第三值包括:服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
45.当仅有部分客户端识别出参数的第一值异常并发送报警信号时,服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值,这种方式确定出的参数的第三值使得机器学习模型具有更好的性能,从而可以加快机器学习模型快速收敛。
46.在一种实现方式下,上报有报警信号的客户端的训练结果都满足第二条件;根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值小于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
47.服务端根据筛选出的训练结果计算参数的第三值包括:服务端根据筛选出的训练结果中未上报报警信号的客户端的训练结果,确定参数的第三值。
48.上报报警信号的客户端的训练结果可能是被攻击的客户端发送的恶意的训练结果,并且,根据未上报报警信号的客户端的训练结果获取到的机器学习模型的性能的第二实际值较高,所以在本技术实施例中,服务端根据筛选出的训练结果中未上报报警信号的客户端的训练结果,确定参数的第三值。这种方式确定出的参数的第三值使得机器学习模型具有更好的性能,从而可以加快机器学习模型快速收敛。
49.在一种实现方式下,上报有报警信号的客户端的训练结果部分满足第二条件。
50.服务端根据筛选出的训练结果计算参数的第三值包括:服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
51.当多个客户端各自的训练结果中的上报有报警信号的客户端的训练结果部分满足第二条件时,服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。这样确定出的参数的第三值使得机器学习模型具有更好的性能,从而可以加快机器学习模型快速收敛。
52.在一种实现方式下,方法还包括:若在包括本轮训练在内的m轮训练中,第三客户端的训练结果都不包含在筛选出的训练结果中,则服务端在本轮训练后的n轮训练中,仅从多个客户端中除第三客户端外的其他客户端的训练结果中筛选训练结果,第三客户端为多个客户端中的任意一个,m和n均为正整数。
53.截止到本轮训练为止,第三客户端在已经进行的m轮训练中的训练结果都不包含在筛选出的训练结果中;那么,在本轮训练后的n轮训练中,服务端仅从多个客户端中除第三客户端外的其他客户端的训练结果中筛选训练结果,这样,服务端则不会采用第三客户端的训练结果确定参数的值,从而实现对训练结果多次异常的客户端进行特别处理,以避免每轮训练都需要对第三客户端的异常的训练结果进行处理。
54.本技术实施例第三方面提供了一种联邦学习装置,应用于联邦学习系统,联邦学习系统包括服务端和多个客户端,多个客户端上部署有相同的机器学习模型;联邦学习装置包含于多个客户端中的一个,且包括:
55.接收单元,用于接收来自服务端的机器学习模型的参数的第一值;
56.训练单元,用于在参数的第一值不满足第一条件的情况下,根据第一训练数据、机器学习模型以及参数的本地值进行本轮训练,以得到本轮训练的训练结果,第一训练数据为预留在第一客户端的数据;
57.发送单元,用于向服务端发送训练结果以及报警信息,报警信息指示参数的第一值不满足要求。
58.在一种实现方式下,参数的本地值等于上一轮训练得到的参数的值。
59.在一种实现方式下,本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差。
60.在一种实现方式下,联邦学习装置还包括:确定单元,用于根据第一训练数据及机器学习模型,确定参数的第一值不满足第一条件。
61.在一种实现方式下,确定单元,用于根据第一训练数据和参数的第一值,计算机器学习模型的性能的第一实际值;
62.根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件。
63.在一种实现方式下,机器学习模型的性能的第一目标值为机器学习模型经过上一轮训练后的性能的值,或在本轮训练前,机器学习模型经过每轮训练后的性能的最大值。
64.在一种实现方式下,第一条件为:机器学习模型的性能的第一目标值与机器学习模型的性能的第一实际值的差值小于或等于第一阈值。
65.在一种实现方式下,机器学习模型的性能包括准确率、精确率、召回率以及f1分数中的至少一种。
66.其中,以上各单元的具体实现、相关说明以及技术效果请参考本技术实施例第一方面的描述。
67.本技术实施例第四方面提供了一种联邦学习装置,应用于联邦学习系统,联邦学习系统包括服务端和多个客户端,多个客户端上部署有相同的机器学习模型;联邦学习装置包含于服务端中,且包括:
68.发送单元,用于向多个客户端分别发送机器学习模型的参数的第一值,参数的第一值用于机器学习模型的本轮训练;
69.接收单元,用于接收多个客户端各自的本轮训练的训练结果;
70.筛选单元,用于在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端从多个客户端各自的本轮训练的训练结果中筛选训练结果,报警信息指示参数的第一值不满足第一条件;
71.计算单元,用于根据筛选出的训练结果计算参数的第三值,参数的第三值用于机器学习模型的下一轮训练。
72.在一种实现方式下,本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差。
73.在一种实现方式下,筛选单元,用于在多个客户端中至少一个客户端还上报有报警信号的情况下,根据第二训练数据和多个客户端各自的本轮训练的训练结果,计算多个客户端各自的机器学习模型的性能的第二实际值,机器学习模型的性能的第二实际值为机
器学习模型经过本轮训练后的性能的值,第二训练数据为预留在服务端的数据;
74.根据多个客户端各自的机器学习模型的性能的第二实际值和机器学习模型的性能的第二目标值,从多个客户端各自的本轮训练的训练结果中筛选出定满足第二条件的训练结果。
75.在一种实现方式下,机器学习模型的性能的第二目标值为在本轮训练前,多个客户端各自的机器学习模型经过每轮训练后的性能的最大值;
76.或机器学习模型的性能的第二目标值为多个客户端各自的机器学习模型的性能的第二实际值的最大值。
77.在一种实现方式下,第二条件为:第二客户端的机器学习模型的性能的第二实际值大于机器学习模型的性能的第二目标值或第二差值小于第二阈值,第二差值等于机器学习模型的性能的第二目标值与第二客户端的机器学习模型的性能的第二实际值的差,第二客户端为多个客户端中的任意一个。
78.在一种实现方式下,上报有报警信号的客户端的训练结果都满足第二条件;根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值大于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
79.计算单元用于根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
80.在一种实现方式下,上报有报警信号的客户端的训练结果都满足第二条件;根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值小于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
81.计算单元用于根据筛选出的训练结果中未上报报警信号的客户端的训练结果,确定参数的第三值。
82.在一种实现方式下,上报有报警信号的客户端的训练结果部分满足第二条件。
83.计算单元用于根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
84.在一种实现方式下,筛选单元还用于当在包括本轮训练在内的m轮训练中,第三客户端的训练结果都不包含在筛选出的训练结果中时,在本轮训练后的n轮训练中,仅从多个客户端中除第三客户端外的其他客户端的训练结果中筛选训练结果,第三客户端为多个客户端中的任意一个,m和n均为正整数。
85.其中,以上各单元的具体实现、相关说明以及技术效果请参考本技术实施例第二方面的描述。
86.本技术实施例第五方面提供了一种计算机设备,包括:至少一个处理器和存储器,存储器存储有可在处理器上运行的计算机执行指令,当所述计算机执行指令被所述处理器执行时,该处理器执行如上述第一方面中任意一种实施方式所述的联邦学习方法,或执行如上述第二方面中任意一种实施方式所述的联邦学习方法。
87.本技术实施例第六方面提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用
于运行计算机程序或指令,以执行如上述第一方面中任意一种实施方式所述的联邦学习方法。
88.本技术实施例第七方面提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行如上述第二方面中任意一种实施方式所述的联邦学习方法。
89.本技术实施例第八方面提供了一种存储一个或多个计算机执行指令的计算机可读存储介质,当所述计算机执行指令被处理器执行时,所述处理器执行如上述第一方面或第二方面中任意一种实施方式所述的联邦学习方法。
90.本技术实施例第九方面提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面中任意一种实施方式所述的联邦学习方法,或上述第二方面中任意一种实施方式所述的联邦学习方法。
91.本技术实施例第十方面提供了一种联邦学习系统,包括服务端和多个客户端,多个客户端上部署有相同的机器学习模型;
92.多个客户端中的每个客户端用于执行上述第一方面中任意一种实施方式的联邦学习方法;
93.服务端用于执行上述第二方面中任意一种实施方式的联邦学习方法。
94.从以上技术方案可以看出,本技术实施例具有以下优点:
95.第一客户端接收来自服务端的机器学习模型的参数的第一值,第一客户端为多个客户端中的一个;在参数的第一值不满足第一条件的情况下,第一客户端根据第一训练数据、机器学习模型以及参数的本地值进行本轮训练,以得到本轮训练的训练结果,第一训练数据为预留在第一客户端的数据;第一客户端向服务端发送训练结果以及报警信息,报警信息指示参数的第一值不满足要求;因此,本技术实施例中,客户端能够识别出不符合条件的参数的第一值,从而避免采用异常的参数的第一值对学习模型进行训练,第一客户端采用参数的本地值进行训练,能够保证训练结果的准确性;此外,第一客户端发送报警信息给服务端,以指示参数的第一值不符合条件,从而起到协助服务端检测的作用,避免检测任务都集中在服务端上,可以提高联邦学习系统的鲁棒性。
附图说明
96.图1为本技术实施例中联邦学习系统的架构示意图;
97.图2为本技术实施例提供的一种联邦学习方法的一个实施例示意图;
98.图3为本技术实施例中确定参数的第一值不满足第一条件的施例示意图;
99.图4为本技术实施例中筛选训练结果的施例示意图;
100.图5为本技术实施例中服务端上的机器学习模型的准确率示意图;
101.图6为本技术实施例中每轮训练中发送报警信息的客户端的数量的示意图;
102.图7为本技术实施例中仿真结果的第一实施例示意图;
103.图8为本技术实施例中仿真结果的第二实施例示意图;
104.图9为本技术实施例中联邦学习装置的第一实施例的结构示意图;
105.图10为本技术实施例中联邦学习装置的第二实施例的结构示意图;
106.图11为本技术实施例中计算机设备的结构示意图;
107.图12为本技术实施例中联邦学习系统的结构示意图。
具体实施方式
108.本技术实施例提供了一种联邦学习方法、设备及系统,用于提高联邦学习系统的鲁棒性。
109.本技术实施例可以应用于包括多个计算机设备的联邦学习系统,每个计算机设备可以是服务器,也可以是终端设备。其中,该联邦学习系统可以如图1所示,包括一个服务器和多个终端设备。多个计算机设备中的一个计算机设备上安装有客户端(client),其他的计算机设备上安装有服务端(server)。多个客户端与服务端协同训练同一机器学习模型。本技术实施例对机器学习模型的种类不做具体限定,例如可以为分类模型、逻辑回归模型、树形结构模型和神经网络模型。
110.下面以图1所示的联邦学习系统为例,对联邦学习方法进行介绍。
111.具体地,在第一轮训练前,服务端向各个客户端下发待训练的机器学习模型和模型参数的初始值,然后各个客户端根据本地训练数据进行第一轮训练,并将训练结果发送至服务端。服务端根据各个客户端的训练结果确定第二轮训练的参数的值,并将第二轮训练的参数的值发送至各个客户端。各个客户端根据本地训练数据进行第二轮训练。
112.重复执行上述过程,直到机器学习模型收敛,则完成对机器学习模型的训练。其中,机器学习模型收敛的条件可以有多种,例如可以为完成预先设定的训练轮数。
113.基于上述说明可知,在训练过程中,客户端和服务端之间需要进行交互。因此,一旦出现被攻击的客户端,那么被攻击的客户端可能在向服务端发送错误的训练结果,导致服务端确定出的下一轮的参数的值出现错误,并且该错误的参数的值会被发送到其他各个客户端中,从而导致所有客户端的训练都出现错误。
114.所以为了防止该情况的发生,又为了避免仅由服务端对训练结果进行检测而导致联邦学习系统的鲁棒性较差,本技术实施例提供了一种联邦学习方法。在该方法中,由客户端对每轮训练中由服务端下发的模型参数进行检测,并基于不同的检测结果采用不同的训练方式对机器学习模型进行训练,从而可以及时识别出服务端下发的模型参数存在问题,以避免采用错误的模型参数进行训练。此外,客户端会将检测结果发送至服务端,使得服务端也可以根据检测结果对接收到的各个客户端的训练结果进行处理。这样,训练过程中的检测任务主要由客户端负责,并不是集中在服务端;而服务端也可以参照客户端的检测结果进行处理,所以降低了服务端的负载,避免占用服务端过多的资源,解决了现有的联邦学习系统鲁棒性差的问题。下面对本技术实施例中的联邦学习方法进行具体介绍。
115.如图2所示,本技术实施例提供了一种联邦学习方法的一个实施例,应用于联邦学习系统,联邦学习系统包括服务端和多个客户端,多个客户端上部署有相同的机器学习模型。
116.可以理解的是,联邦学习系统中客户端的数量可以根据实际需要进行调整,本技术实施例对此不做具体限定。
117.关于联邦学习系统及机器学习模型,可参照前述图1的相关说明进行理解。
118.基于该联邦学习系统,本技术实施例的方法包括:
119.步骤101,服务端向多个客户端分别发送机器学习模型的参数的第一值。
120.其中,参数的第一值用于机器学习模型的本轮训练;本轮训练也可以称为当前轮训练,若本轮训练为整个训练过程中的第一轮训练,则参数的第一值也可以称为模型参数的初始值。
121.需要说明的是,模型参数是指机器学习模型中包含的所有参数,具体可以包括权重(weights)和偏置。
122.相应地,多个客户端中的每个客户端接收参数的第一值,具体地,第一客户端接收来自服务端的参数的第一值;其中,第一客户端为多个客户端中的一个。
123.步骤102,第一客户端根据第一训练数据及机器学习模型,确定参数的第一值不满足第一条件。
124.第一客户端在接收到参数的第一值后,对参数的第一值进行检测。其中,检测方法有多种,本技术实施例通过预设第一条件,并判断参数的第一值是否满足该第一条件的方式,实现对参数的第一值进行检测。
125.其中,第一条件的具体内容可以根据实际需要进行设定,例如,第一条件可以为:参数的第一值与参数的预设值的差的绝对值小于第三阈值。后文将结合具体的示例对第一条件、满足第一条件的情况和不满足第一条件的情况进行具体说明。
126.应理解,在联邦学习系统中,每个客户端都根据客户端的本地数据进行训练,从而可以保证客户端间不会泄露各自的本地数据。基于此,第一训练数据为预留在第一客户端的数据,也可以理解为第一客户端的本地数据。
127.需要说明的是,可以通过多种方法确定参数的第一值不满足第一条件,本技术实施例对此不做具体限定。后文将介绍确定参数的第一值不满足第一条件的一种具体方法。
128.在对参数的第一值进行检测后,若参数的第一值满足第一条件,则第一客户端会直接根据第一训练数据、机器学习模型以及参数的第一值进行本轮训练。
129.在本技术实施例中,步骤102是可选的。
130.步骤103,在参数的第一值不满足第一条件的情况下,第一客户端根据第一训练数据、机器学习模型以及参数的本地值进行本轮训练,以得到本轮训练的训练结果。
131.需要说明的是,参数的本地值可以根据实际需要进行设定,本技术实施例对此不做具体限定。示例性地,参数的本地值等于上一轮训练得到的参数的值;示例性地,参数的本地值等于本轮训练前的两轮训练得到的参数的值的平均值。
132.由于训练过程为较成熟的技术,因此在此不做赘述。
133.在得到模型参数的第二值后,第一客户端可以保存模型参数的第二值,以将模型参数的第二值作为本轮训练的下一轮训练的参数的本地值。
134.其中,训练结果的形式可以有多种,本技术实施例在此不做具体限定。例如,本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差。例如,本轮训练的训练结果为参数的本地值与本轮训练得到的参数的值之间的差。再例如,本轮训练的训练结果为本轮训练得到的参数的值与参数的本地值之间的差的绝对值。
135.步骤104,第一客户端向服务端发送本轮训练的训练结果以及报警信息,报警信息指示参数的第一值不满足要求。
136.需要说明的是,若参数的第一值满足第一条件,第一客户端向服务端发送的训练结果的同时,也可以发送报警信息,这种情况下,报警信息的取值与参数的第一值不满足第一条件时报警信息的取值不同。
137.参数的第一值满足第一条件时的报警信息指示参数的第一值满足第一条件。
138.报警信息的形式也可以有多种,本技术实施例在此不做具体限定。例如,报警信息可以采用0和1表示对参数的第一值的检测结果;具体地,当报警信息取值为1时,表示参数的第一值不满足第一条件;当报警信息取值为0时,表示参数的第一值满足第一条件。
139.在本技术实施例中,第一客户端对服务端下发的参数的第一值进行检测。当参数的第一值满足第一条件时,第一客户端根据参数的第一值对机器学习模型进行训练;当参数的第一值不满足第一条件时,第一客户端根据参数的本地值对机器学习模型进行训练。因此,本技术实施例能够识别出服务端下发的异常参数的第一值,从而避免采用异常的参数的第一值对学习模型进行训练,第一客户端采用参数的本地值进行训练,能够保证训练结果的准确性。
140.同样地,在联邦学习系统中,多个客户端中除第一客户端外的其他客户端也会向服务端发送训练结果。
141.相应地,服务端接收多个客户端各自的本轮训练的训练结果。
142.步骤105,在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端从多个客户端各自的本轮训练的训练结果中筛选训练结果,报警信息指示参数的第一值不满足第一条件。
143.可以理解的是,多个客户端对于参数的第一值的检测结果包含三种情况;第一,多个客户端全部检测出参数的第一值满足第一条件;第二,多个客户端全部检测出参数的第一值不满足第一条件;第三,多个客户端中的一部分客户端检测出参数的第一值满足第一条件,而另一部分客户端检测出参数的第一值不满足第一条件。
144.相应地,服务端接收到的多个客户端的训练结果也包含三种情况;第一,多个客户端在发送训练结果的同时,也发送报警信号;第二,多个客户端仅发送训练结果,不发送报警信号;第三,多个客户端中的一部分客户端在发送训练结果的同时,也发送报警信号,而另一部分客户端仅发送训练结果。
145.在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端会对多个客户端各自的本轮训练的训练结果进行检测,以检测每个客户端的本轮训练的训练结果是否正常;在多个客户端未上报报警信号的情况下,服务端则不对多个客户端的训练结果进行检测。
146.在本技术实施例中,可以预先设置第二条件,若客户端的训练结果满足第二条件,则表示客户端的训练结果正常;若客户端的训练结果不满足第二条件,则表示客户端的训练结果不正常或恶意。
147.其中,第二条件可以根据实际需要进行设定,本技术实施例对此不做限定。
148.需要说明的是,对多个客户端各自的训练结果进行检测的方法有多种,本技术实施例对此不做具体限定。例如,可以根据one class svm算法、孤立森林isolation forest算法、local outlier factor算法、聚类算法、统计模型、巴氏距离测量算法、肖维勒准则或格拉布斯准则对多个客户端各自的训练结果进行检测。
149.除此之外,也可以采用其他方法对多个客户端各自的训练结果进行检测,下文将具体介绍另外一种对多个客户端各自的训练结果进行检测的方法。
150.步骤106,服务端根据筛选出的训练结果计算参数的第三值,参数的第三值用于机器学习模型的下一轮训练。
151.其中,下一轮训练是相对于本轮训练来说的;具体地,若本轮训练为整个训练过程中的第5轮训练,则下一轮训练则为整个训练过程中的第6轮训练;若本轮训练为整个训练过程中的第10轮训练,则下一轮训练则为整个训练过程中的第11轮训练。
152.需要说明的是,服务端根据筛选出的训练结果确定参数的第三值的方法有多种。示例性地,服务端可以根据聚合算法对筛选出的训练结果中的部分训练结果或全部训练结果进行聚合,得到参数的第三值。
153.其中,聚合算法包括但不限于平均聚合规则、geomed规则、krum聚合规则和trimmed mean规则。
154.由于本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差,所以当本轮训练的训练结果为本轮训练得到的参数的值与参数的本地值之间的差,且参数的本地值等于上一轮训练得到的参数的值时,服务端可以先根据训练结果与上一轮训练得到的参数的值计算得到本轮训练得到的模型参数的第二值,然后再根据模型参数的第二值进行聚合。
155.在本技术实施例中,在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端会对多个客户端各自的本轮训练的训练结果进行筛选,并根据筛选出的训练结果确定下一轮训练的参数的第三值,从而避免采用异常训练结果确定参数的第三值,保证参数的第三值的准确性。
156.综上所述,在联邦学习系统中,若客户端和服务端均采用上述联邦学习方法对机器学习模型进行训练,则可以避免一个客户端被攻击或服务端被攻击而导致所有客户端均采用错误的参数的值进行训练;并且,服务端可以基于客户端的报警信息对训练结果进行筛选,因此客户端起到了协助服务端检测训练结果的作用。由此可以看出,采用本技术实施例提供的联邦学习方法,可以提高联邦学习系统的鲁棒性。
157.此外,在现有的联邦学习系统中,服务端在每轮训练中,都需要对客户端的训练结果进行检测,并且服务端在检测过程中的计算量与客户端的数量成正相关;而在本技术实施例中,只有在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端才对多个客户端各自的训练结果进行筛选,而当多个客户端未上报报警信号时,服务端则不对多个客户端的训练结果进行筛选。由此可以看出,本技术实施例的联邦学习方法还能够降低服务端的负载,使得联邦学习系统的可扩展性较强。
158.基于前述说明可知,存在多种方法可以确定参数的第一值不满足第一条件。作为一种可实现的方式,如图3所示,第一客户端根据第一训练数据及机器学习模型,确定参数的第一值不满足第一条件包括:
159.步骤201,第一客户端根据第一训练数据和参数的第一值,计算机器学习模型的性能的第一实际值。
160.需要说明的是,衡量机器学习模型的性能的指标可以有多种,本技术实施例对此不做具体限定。具体地,机器学习模型的性能可以包括准确率、精确率、召回率以及f1分数
中的至少一种。除此之外,也可以采用出错率作为机器学习模型的性能,来衡量机器学习模型的性能。
161.对于机器学习模型的性能的不同指标,计算机器学习模型的性能的第一实际值的方法也不同。下面以准确率为例对计算机器学习模型的性能的第一实际值的过程进行说明。
162.例如,第一训练数据包括10个正样本和10个负样本。第一客户端可以根据机器学习模型以及参数的第一值对第一训练数据进行预测,若第一客户端识别出10个正样本中的8个正样本,并识别出10个负样本中的8个负样本,则该机器学习模型的准确率(即第一性能值)为16/20=80%。对应地,错误率则为20%。
163.同样地,第一客户端也可以根据第一训练数据和参数的第一值,获取机器学习模型的精确率召回率以及f1分数等其他性能的值。
164.步骤202,第一客户端根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件。
165.其中,机器学习模型的性能的第一目标值为机器学习模型经过上一轮训练后的性能的值,或在本轮训练前,机器学习模型经过每轮训练后的性能的最大值。
166.上一轮训练是相对于本轮训练来说的;具体地,若本轮训练为整个训练过程中的第5轮训练,则上一轮训练则为整个训练过程中的第4轮训练;若本轮训练为整个训练过程中的第10轮训练,则上一轮训练则为整个训练过程中的第9轮训练。
167.当机器学习模型的性能的第一目标值为机器学习模型经过上一轮训练后的性能的值时,可以根据经过上一轮训练后的参数的值和第一训练数据,计算机器学习模型经过上一轮训练后的性能的值,具体的计算过程可参照计算机器学习模型的性能的第一实际值的过程进行理解。
168.第一客户端可以在进行完上一轮训练后,获取并保存机器学习模型经过上一轮训练后的性能的值;这样,在本轮训练中,第一客户端可以直接将保存的机器学习模型经过上一轮训练后的性能的值作为第一目标值,然后执行步骤202。
169.当第一目标值为在本轮训练前,机器学习模型经过每轮训练后的性能的最大值时,可以采用同样的方法获取机器学习模型经过每轮训练后的性能的值,在此具体不做详述。
170.下面以具体的示例对机器学习模型的性能的第一目标值进行说明。
171.在该示例中,本轮训练为整个训练过程中的第5轮训练,机器学习模型的性能值采用准确率表示。机器学习模型经过前4轮训练后的性能的值分别为75%、78%、80%和83%,则机器学习模型的性能的第一目标值可以为机器学习模型经过第4轮训练后的性能的值,即83%,也可以为机器学习模型经过前4轮训练后的性能的最大值,即83%。
172.需要说明的是,第一客户端根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件的方法有多种。
173.作为一种可实现的方式,若第一性能值越大,表示机器学习模型的性能越好,例如,第一性能值为准确率、精确率、召回率以及f1分数中的至少一种。
174.基于此,第一客户端根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件可以包括:
175.基于机器学习模型的性能的第一目标值与机器学习模型的性能的第一实际值大于第一阈值,第一客户端定参数的第一值不满足第一条件。
176.此时,第一条件为:机器学习模型的性能的第一目标值与机器学习模型的性能的第一实际值的差值小于或等于第一阈值。
177.其中,第一阈值可以根据实际需要进行设定。
178.例如,性能为准确率,且性能的第一目标值具体为83%,第一阈值为2%;当性能的第一实际值低于81%时,则表示第一客户端的参数的第一值不满足第一条件。
179.作为一种可实现的方式,若性能的值越小,表示机器学习模型的性能越好,例如,性能为错误率。
180.基于此,第一客户端根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件可以包括:
181.基于机器学习模型的性能的第一目标值与机器学习模型的性能的第一实际值小于第一阈值,第一客户端定参数的第一值不满足第一条件。
182.例如,性能为错误率,且性能的第一目标值具体为17%,第一阈值为2%;当性能的第一实际值高于19%时,则表示第一客户端定参数的第一值不满足第一条件。
183.在本技术实施例中,第一客户端根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件,以避免采用使机器学习模型具体较差性能的参数的值进行训练,即保证采用使机器学习模型具体较好性能的参数的值进行训练,从而可以提高机器学习模型的最终性能。
184.基于前文说明可知,可以采用多方法对多个客户端各自的训练结果进行筛选,下面具体介绍一种对多个客户端各自的训练结果进行筛选的方法。
185.示例性地,如图4所示,在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端从多个客户端各自的本轮训练的训练结果中筛选训练结果包括:
186.步骤301,在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端根据第二训练数据和多个客户端各自的本轮训练的训练结果,计算多个客户端各自的机器学习模型的性能的第二实际值。
187.对于每个客户端,均可以根据其训练结果和第二训练数据计算得到机器学习模型的性能的第二实际值。
188.其中,机器学习模型的性能的第二实际值为机器学习模型经过本轮训练后的性能的值,第二训练数据为预留在服务端的数据,第二训练数据也可以称为服务端的本地数据。
189.步骤302,服务端根据多个客户端各自的机器学习模型的性能的第二实际值和机器学习模型的性能的第二目标值,从多个客户端各自的本轮训练的训练结果中筛选出定满足第二条件的训练结果。
190.需要说明的是,第二目标值可以根据实际需要进行设定,本技术实施例对此不做具体限定。
191.示例性地,所述机器学习模型的性能的第二目标值为在所述本轮训练前,所述多个客户端各自的所述机器学习模型经过每轮训练后的性能的最大值。例如,性能为准确率,联邦学习系统中客户端的数量为3个,且在本轮训练前,已经进行了两轮训练。在进行第一轮训练后,3个客户端的机器学习模型的准确率分别为77%、78%和77%,在进行第一轮训
练后,3个客户端的机器学习模型的准确率分别为79%、80%和78%,则第二目标值为这两轮训练中的机器学习模型的准确率的最大值,即80%。
192.示例性地,所述机器学习模型的性能的第二目标值为所述多个客户端各自的所述机器学习模型的性能的第二实际值的最大值。例如,经过本轮训练后,多个客户端各自的机器学习模型的性能的第二实际值分别为83%、84%、85%,则第二目标值可以取85%。
193.此外,根据多个客户端各自的机器学习模型的性能的第二实际值和机器学习模型的性能的第二目标值,筛选出定满足第二条件的训练结果的方法有多种。
194.作为一种可实现的方式,若性能的第二实际值越大,表示机器学习模型的性能越好,此时,性能可以为准确率、精确率、召回率以及f1分数中的至少一种。
195.基于此,服务端根据多个客户端各自的机器学习模型的第二性能值和第二目标性能值,从多个客户端各自的训练结果中确定满足第二条件的训练结果包括:
196.基于第二客户端的机器学习模型的性能的第二实际值大于机器学习模型的性能的第二目标值或第二差值小于第二阈值,服务端确定第二客户端的训练结果满足第二条件,第二差值等于第二目标性能值与第二客户端的机器学习模型的第二性能值的差值,第二客户端为多个客户端中的任意一个。
197.此时,第二条件为:第二客户端的机器学习模型的性能的第二实际值大于机器学习模型的性能的第二目标值或第二差值小于第二阈值,第二差值等于机器学习模型的性能的第二目标值与第二客户端的机器学习模型的性能的第二实际值的差,第二客户端为多个客户端中的任意一个。
198.其中,第二阈值可以根据实际需要进行设定。
199.例如,第二客户端的机器学习模型的性能为准确率,且性能的第二目标值具体为85%,第二阈值为2%;当第二客户端的机器学习模型的性能的第二实际值高于83%时,则表示第二客户端的训练结果满足第二条件。
200.作为一种可实现的方式,若性能的第二实际值越小,表示机器学习模型的性能越好,例如,性能为错误率。
201.基于此,服务端根据多个客户端各自的机器学习模型的第二性能值和第二目标性能值,从多个客户端各自的训练结果中确定满足第二条件的训练结果包括:
202.基于第二客户端的机器学习模型的性能的第二实际值大于机器学习模型的性能的第二目标值或第二差值大于第二阈值,服务端确定第二客户端的训练结果满足第二条件。
203.例如,性能为错误率,且性能的第二目标值具体为15%,第二阈值为2%;当性能的第二实际值低于13%时,则表示第二客户端的训练结果满足第二条件。
204.基于前述说明可知,服务端根据筛选出的训练结果计算参数的第三值的方法也有多种,下面分别以三个示例介绍三种方法。
205.第一示例:
206.在该示例中,参数的第一值异常,并且,多个客户端中的部分客户端识别出参数的第一值异常,然后采用参数的本地值进行训练,得到训练结果。最终,这一部分客户端向服务端发送训练结果的同时发送报警信号。因此,服务端接收到的上报有报警信号的客户端的训练结果是正常的。
207.这种场景下,服务端根据上报有报警信号的客户端的训练结果,确定参数的第三值。
208.具体地,多个客户端各自的训练结果中,上报有报警信号的客户端的训练结果都满足第二条件。
209.根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值大于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
210.基于步骤301的相关说明可知,根据客户端的训练结果可以获取客户端的机器学习模型的性能的第二实际值。因此,基于步骤301的计算结果,可以确定,根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值大于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
211.基于上述场景,服务端根据筛选出的训练结果计算参数的第三值包括:
212.服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
213.需要说明的是,服务端根据前述的聚合算法对上报有报警信号的客户端的训练结果进行聚合,以得到参数的第三值,具体地,可参照前述聚合算法的相关说明进行理解。
214.基于上述说明可知,当仅有部分客户端识别出参数的第一值异常并发送报警信号时,服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值,这种方式确定出的参数的第三值使得机器学习模型具有更好的性能,从而可以加快机器学习模型快速收敛。
215.第二示例:
216.在该示例中,参数的第一值是正常的,但多个客户端中的部分客户端被攻击,以致于这一部分客户端向服务端发送恶意的训练结果,该恶意的训练结果虽然满足第二条件,但训练结果较差,因此不利于机器学习模型的快速收敛。并且,这一部分客户端在发送恶意的训练结果的同时还发送报警信号,该报警信号用于使得服务端误以为携带有报警信号的训练结果是正常的,而不是恶意的。
217.这种场景下,服务端则根据筛选出的未上报报警信号的客户端的训练结果确定参数的第三值。
218.具体地,多个客户端各自的训练结果中上报有报警信号的客户端的训练结果都满足所述第二条件,这与第一示例相同。
219.与第一示例不同的是,根据上报有报警信号的客户端的训练结果计算的所述机器学习模型的性能的第二实际值的最大值小于,根据未上报报警信号的客户端的训练结果计算的所述机器学习模型的性能的第二实际值的最大值。
220.基于步骤301的相关说明可知,根据客户端的训练结果可以获取客户端的机器学习模型的性能的第二实际值。因此,基于步骤301的计算结果,可以确定,根据上报有报警信号的客户端的训练结果计算的所述机器学习模型的性能的第二实际值的最大值小于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
221.基于上述场景,服务端根据筛选出的训练结果计算参数的第三值包括:
222.服务端根据筛选出的训练结果中未上报报警信号的客户端的训练结果,确定参数
的第三值。
223.基于前述说明可知,上报报警信号的客户端的训练结果可能是被攻击的客户端发送的恶意的训练结果,并且,根据未上报报警信号的客户端的训练结果获取到的机器学习模型的性能的第二实际值较高,所以在本技术实施例中,服务端根据筛选出的训练结果中未上报报警信号的客户端的训练结果,确定参数的第三值。这种方式确定出的参数的第三值使得机器学习模型具有更好的性能,从而可以加快机器学习模型快速收敛。
224.第三示例:
225.在该示例中,多个客户端中存在被攻击的客户端,也存在未被攻击的客户端,且被攻击的客户端和未被攻击的客户端在向服务端发送训练结果的同时,均向服务端发送报警信号。这种场景下,服务端则根据筛选出的训练结果中未上报报警信号的客户端的训练结果确定参数的第三值。
226.具体地,上报有报警信号的客户端的训练结果部分满足所述第二条件。其中,上报有报警信号的客户端的训练结果部分满足所述第二条件是指,上报有报警信号的客户端的训练结果中存在满足第二条件的训练结果,也存在不满足第二条件的训练结果。
227.基于上述场景,所述服务端根据筛选出的训练结果计算所述参数的第三值包括:
228.所述服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定所述参数的第三值。
229.在本技术实施例中,当多个客户端各自的训练结果中的上报有报警信号的客户端的训练结果部分满足第二条件时,服务端根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。这样确定出的参数的第三值使得机器学习模型具有更好的性能,从而可以加快机器学习模型快速收敛。
230.上文对训练过程中客户端检测参数的第一值的过程,以及服务端检测各个客户端的训练结果的过程进行了说明,此外,本技术实施例提供的联邦学习方法还可以包含惩罚管理的内容,即服务端对训练结果多次异常的客户端进行特别处理。
231.示例性地,本技术实施例提供的联邦学习方法还包括:
232.若在包括所述本轮训练在内的m轮训练中,第三客户端的训练结果都不包含在筛选出的训练结果中,则所述服务端在所述本轮训练后的n轮训练中,仅从所述多个客户端中除所述第三客户端外的其他客户端的训练结果中筛选训练结果,所述第三客户端为所述多个客户端中的任意一个,m和n均为正整数。
233.其中,m和n均可以根据实际需要进行设定。例如,m为5,n为3;再例如,m为3,n为5。
234.可以理解的是,在本轮训练中,第三客户端的训练结果不包含在筛选出的训练结果中,并且,截止到本轮训练为止,第三客户端在已经进行的m轮训练中的训练结果都不包含在筛选出的训练结果中;那么,在本轮训练后的n轮训练中,服务端仅从多个客户端中除第三客户端外的其他客户端的训练结果中筛选训练结果,这样,服务端则不会采用第三客户端的训练结果确定参数的值。
235.其中,在该n轮训练中,服务端仍可以将确定出的参数的值发送给第三客户端,以使得第三客户端对机器学习模型进行训练。在第n 1轮训练中,服务端根据包含第三客户端的训练结果在内的多个客户端的训练结果筛选训练结果。
236.例如,m等于5,n为3。本轮训练为整个训练过程中的第10轮训练,在第5、6、7、8、10
轮训练中,第三客户端的训练结果均不包含在筛选出的训练结果中,所以,第三客户端在已经进行的5轮训练中的训练结果都不包含在筛选出的训练结果中。那么,在第11、12和13轮训练中,服务端仅从除第三客户端外的其他客户端的训练结果中筛选训练结果。在第14轮训练中,服务端根据包含第三客户端的训练结果在内的多个客户端的训练结果筛选训练结果。
237.需要说明的是,可以通过多种方法实现在本轮训练后的n轮训练中,服务端仅从多个客户端中除第三客户端外的其他客户端的训练结果中筛选训练结果。例如,若在包括本轮训练在内的m轮训练中,第三客户端的训练结果都不包含在筛选出的训练结果中,则服务端可以在本轮训练后的n轮训练中,拒绝接收第三客户端的训练结果。除此之外,服务端可以在本轮训练后的n轮训练中,可以接收第三客户端的训练结果,但拒绝使用第三客户端的训练结果。
238.上面对本技术实施例提供的联邦学习方法进行了说明,为了便于理解,下面通过一应用例对该联邦学习方法进行进一步说明。
239.在该应用例中,客户端的数量为10个,机器学习模型的收敛条件为完成20轮训练,在第3至6轮训练、第9-12轮训练以及第15-18轮训练中,编号为6、7、8和9的客户端均被攻击,机器学习模型的性能值用准确率表示,前述实施例中的m取2,n取20,第一阈值和第二阈值均为3%。在这20轮训练中,客户端和服务端分别采用本技术实施例提供的联邦学习方法进行训练。整个训练过程可参照图5和图6。其中图5为服务端上的机器学习模型的准确率示意图,图6为每轮训练中发送报警信息的客户端的数量的示意图。
240.对照图5和图6可知,在第3轮训练中,编号为6、7、8和9的客户端均被攻击,以致于部分客户端发送异常的训练结果至服务端,因此图5中的机器学习模型的准确率下降。在第4轮训练中,2个客户端发送报警信息至服务端,服务端对10个客户端的训练结果进行检测,以识别出正常的训练结果,因此从第4轮训练开始,图5中的机器学习模型的准确率上升。
241.由于在第3至6轮训练中,编号为6、7、8和9的客户端不断被攻击,导致第7轮训练时,图5中的机器学习模型的准确率陡然下降。同时,6个客户端发送报警信息至服务端,服务端对10个客户端的训练结果进行检测,以识别出正常的训练结果,因此从第7轮训练开始,图5中的机器学习模型的准确率陡然上升。
242.由于m取2,n取20,所以客户端在2轮训练中的训练结果不满足第二条件则会被遗弃。基于此,在第9轮训练时,编号为6、7、8和9的客户端再次被攻击,在第10轮训练中,仅有一个客户端发送报警信息,并且,图5中的机器学习模型的准确率的下降幅度与第7轮训练中图5中的机器学习模型的准确率的下降幅度相比,大幅减小。
243.更明显的是,在第15-18轮训练中,即使编号为6、7、8和9的客户端再次被攻击,图5中的机器学习模型的准确率已不再下降,最终维持在90%左右。
244.基于上述说明可知,采用本技术实施例提供的联邦学习方法作为防御策略,能够有效阻断攻击,并且机器学习模型的性能最终会收敛于较高性能。
245.此外,本应用例还对本技术实施例提供的联邦学习方法以及现有的两种防御策略进行仿真,仿真结果如图7和图8所示。
246.其中,图7所示的仿真结果对应的仿真条件为:客户端的数量为10个,机器学习模型的收敛条件为完成20轮训练,在第3至6轮训练、第9-12轮训练以及第15-18轮训练中,4个
客户端均被攻击,机器学习模型的性能值用准确率表示,前述实施例中的m取2,n取20,第一阈值和第二阈值均为3%。在这20轮训练中,客户端和服务端分别采用本技术实施例提供的联邦学习方法进行训练。
247.图8所示的仿真结果对应的仿真条件为:客户端的数量为10个,机器学习模型的收敛条件为完成20轮训练,在第3至6轮训练、第9-12轮训练以及第15-18轮训练中,8个客户端均被攻击,机器学习模型的性能值用准确率表示,前述实施例中的m取2,n取20,第一阈值和第二阈值均为3%。在这20轮训练中,客户端和服务端分别采用本技术实施例提供的联邦学习方法进行训练。
248.在图7和图8中,曲线a表示联邦学习系统采用本技术实施例提供的联邦学习方法防御攻击,且在训练过程中客户端均未遭受攻击的情况下,服务端的机器学习模型的准确率的变化情况。曲线b表示联邦学习系统采用现有的第一种防御方法防御攻击,且在训练过程中客户端遭受攻击的情况下,服务端的机器学习模型的准确率的变化情况。曲线c表示联邦学习系统采用本技术实施例提供的联邦学习方法防御攻击,且在训练过程中客户端遭受攻击的情况下,服务端的机器学习模型的准确率的变化情况。曲线d表示联邦学习系统采用现有的第二种防御方法防御攻击,且在训练过程中客户端遭受攻击的情况下,服务端的机器学习模型的准确率的变化情况。
249.从图7中可以看出,在客户端遭受攻击的情况下,采用本技术实施例提供的联邦学习方法防御攻击,与采用现有的第一种防御方法和第二种防御方法防御攻击相比,机器学习模型的准确率的波动范幅度较小;并且随着训练的进行,若采用本技术实施例提供的联邦学习方法防御攻击,即使客户端再次遭受攻击,机器学习模型的准确率已不再波动,并趋近于曲线a所示的准确率,即在训练过程中客户端均未遭受攻击的情况下的机器学习模型的准确率。
250.从图8中可以看出,遭受攻击的客户端的数量增加导致准确率的波动增加;尽管在前几轮训练中,当客户端再次遭受攻击时,采用本技术实施例提供的联邦学习方法防御攻击,与采用现有的第一种防御方法和第二种防御方法防御攻击相比,机器学习模型的准确率的波动范幅度大致相同,但采用本技术实施例提供的联邦学习方法防御攻击,使得机器学习模型的准确率迅速恢复到遭受攻击前的机器学习模型的准确率;更重要的是,随着训练的进行,若采用本技术实施例提供的联邦学习方法防御攻击,即使客户端再次遭受攻击,机器学习模型的准确率已不再波动,并趋近于曲线a所示的准确率,即在训练过程中客户端均未遭受攻击的情况下的机器学习模型的准确率。
251.请参阅图9,本技术实施例中联邦学习装置的第一实施例的结构示意图。
252.本技术实施例还提供了一种联邦学习装置的一个实施例,应用于联邦学习系统,联邦学习系统包括服务端和多个客户端,多个客户端上部署有相同的机器学习模型;联邦学习装置包含于多个客户端中的一个,且包括:
253.接收单元401,用于接收来自服务端的机器学习模型的参数的第一值;
254.训练单元402,用于在参数的第一值不满足第一条件的情况下,根据第一训练数据、机器学习模型以及参数的本地值进行本轮训练,以得到本轮训练的训练结果,第一训练数据为预留在第一客户端的数据;
255.发送单元403,用于向服务端发送训练结果以及报警信息,报警信息指示参数的第
一值不满足要求。
256.在一种实现方式下,参数的本地值等于上一轮训练得到的参数的值。
257.在一种实现方式下,本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差。
258.在一种实现方式下,联邦学习装置还包括:确定单元404,用于根据第一训练数据及机器学习模型,确定参数的第一值不满足第一条件。
259.在一种实现方式下,确定单元404,用于根据第一训练数据和参数的第一值,计算机器学习模型的性能的第一实际值;
260.根据机器学习模型的性能的第一实际值和机器学习模型的性能的第一目标值确定参数的第一值不满足第一条件。
261.在一种实现方式下,机器学习模型的性能的第一目标值为机器学习模型经过上一轮训练后的性能的值,或在本轮训练前,机器学习模型经过每轮训练后的性能的最大值。
262.在一种实现方式下,第一条件为:机器学习模型的性能的第一目标值与机器学习模型的性能的第一实际值的差值小于或等于第一阈值。
263.在一种实现方式下,机器学习模型的性能包括准确率、精确率、召回率以及f1分数中的至少一种。
264.其中,以上各单元的具体实现、相关说明以及技术效果请参考本技术实施例图2至图4所示的实施例的描述。
265.请参阅图10,本技术实施例中联邦学习装置的第二实施例的结构示意图。
266.本技术实施例还提供了一种联邦学习装置的另一个实施例,应用于联邦学习系统,联邦学习系统包括服务端和多个客户端,多个客户端上部署有相同的机器学习模型;联邦学习装置包含于服务端中,且包括:
267.发送单元501,用于向多个客户端分别发送机器学习模型的参数的第一值,参数的第一值用于机器学习模型的本轮训练;
268.接收单元502,用于接收多个客户端各自的本轮训练的训练结果;
269.筛选单元503,用于在多个客户端中至少一个客户端还上报有报警信号的情况下,服务端从多个客户端各自的本轮训练的训练结果中筛选训练结果,报警信息指示参数的第一值不满足第一条件;
270.计算单元504,用于根据筛选出的训练结果计算参数的第三值,参数的第三值用于机器学习模型的下一轮训练。
271.在一种实现方式下,本轮训练的训练结果为本轮训练得到的参数的值,或本轮训练得到的参数的值与参数的本地值之间的差。
272.在一种实现方式下,筛选单元503,用于在多个客户端中至少一个客户端还上报有报警信号的情况下,根据第二训练数据和多个客户端各自的本轮训练的训练结果,计算多个客户端各自的机器学习模型的性能的第二实际值,机器学习模型的性能的第二实际值为机器学习模型经过本轮训练后的性能的值,第二训练数据为预留在服务端的数据;
273.根据多个客户端各自的机器学习模型的性能的第二实际值和机器学习模型的性能的第二目标值,从多个客户端各自的本轮训练的训练结果中筛选出定满足第二条件的训练结果。
274.在一种实现方式下,机器学习模型的性能的第二目标值为在本轮训练前,多个客户端各自的机器学习模型经过每轮训练后的性能的最大值;
275.或机器学习模型的性能的第二目标值为多个客户端各自的机器学习模型的性能的第二实际值的最大值。
276.在一种实现方式下,第二条件为:第二客户端的机器学习模型的性能的第二实际值大于机器学习模型的性能的第二目标值或第二差值小于第二阈值,第二差值等于机器学习模型的性能的第二目标值与第二客户端的机器学习模型的性能的第二实际值的差,第二客户端为多个客户端中的任意一个。
277.在一种实现方式下,上报有报警信号的客户端的训练结果都满足第二条件;根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值大于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
278.计算单元504用于根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
279.在一种实现方式下,上报有报警信号的客户端的训练结果都满足第二条件;根据上报有报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值小于,根据未上报报警信号的客户端的训练结果计算的机器学习模型的性能的第二实际值的最大值。
280.计算单元504用于根据筛选出的训练结果中未上报报警信号的客户端的训练结果,确定参数的第三值。
281.在一种实现方式下,上报有报警信号的客户端的训练结果部分满足第二条件。
282.计算单元504用于根据筛选出的训练结果中上报有报警信号的客户端的训练结果,确定参数的第三值。
283.在一种实现方式下,筛选单元503还用于当在包括本轮训练在内的m轮训练中,第三客户端的训练结果都不包含在筛选出的训练结果中时,在本轮训练后的n轮训练中,仅从多个客户端中除第三客户端外的其他客户端的训练结果中筛选训练结果,第三客户端为多个客户端中的任意一个,m和n均为正整数。
284.其中,以上各单元的具体实现、相关说明以及技术效果请参考本技术实施例图2至图4所示的实施例的描述。
285.请参阅图11,图11为本技术实施例中计算机设备的结构示意图。
286.本技术实施例中计算机设备一个实施例可以包括一个或一个以上处理器601,存储器602,通信接口603。
287.存储器602可以是短暂存储或持久存储。更进一步地,处理器601可以配置为与存储器602通信,在终端设备上执行存储器602中的一系列指令操作。
288.本实施例中,处理器601可以执行前述图2和图3所示实施例中客户端所执行的步骤,具体此处不再赘述。
289.示例性地,处理器601可以执行以下步骤:
290.接收来自服务端的参数的第一值,第一客户端为多个客户端中的一个;
291.在参数的第一值不满足第一条件的情况下,根据第一训练数据、机器学习模型以
及参数的本地值进行本轮训练,以得到本轮训练的训练结果,第一训练数据为预留在第一客户端的数据;
292.向服务端发送本轮训练的训练结果以及报警信息,报警信息指示参数的第一值不满足要求。
293.此时,处理器601中的具体功能模块划分可以与前述图9中所描述的接收单元、确定单元、训练单元和发送单元等功能模块的划分方式类似,此处不再赘述。
294.示例性地,处理器601可以执行以下步骤:
295.向多个客户端分别发送参数的第一值,参数的第一值用于机器学习模型的本轮训练;
296.接收多个客户端各自的本轮训练的训练结果;
297.在多个客户端中至少一个客户端还上报有报警信号的情况下,从多个客户端各自的本轮训练的训练结果中筛选训练结果,报警信息指示参数的第一值不满足第一条件;
298.根据筛选出的训练结果计算参数的第三值,参数的第三值用于机器学习模型的下一轮训练。
299.此时,处理器601中的具体功能模块划分可以与前述图10中所描述的发送单元、接收单元、第一确定单元和第二确定单元等功能模块的划分方式类似,此处不再赘述。
300.本技术实施例还提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行前述图2和图3所示实施例中第一客户端所执行的步骤,具体此处不再赘述。
301.其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
302.本技术实施例还提供了芯片或者芯片系统的第一种实施方式,本技术中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
303.本技术实施例还提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行前述图2和图4所示实施例中服务端所执行的步骤,具体此处不再赘述。
304.其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
305.本技术实施例还提供了芯片或者芯片系统的第一种实施方式,本技术中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
306.本技术实施例还提供了一种计算机存储介质,该计算机存储介质用于储存为上述终端设备或服务器所用的计算机软件指令,其包括用于执行为服务器所设计的程序。
307.该终端设备可以如前述图9所描述的联邦学习装置。
308.该服务器可以如前述图10所描述的联邦学习装置。
309.本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件
指令,该计算机软件指令可通过处理器进行加载来实现前述图2、图3和图4所示的方法中的流程。
310.请参阅图12,本技术实施例中联邦学习系统的结构示意图。
311.本技术实施例还提供了一种联邦学习系统的一个实施例,包括服务端701和多个客户端702,多个客户端702上部署有相同的机器学习模型;
312.多个客户端702中的每个客户端702用于执行前述实施例中第一客户端所执行的步骤;
313.服务端701用于执行前述实施例中服务端所执行的步骤。
314.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
315.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
316.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
317.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
318.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
再多了解一些

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

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

相关文献