用于量化联邦学习中的客户端贡献的方法和系统与流程

文档序号:37925959发布日期:2024-05-11 00:05阅读:7来源:国知局
用于量化联邦学习中的客户端贡献的方法和系统与流程

本发明涉及用于联邦学习的方法和系统,包括用于量化联邦学习中的客户端贡献的方法和系统。


背景技术:

1、联邦学习是一种机器学习技术,其中多个计算系统(也称为客户端)拥有不同数据所有者,参与训练机器学习算法以学习全局模型(在中央服务器上维护),而无需与中央服务器共享自身的数据。每个客户端的局部数据本质上可能是私有数据或专有数据(例如,照片、健康数据、社交媒体数据、银行数据、零售数据等)。因此,联邦学习有助于保护这些局部数据的隐私,因为它可以使全局模型进行训练(即,将全局模型的可学习参数(例如,权重和偏置)设置为能使全局模型在推断中取得令人满意的性能的值),而不要求客户端与中央服务器或其它客户端共享自身的局部数据。相反,客户端使用机器学习算法及其相应的局部数据集(set of local data/local dataset)对局部模型执行局部化训练,以学习局部模型的可学习参数的值。然后,客户端将关于其学习到的值的信息(例如,以梯度的形式)发送到中央服务器,以用于调整全局模型的可学习参数的值。中央服务器聚合从多个客户端接收到的信息,并使用聚合信息来调整全局模型的可学习参数的值。

2、然而,联邦学习中存在一个如何评估每个客户端的贡献以确保质量和/或客户端之间的公平性的问题。为了维持或鼓励客户端参与联邦学习,公平地评估不同客户端对联邦学习系统的贡献(例如,根据不同客户端对学习全局模型的可学习参数的值的贡献)非常重要。

3、因此,提供一种用于量化和评估各个客户端对联邦学习系统的贡献的方案是有用的。


技术实现思路

1、在各种示例中,本发明描述的各种方法和系统能够更加公平地、高效地量化各个客户端对联邦学习系统的贡献,同时确保各个客户端的数据隐私得到保护。

2、贡献分数基于夏普利(shapley)值,并使用存储效用函数值的效用矩阵进行计算。本发明描述了用于联邦学习的效用函数,以计算每个客户端在联邦学习系统中的贡献分数,从而避免因随机选择而不公平地惩罚客户端。因此,本发明的示例提供了技术优势,即客户端对联邦学习系统的贡献可以量化,这可以有助于更加高效地利用联邦学习系统中的资源。

3、在一个示例性方面,本发明描述了一种计算系统,所述计算系统包括处理单元,所述处理单元用于执行指令以使所述计算系统执行以下操作:使用多个客户端进行多轮训练,其中,所述处理单元还用于使所述计算系统通过以下方式进行每轮训练:从所述多个客户端中的选择的客户端接收更新,其中,所述选择的客户端被选择进行每轮训练;使用所述接收到的更新计算每轮训练的一个或多个效用函数值;将所述计算出的一个或多个效用函数值存储在效用矩阵中。其中,所述效用矩阵在所述多轮训练之后是具有缺失元素的稀疏矩阵。所述处理单元还用于执行指令以使所述计算系统执行以下操作:在所述多轮训练之后,通过计算补全的效用矩阵来补全所述效用矩阵的所述缺失元素;使用所述补全的效用矩阵计算所述多个客户端中的每个客户端的贡献分数。

4、在所述计算系统的上述方面的示例中,所述处理单元还可以用于使所述计算系统通过以下方式进行每轮训练:向所述多个客户端发送全局模型的全局参数;使用所述从所述选择的客户端接收到的更新来计算聚合更新;使用所述聚合更新来更新所述全局参数。

5、在所述计算系统的上述方面的示例中,计算每轮训练中的所述一个或多个效用函数值可以包括:识别所述选择的客户端中包括的一个或多个客户端子集;对于每个识别的客户端子集:在更新所述全局参数之前使用所述全局模型计算第一测试损失,以及在更新所述全局参数之后使用所述全局模型计算第二测试损失;计算所述第一测试损失和所述第二测试损失之间的差值,其中,所述计算出的差值是每轮训练中每个识别的客户端子集的所述效用函数值。

6、在所述计算系统的上述任一方面的示例中,所述补全的效用矩阵可以包括所有轮训练中所述多个客户端中的所有可能的客户端子集的效用函数值。

7、在所述计算系统的上述任一方面的示例中,所述处理单元还可以用于使所述计算系统执行以下操作:在所述多个客户端中的所有可能的客户端子集中识别子集子样本;其中,在所述多轮训练中,可以仅为属于所述识别的子集子样本的客户端子集计算所述一个或多个效用函数值。

8、在所述计算系统的上述任一方面的示例中,客户端的所述贡献分数可以根据下式计算:

9、

10、其中,i表示所述客户端的索引,n表示所述多个客户端的总数,t表示所述多轮训练的总数,s表示所述多个客户端中的客户端子集,ut,s表示所述效用矩阵的所述元素(t,s)。

11、在所述计算系统的上述任一方面的示例中,所述补全的效用矩阵可以计算为共同组成所述补全的效用矩阵的一对分解矩阵。

12、在所述计算系统的上述方面的示例中,在计算所述多个客户端中的每个客户端的所述贡献分数时,可以用所述分解矩阵代替所述补全的效用矩阵。

13、在所述计算系统的上述任一方面的示例中,所述处理单元还可以用于使所述计算系统执行以下操作:将任何贡献分数低的客户端排除在未来一轮或多轮训练之外。

14、在所述计算系统的上述任一方面的示例中,所述处理单元还可以用于使所述计算系统执行以下操作:为每个客户端提供与相应的贡献分数成比例的资源。

15、在另一个示例性方面,本发明描述了一种方法,所述方法包括:使用多个客户端进行多轮训练,每轮训练包括:从所述多个客户端中的选择的客户端接收更新,其中,所述选择的客户端被选择进行每轮训练;使用所述接收到的更新计算每轮训练的一个或多个效用函数值;将所述计算出的一个或多个效用函数值存储在效用矩阵中。其中,所述效用矩阵在所述多轮训练之后是具有缺失元素的稀疏矩阵。所述方法还可以包括:在所述多轮训练之后,通过计算补全的效用矩阵来补全所述效用矩阵的所述缺失元素;使用所述补全的效用矩阵计算所述多个客户端中的每个客户端的贡献分数。

16、在所述方法的上述方面的示例中,每轮训练可以包括:向所述多个客户端发送全局模型的全局参数;使用所述从所述选择的客户端接收到的更新来计算聚合更新;使用所述聚合更新来更新所述全局参数。

17、在所述方法的上述方面的示例中,计算每轮训练中的所述一个或多个效用函数值可以包括:识别所述选择的客户端中包括的一个或多个客户端子集;对于每个识别的客户端子集:在更新所述全局参数之前使用所述全局模型计算第一测试损失,以及在更新所述全局参数之后使用所述全局模型计算第二测试损失;计算所述第一测试损失和所述第二测试损失之间的差值,其中,所述计算出的差值是每轮训练中每个识别的客户端子集的所述效用函数值。

18、在所述方法的上述任一方面的示例中,所述补全的效用矩阵可以包括所有轮训练中所述多个客户端中的所有可能的客户端子集的效用函数值。

19、在所述方法的上述任一方面的示例中,所述方法可以包括:在所述多个客户端中的所有可能的客户端子集中识别子集子样本;其中,在所述多轮训练中,仅为属于所述识别的子集子样本的客户端子集计算所述一个或多个效用函数值。

20、在所述方法的上述任一方面的示例中,客户端的所述贡献分数可以根据下式计算:

21、

22、其中,i表示所述客户端的索引,n表示所述多个客户端的总数,t表示所述多轮训练的总数,s表示所述多个客户端中的客户端子集,ut,s表示所述效用矩阵的所述元素(t,s)。

23、在所述方法的上述任一方面的示例中,所述补全的效用矩阵可以计算为共同组成所述补全的效用矩阵的一对分解矩阵。

24、在所述方法的上述方面的示例中,在计算所述多个客户端中的每个客户端的所述贡献分数时,可以用所述分解矩阵代替所述补全的效用矩阵。

25、在所述方法的上述任一方面的示例中,所述方法可以包括:将任何贡献分数低的客户端排除在未来一轮或多轮训练之外。

26、在所述方法的上述任一方面的示例中,所述方法可以包括:为每个客户端提供与相应的贡献分数成比例的资源。

27、在另一个示例性方面中,本发明描述了一种其上存储有机器可执行指令的非瞬时性计算机可读介质,其中,当所述指令由装置的处理单元执行时,使所述装置执行所述方法的上述任一示例性方面的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1