基于联邦学习的数据保护方法及系统转让专利

申请号 : CN202311691019.0

文献号 : CN117395083B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄小鹏陈桂宏任恒勃

申请人 : 东信和平科技股份有限公司

摘要 :

本申请公开了一种基于联邦学习的数据保护方法及系统,本申请在每一次联邦学习过程中,先利用参与本次联邦学习的各个用户终端的终端信息,来生成各个用户终端的信息加密密钥,而后,在用户终端完成本地联邦学习,向边缘服务器发送训练后的模型参数时,利用信息加密密钥来加密上传的模型参数;如此,在联邦学习过程中,各个用户终端所上传的模型参数都是不可知的,基于此,能够有效避免通过各用户终端上传的模型参数来获取到原始的训练数据、进行成员推断以及属性推断的情况发生,避免造成用户本地数据泄露,由此,提高了联邦学习过程中各参与终端的本地数据的存储安全性。

权利要求 :

1.一种基于联邦学习的数据保护方法,其特征在于,应用于边缘服务器,所述边缘服务器分别与至少一个用户终端通信连接,所述边缘服务器与密钥服务器通信连接,所述方法包括:获取用户终端集合和至少一个初始模型,其中,所述用户终端集合中包括至少一个所述用户终端,各个所述用户终端对应有终端信息;

初始化学习迭代次数i为1,基于所述用户终端集合,确定参与终端集合,所述参与终端集合包括至少一个参与终端,所述参与终端指示至少一个所述用户终端中参与第i次联邦学习的用户终端,其中,i为大于或等于1的正整数;

将各个所述参与终端对应的所述终端信息发送至所述密钥服务器,以使所述密钥服务器根据各个所述终端信息生成各个信息加密密钥,并将各个所述信息加密密钥发送至对应的各个所述参与终端;

将各个所述初始模型作为第i次联邦学习时所使用的模型,并将各个所述初始模型发送至各个所述参与终端,以使各个所述参与终端利用本地数据集训练所述初始模型,得到训练结果和训练后的模型参数,并根据所述信息加密密钥对所述训练后的模型参数进行加密处理,得到第i次联邦学习时的加密模型参数,并将所述加密模型参数和所述训练结果发送至所述边缘服务器,其中,所述初始模型为第i次联邦学习时所使用的模型,所述训练结果包括表征训练后的模型是否收敛的信息;

接收各个所述参与终端发送的各个所述加密模型参数和各个所述训练结果,并基于各个所述加密模型参数更新第i次联邦学习时所使用的模型,得到更新后的模型;

判断所述更新后的模型是否满足学习迭代停止条件,当所述更新后的模型不满足学习迭代停止条件,将所述初始模型替换所述更新后的模型,将i的数值加一,并利用各个所述参与终端发送的所述训练结果,更新各个所述参与终端的终端信息,并从当前的全部的用户终端中重新确定至少一个新的参与终端,直至更新后的初始模型满足学习迭代停止条件,得到目标模型;

将所述目标模型发送至各个所述用户终端;

其中,所述加密模型参数包括第一加密模型参数和第二加密模型参数,所述基于各个所述加密模型参数更新第i次联邦学习时所使用的模型,得到更新后的模型,包括:基于各个所述加密模型参数更新第i次联邦学习时所使用的模型的全局模型参数,得到更新后的全局模型参数;

利用所述更新后的全局模型参数,更新第i次联邦学习时所使用的模型,得到所述更新后的模型;

其中,所述基于各个所述加密模型参数更新第i次联邦学习时所使用的模型的全局模型参数,得到更新后的全局模型参数,根据以下公式得到:;

其中,  表示所述更新后的全局模型参数, 表示第i次联邦学习时所使用的模型的全局模型参数, 表示参与终端集合中的第m个参与终端对应的所述第一加密模型参数, 表示参与终端集合中的第m个参与终端对应的所述第二加密模型参数, 为参与终端的总数。

2.一种基于联邦学习的数据保护方法,其特征在于,应用于密钥服务器,所述密钥服务器与边缘服务器通信连接,所述密钥服务器分别与至少一个用户终端通信连接,所述方法包括:接收所述边缘服务器发送的参与终端集合中各个参与终端对应的终端信息,其中,所述参与终端指示多个所述用户终端中参与第i次联邦学习的用户终端,i为大于或等于1的正整数,i的初始值为1;

基于各个所述参与终端的终端信息,生成各个参与终端对应的信息加密密钥;

将各个所述信息加密密钥发送至对应的参与终端,以使各个参与终端利用接收到的信息加密密钥,加密训练后的模型参数,得到第i次联邦学习时的加密模型参数,其中,所述训练后的模型参数由所述参与终端利用本地数据集训练初始模型得到,所述初始模型为第i次联邦学习时所使用的模型;

其中,各个所述参与终端的终端信息包括对应的所述参与终端的终端编号,所述基于各个所述参与终端的终端信息,生成各个参与终端对应的信息加密密钥,包括:对于所述参与终端集合中的第k个参与终端,从所述参与终端集合中随机选取出第h个参与终端,其中,k和h均为大于或等于1的正整数,并且k与h的数值互不相同;

利用所述第h个参与终端,以及所述参与终端集合中的所述第k个参与终端与所述第h个参与终端之间的所有参与终端,组成密钥参与终端集合;

根据所述第k个参与终端的终端编号、所述密钥参与终端集合中各个密钥参与终端的终端编号生成所述第k个参与终端的第一密钥;

令k数值加一,并重新从所述参与终端集合中随机选取出新的第h个参与终端,重新利用所述新的第h个参与终端,以及所述参与终端集合中的当前的第k个参与终端与所述新的第h个参与终端之间的所有所述参与终端,组成新的密钥参与终端集合;根据当前的第k个参与终端的终端编号和所述新的密钥参与终端集合中各个密钥参与终端的终端编号,生成当前的第k个参与终端的第一密钥,直至k等于M,得到各个所述参与终端的第一密钥,其中,k的初始值为1,且M为参与终端的总数;

基于各个参与终端的第一密钥,确定出各个参与终端的第二密钥;

利用各个参与终端的第一密钥和第二密钥,组成各个参与终端的信息加密密钥;

其中,所述根据所述第k个参与终端的终端编号、所述密钥参与终端集合中各个密钥参与终端的终端编号生成所述第k个参与终端的第一密钥根据以下公式得到:;

其中, 表示所述第k个参与终端的第一密钥, 表示第k个参与终端与密钥参与终端集合中第v个密钥参与终端之间的密钥系数, 表示随机数,其中,r表示所述第k个参与终端的终端编号,z表示所述第v个密钥参与终端的终端编号,当 ,, 当 时, ,V表示密钥参与终端的总数。

3.根据权利要求2所述的基于联邦学习的数据保护方法,其特征在于,所述基于各个参与终端的第一密钥,确定出各个参与终端的第二密钥,包括:基于所述第k个参与终端,利用指定终端集合中的终端的第一密钥,组成密钥集合,其中,所述指定终端集合包含有所述参与终端集合中删除所述第k个参与终端后剩余的所有参与终端;

判断所述密钥集合中是否存在有目标密钥,其中,所述目标密钥包括所述参与终端集合中,排序位于所述第k个参与终端之前的所有参与终端对应的第二密钥;

当所述密钥集合存在所述目标密钥,从所述密钥集合中删除所述目标密钥,得到更新后的密钥集合,从所述更新后的密钥集合中,随机选取一个密钥,作为所述第k个参与终端的第二密钥;当所述密钥集合不存在所述目标密钥,从所述密钥集合中,随机选取一个密钥作为所述第k个参与终端的第二密钥;

令k数值加一,并重新利用指定终端集合中的终端的第一密钥,组成新的密钥集合,基于所述密钥集合中是否存在有目标密钥,重新获取新的第k个参与终端的第二密钥,直至k等于M 时,得到各个所述参与终端对应的第二密钥。

4.一种基于联邦学习的数据保护方法,其特征在于,应用于参与终端集合中的任意一个参与终端,所述参与终端指示至少一个用户终端中参与第i次联邦学习的用户终端,i为大于或等于1的正整数,i的初始值为1,至少一个所述用户终端分别与边缘服务器和密钥服务器通信连接,所述方法包括:接收所述密钥服务器发送的信息加密密钥,以及接收边缘服务器发送的初始模型,其中,所述初始模型为第i次联邦学习时所使用的模型,所述信息加密密钥为所述密钥服务器根据所述参与终端的终端信息生成的信息加密密钥;

利用本地数据集训练所述初始模型,得到训练结果和训练后的模型参数,其中,所述训练结果包括表征训练后的模型是否收敛的信息;

利用所述信息加密密钥,加密所述训练后的模型参数,得到第i次联邦学习时的加密模型参数;

将所述训练结果和加密模型参数发送至所述边缘服务器,以使所述边缘服务器在接收到所有第i次联邦学习时的各个参与终端发送的加密模型参数后,利用各个加密模型参数,更新第i次联邦学习时所使用的模型,得到更新后的模型;

其中,各个所述参与终端对应的信息加密密钥包括第一密钥和第二密钥,其中,各个所述参与终端对应的第二密钥,为参与终端集合中剩下的参与终端对应第一密钥中的任意一个,且各个参与终端对应的第二密钥互不相同;所述利用所述信息加密密钥,加密所述训练后的模型参数,得到第i次联邦学习时的加密模型参数,包括:基于所述训练后的模型参数,计算出所述训练后的模型的损失函数;

根据所述损失函数,计算出所述训练后的模型的梯度参数;

利用所述损失函数和所述梯度参数,计算出第一目标模型参数以及第二目标模型参数;

依据所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数;

利用所述第一加密模型参数和所述第二加密模型参数,组成所述第i次联邦学习时的加密模型参数。

5.根据权利要求4所述的基于联邦学习的数据保护方法,其特征在于,所述利用所述损失函数和所述梯度参数,计算出第一目标模型参数以及第二目标模型参数根据以下公式得到:;

其中, 表示所述第一目标模型参数, 表示所述损失函数,

表示所述梯度参数, 表示常数, 表示所述第二目标模型参数,表示

常数, 表示范数符号;

其中,所述依据所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数,包括:基于所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数;

其中,所述基于所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数,依次按照以下公式得到:;

其中, 表示所述第一加密模型参数, 表示所述参与终端的第一密钥, 表示所述参与终端的第二密钥,  表示所述第二加密模型参数。

6.根据权利要求4所述的基于联邦学习的数据保护方法,所述利用本地数据集训练所述初始模型,包括:在利用所述本地数据集,每训练一次所述初始模型后,获取所述初始模型的输出精度;

判断所述输出精度是否大于或等于目标精度;

当所述输出精度小于所述目标精度,则基于所述输出精度、所述目标精度以及所述初始模型在此次训练后的模型参数,计算出所述初始模型的更新参数;

利用所述更新参数,更新所述初始模型,得到更新后的模型;

利用本地数据集训练所述更新后的模型,并记录模型训练次数,直至模型训练次数达到最大训练次数或更新后的模型的输出精度大于或等于目标精度时,得到所述训练后的模型。

7.一种基于联邦学习的数据保护系统,其特征在于,包括:

边缘服务器;

至少一个参与终端,各个所述参与终端与所述边缘服务器通信连接,其中,所述参与终端指示至少一个与所述边缘服务器通信连接的所述用户终端中参与第i次联邦学习的用户终端,其中,i为大于或等于1的正整数,i的初始值为1;

密钥服务器,所述密钥服务器与所述边缘服务器通信连接,所述密钥服务器分别与各个所述参与终端通信连接;

其中,所述边缘服务器用于执行如权利要求1所述的基于联邦学习的数据保护方法,所述参与终端用于执行如权利要求2至3中任意一项所述的基于联邦学习的数据保护方法,所述密钥服务器用于执行如权利要求4至6中任意一项所述的基于联邦学习的数据保护方法。

说明书 :

基于联邦学习的数据保护方法及系统

技术领域

[0001] 本申请涉及但不限于数据安全技术领域,尤其涉及一种基于联邦学习的数据保护方法及系统。

背景技术

[0002] 随着大数据挖掘和深度学习的广泛应用与发展,隐私泄露事件和数据滥用事件频繁爆发,使得用户越来越重视数据的隐私性和安全性,特别是在分布式机器学习任务中,分布式参与设备由于数据泄露问题而不愿意提供本地训练数据,从而形成了“数据孤岛”现象,从而无法满足数据联合使用的迫切需求。

发明内容

[0003] 本申请实施例提供了一种基于联邦学习的数据保护方法及系统,能够提高分布式机器学习任务中各个分布式参与设备的本地数据的存储安全性。
[0004] 第一方面,本申请实施例提供了一种基于联邦学习的数据保护方法,应用于边缘服务器,所述边缘服务器分别与至少一个用户终端通信连接,所述边缘服务器与密钥服务器通信连接,所述方法包括:
[0005] 获取用户终端集合和至少一个初始模型,其中,所述用户终端集合中包括至少一个所述用户终端,各个所述用户终端对应有终端信息;
[0006] 初始化学习迭代次数i为1,基于所述用户终端集合,确定参与终端集合,所述参与终端集合包括至少一个参与终端,所述参与终端指示所述用户终端中参与第i次联邦学习的用户终端,其中,i为大于或等于1的正整数;
[0007] 将各个所述参与终端对应的所述终端信息发送至所述密钥服务器,以使所述密钥服务器根据各个所述终端信息生成各个信息加密密钥,并将各个所述信息加密密钥发送至对应的各个所述参与终端;
[0008] 将各个所述初始模型作为第i次联邦学习时所使用的模型,并将各个所述初始模型发送至各个所述参与终端,以使各个所述参与终端利用本地数据集训练所述初始模型,得到训练结果和训练后的模型参数,并根据所述信息加密密钥对所述训练后的模型参数进行加密处理,得到第i次联邦学习时的加密模型参数,并将所述加密模型参数和所述训练结果发送至所述边缘服务器,其中,所述初始模型为第i次联邦学习时所使用的模型,所述训练结果包括表征训练后的模型是否收敛的信息;
[0009] 接收各个所述参与终端发送的各个所述加密模型参数和各个所述训练结果,并基于各个所述加密模型参数更新第i次联邦学习时所使用的模型,得到更新后的模型;
[0010] 判断所述更新后的模型是否满足学习迭代停止条件,当所述更新后的模型不满足学习迭代停止条件,将所述初始模型替换所述更新后的模型,将i的数值加一,并利用各个所述参与终端发送的所述训练结果,更新各个所述参与终端的终端信息,并从当前的全部的用户终端中重新确定至少一个新的参与终端,直至更新后的初始模型满足学习迭代停止条件,得到目标模型;
[0011] 将所述目标模型发送至各个所述用户终端。
[0012] 在一些实施例中,所述加密模型参数包括第一加密模型参数和第二加密模型参数,所述基于各个所述加密模型参数更新第i次联邦学习时所使用的模型,得到更新后的模型,包括:
[0013] 基于各个所述加密模型参数和第一预设算法,更新第i次联邦学习时所使用的模型的全局模型参数,得到更新后的全局模型参数;
[0014] 利用所述更新后的全局模型参数,更新第i次联邦学习时所使用的模型,得到所述更新后的模型;
[0015] 其中,所述基于各个所述加密模型参数更新第i次联邦学习时所使用的模型的全局模型参数,得到更新后的全局模型参数,根据以下公式得到:
[0016] ;
[0017] 其中, 表示所述更新后的全局模型参数, 表示第i次联邦学习时所使用的模型的全局模型参数, 表示参与终端集合中的第m个参与终端对应的所述第一加密模型参数, 表示参与终端集合中的第m个参与终端对应的所述第二加密模型参数, 为参与终端的总数。
[0018] 第二方面,本申请实施例提供了一种基于联邦学习的数据保护方法,应用于密钥服务器,所述密钥服务器与边缘服务器通信连接,所述密钥服务器分别与至少一个用户终端通信连接,所述方法包括:
[0019] 接收所述边缘服务器发送的参与终端集合中各个参与终端对应的终端信息,其中,所述参与终端指示至少一个所述用户终端中参与第i次联邦学习的用户终端,i为大于或等于1的正整数,i的初始值为1;
[0020] 基于各个所述参与终端的终端信息,生成各个参与终端对应的信息加密密钥;
[0021] 将各个所述信息加密密钥发送至对应的参与终端,以使各个参与终端利用接收到的信息加密密钥,加密训练后的模型参数,得到第i次联邦学习时的加密模型参数,其中,所述训练后的模型参数由所述参与终端利用本地数据集训练初始模型得到,所述初始模型为第i次联邦学习时所使用的模型。
[0022] 在一些实施例中,各个所述参与终端的终端信息包括对应的所述参与终端的终端编号,所述基于各个所述参与终端的终端信息,生成各个参与终端对应的信息加密密钥,包括:
[0023] 对于所述参与终端集合中的第k个参与终端,从所述参与终端集合中随机选取出第h个参与终端,其中,k和h均为大于或等于1的正整数,并且k与h的数值互不相同;
[0024] 利用所述第h个参与终端,以及所述参与终端集合中的所述第k个参与终端与所述第h个参与终端之间的所有参与终端,组成密钥参与终端集合;
[0025] 根据所述第k个参与终端的终端编号和所述密钥参与终端集合中各个密钥参与终端的终端编号,生成所述第k个参与终端的第一密钥;
[0026] 令k数值加一,并重新从所述参与终端集合中随机选取出新的第h个参与终端,重新利用所述新的第h个参与终端,以及所述参与终端集合中的当前的第k个参与终端与所述新的第h个参与终端之间的所有所述参与终端,组成新的密钥参与终端集合;根据当前的第k个参与终端的终端编号和所述新的密钥参与终端集合中各个密钥参与终端的终端编号,生成当前的第k个参与终端的第一密钥,直至k等于M,得到各个所述参与终端的第一密钥,其中,k的初始值为1,且M为参与终端的总数;
[0027] 基于各个参与终端的第一密钥,确定出各个参与终端的第二密钥;
[0028] 利用各个参与终端的第一密钥和第二密钥,组成各个参与终端的信息加密密钥;
[0029] 其中,所述根据所述第k个参与终端的终端编号、所述密钥参与终端集合中各个密钥参与终端的终端编号生成所述第k个参与终端的第一密钥根据以下公式得到:
[0030] ;
[0031] 其中, 表示所述第k个参与终端的第一密钥, 表示第k个参与终端与密钥参与终端集合中第v个密钥参与终端之间的密钥系数, 表示随机数,其中,r表示所述第k个参与终端的终端编号,z表示所述第v个密钥参与终端的终端编号,当, , 当 时, ,V表示密钥参与终端的总数。
[0032] 在一些实施例中,所述基于各个参与终端的第一密钥,确定出各个参与终端的第二密钥,包括:
[0033] 基于所述第k个参与终端,利用指定终端集合中的终端的第一密钥,组成密钥集合,其中,所述指定终端集合包含有所述参与终端集合中删除所述第k个参与终端后剩余的所有参与终端;
[0034] 判断所述密钥集合中是否存在有目标密钥,其中,所述目标密钥包括所述参与终端集合中,排序位于所述第k个参与终端之前的所有参与终端对应的第二密钥;
[0035] 当所述密钥集合存在所述目标密钥,从所述密钥集合中删除所述目标密钥,得到更新后的密钥集合,从所述更新后的密钥集合中,随机选取一个密钥,作为所述第k个参与终端的第二密钥;当所述密钥集合不存在所述目标密钥,从所述密钥集合中,随机选取一个密钥作为所述第k个参与终端的第二密钥;
[0036] 令k数值加一,并重新利用指定终端集合中的终端的第一密钥,组成新的密钥集合,基于所述密钥集合中是否存在有目标密钥,重新获取新的第k个参与终端的第二密钥,直至k等于M 时,得到各个所述参与终端对应的第二密钥。
[0037] 第三方面,本申请实施例提供了一种基于联邦学习的数据保护方法,应用于参与终端集合中的任意一个参与终端,所述参与终端指示至少一个所述用户终端中参与第i次联邦学习的用户终端,i为大于或等于1的正整数,i的初始值为1,所述参与终端分别与边缘服务器和密钥服务器通信连接,所述方法包括:
[0038] 接收所述密钥服务器发送的信息加密密钥,以及接收边缘服务器发送的初始模型,其中,所述初始模型为第i次联邦学习时所使用的模型,所述信息加密密钥为所述密钥服务器根据所述参与终端的终端信息生成的信息加密密钥;
[0039] 利用本地数据集训练所述初始模型,得到训练结果和训练后的模型参数,其中,所述训练结果包括表征训练后的模型是否收敛的信息;
[0040] 利用所述信息加密密钥,加密所述训练后的模型参数,得到第i次联邦学习时的加密模型参数;
[0041] 将所述训练结果和加密模型参数发送至所述边缘服务器,以使所述边缘服务器在接收到所有第i次联邦学习时的各个参与终端发送的加密模型参数后,利用各个加密模型参数,更新第i次联邦学习时所使用的模型,得到更新后的模型。
[0042] 在一些实施例中,各个所述参与终端对应的信息加密密钥包括第一密钥和第二密钥,其中,各个所述参与终端对应的第二密钥,为参与终端集合中剩下的参与终端对应第一密钥中的任意一个,且各个参与终端对应的第二密钥互不相同;所述利用所述信息加密密钥,加密所述训练后的模型参数,得到第i次联邦学习时的加密模型参数,包括:
[0043] 基于所述训练后的模型参数,计算出所述训练后的模型的损失函数;
[0044] 根据所述损失函数,计算出所述训练后的模型的梯度参数;
[0045] 利用所述损失函数和所述梯度参数,计算出第一目标模型参数以及第二目标模型参数;
[0046] 依据所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数;
[0047] 利用所述第一加密模型参数和所述第二加密模型参数,组成所述第i次联邦学习时的加密模型参数。
[0048] 在一些实施例中,所述利用所述损失函数和所述梯度参数,计算出第一目标模型参数以及第二目标模型参数根据以下公式得到:
[0049] ;
[0050] ;
[0051] 其中, 表示所述第一目标模型参数, 表示所述损失函数,表示所述梯度参数, 表示常数, 表示所述第二目标模型参数,表示
常数, 表示范数符号;
[0052] 其中,所述依据所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数,包括:
[0053] 基于所述第一密钥和所述第二密钥,并依次按照第三预设算法和第四预设算法,加密所
[0054] 述第一目标模型参数以及第二目标模型参数,以得到第一加密模型参数和第二加密模型参数;
[0055] 其中,所述基于所述第一密钥和所述第二密钥,加密所述第一目标模型参数以及第二目标模型参数,得到第一加密模型参数和第二加密模型参数,依次按照以下公式得到:
[0056] ;
[0057] ;
[0058] 其中, 表示所述第一加密模型参数, 表示所述参与终端的第一密钥,表示所述参与终端的第二密钥, 表示所述第二加密模型参数。
[0059] 在一些实施例中,所述利用本地数据集训练所述初始模型,包括:
[0060] 在利用所述本地数据集,每训练一次所述初始模型后,获取所述初始模型的输出精度;
[0061] 判断所述输出精度是否大于或等于目标精度;
[0062] 当所述所述输出精度小于所述目标精度,则基于所述输出精度、所述目标精度以及所述初始模型在此次训练后的模型参数,计算出所述初始模型的更新参数;
[0063] 利用所述更新参数,更新所述初始模型,得到更新后的模型;
[0064] 利用本地数据集训练所述更新后的模型,并记录模型训练次数,直至模型训练次数达到最大训练次数或更新后的模型的输出精度大于或等于目标精度时,得到所述训练后的模型。
[0065] 第四方面,本申请实施例提供了一种基于联邦学习的数据保护系统,包括:
[0066] 边缘服务器;
[0067] 至少一个参与终端,各个所述参与终端与所述边缘服务器通信连接,其中,所述参与终端指示至少一个与所述边缘服务器通信连接的所述用户终端中参与第i次联邦学习的用户终端,其中,i为大于或等于1的正整数,i的初始值为1;
[0068] 密钥服务器,所述密钥服务器与所述边缘服务器通信连接,所述密钥服务器分别与各个所述参与终端通信连接;
[0069] 其中,所述边缘服务器用于执行第一方面任意一项所述的基于联邦学习的数据保护方法,所述参与终端用于执行第二方面任意一项所述的基于联邦学习的数据保护方法,所述密钥服务器用于执行第三方面任意一项所述的基于联邦学习的数据保护方法。
[0070] 第五方面,本申请实施例还提供了一种电子设备,包括少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行如上述第一方面所述的基于联邦学习的数据保护方法、第二方面所述的基于联邦学习的数据保护方法或者第三方面所述的基于联邦学习的数据保护方法。
[0071] 第六方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述第一方面所述的基于联邦学习的数据保护方法、第二方面所述的基于联邦学习的数据保护方法或者第三方面所述的基于联邦学习的数据保护方法。
[0072] 第七方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序或计算机指令,所述计算机程序或所述计算机指令存储在计算机可读存储介质中,计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序或所述计算机指令,所述处理器执行所述计算机程序或所述计算机指令,使得所述计算机设备执行如第一方面所述的基于联邦学习的数据保护方法、第二方面所述的基于联邦学习的数据保护方法或者第三方面所述的基于联邦学习的数据保护方法。
[0073] 本申请实施例在每一次联邦学习过程中,先利用参与本次联邦学习的各个用户终端的终端信息,来生成各个用户终端的信息加密密钥,而后,在用户终端完成本地联邦学习,向边缘服务器发送训练后的模型参数时,利用信息加密密钥来加密上传的模型参数;如此,在联邦学习过程中,各个用户终端所上传的模型参数都是不可知的,基于此,能够有效避免通过各用户终端上传的模型参数来获取到原始的训练数据、进行成员推断以及属性推断的情况发生,避免造成用户本地数据泄露,由此,本申请实施例能够使得参与终端在联邦学习过程中,防止参与终端的本地数据泄露,保护了参与终端的数据隐私安全,提高了联邦学习过程中各参与终端的本地数据的存储安全性。

附图说明

[0074] 图1是本申请一个实施例提供的基于联邦学习的数据保护方法的步骤流程图;
[0075] 图2是本申请另一个实施例提供的基于联邦学习的数据保护系统的结构示意图;
[0076] 图3是本申请另一个实施例提供的电子设备的结构示意图。

具体实施方式

[0077] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将结合附图和实施例或现有技术的描述对本发明作简单地介绍,显而易见地,下面关于附图结构的描述仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。
[0078] 应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
[0079] 应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A 和/或 B,可以表示:单独存在 A,单独存在 B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和 B,可以表示:单独存在 A,单独存在 A 和 B 两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
[0080] 随着大数据挖掘和深度学习的广泛应用与发展,隐私泄露事件和数据滥用事件频繁爆发,使得用户越来越重视数据的隐私性和安全性,特别是在分布式机器学习任务中,分布式参与设备由于数据泄露问题而不愿意提供本地训练数据,从而形成了“数据孤岛”现象,从而无法满足数据联合使用的迫切需求。
[0081] 为解决上述存在的问题,本申请实施例提供了一种基于联邦学习的数据保护方法及系统,本申请实施例在每一次联邦学习过程中,先利用参与本次联邦学习的各个用户终端的终端信息,来生成各个用户终端的信息加密密钥,而后,在用户终端完成本地联邦学习,向边缘服务器发送训练后的模型参数时,利用信息加密密钥来加密上传的模型参数;如此,在联邦学习过程中,各个用户终端所上传的模型参数都是不可知的,基于此,能够有效避免通过各用户终端上传的模型参数来获取到原始的训练数据、进行成员推断以及属性推断的情况发生,避免造成用户本地数据泄露,由此,本申请实施例能够使得参与终端在联邦学习过程中,防止参与终端的本地数据泄露,保护了参与终端的数据隐私安全,提高了联邦学习过程中各参与终端的本地数据的存储安全性。
[0082] 下面结合附图,对本申请实施例作进一步阐述。
[0083] 参考图1,图1是本申请一个实施例提供的基于联邦学习的数据保护方法的步骤流程图,本申请实施例提供了一种基于联邦学习的数据保护方法,该方法可以但不限于在边缘服务器、密钥服务器和各个用户终端运行,可以理解的是,前述执行主体并不构成对本申请实施例的限定,相应的,本方法的运行步骤可以但不限于如下述步骤 S1~S12 所示:
[0084] S1,边缘服务器获取用户终端集合以及至少一个初始模型,其中,用户终端集合中包含有至少一个用户终端,各个用户终端对应有终端信息;在本实施例中,举例各个用户终端可先将各自的终端信息发送至边缘服务器,而边缘服务器在接收到各个用户终端所发送的终端信息后,则可利用接收到的信息生成用户终端集合,同时,举例任一用户终端的终端信息可以但不限于包括该任一用户终端的终端编号(该编号优选为数字,如编号1、编号2等等);另外,初始模型可根据用户终端和边缘服务器的实际使用场景而具体设定;如,在社交软件领域,该初始模型可为违规图片识别模型(如识别暴力血腥图片等等);又如,可为软件实名身份验证时的人脸识别模型等等;当然,前述举例仅是示意,初始模型的种类不限定于前述举例。
[0085] 可以理解的是,在边缘服务器获取到用户终端集合后,即可开始联邦学习过程,其中,联邦学习过程可以但不限于如下述步骤S2~S13所示。
[0086] S2,边缘服务器初始化学习迭代次数i为1,并基于用户终端集合,确定出参与第i次联邦学习的至少一个用户终端,以利用确定出的至少一个用户终端,组成参与终端集合;在本实施例中,是从用户终端集合中选取出参与上一次联邦学习的各个用户终端中,未达到指定要求的用户终端,其中,该指定要求是指用户终端本地的目标模型达到目标精度;同时,当i为1时,则需要选取用户终端集合中所有的用户终端,而当i为2或大于2的正整数时,则需要选取上一次未达到指定要求的用户终端。
[0087] 在选取出第i次联邦学习的用户终端后,为保证选取出的各个用户终端(即第i次联邦学习时的参与终端)在联邦学习过程中,其上传的模型参数不可知,本实施例设置有密钥生成步骤,以便后续利用生成的密钥,来加密各个参与终端所上传的模型参数,从而达到保护模型参数的目的;密钥生成步骤可以但不限于如下述步骤S3~S5所示。
[0088] S3,边缘服务器将参与终端集合中各个参与终端对应的终端信息发送至密钥服务器。
[0089] S4,密钥服务器接收边缘服务器发送的参与终端集合中各个参与终端对应的终端信息,并基于各个参与终端的终端信息,生成各个参与终端的信息加密密钥,并将各个信息加密密钥,发送至对应的参与终端;可选的,密钥服务器独立于边缘服务器和各参与终端,其仅起到密钥生成与下发的作用;同时,举例密钥服务器可通过生成随机数的方法,来生成各个参与终端的信息加密密钥,其具体过程可以但不限于如下述步骤S41~S46所示。
[0090] S41,对于参与终端集合中的第k个参与终端,从参与终端集合中随机选取出第h个参与终端,其中,k,h均为大于或等于1的正整数,并且k与h的数值互不相同;在具体应用时,对于第k个参与终端,则是从参与终端集合剩余的参与终端中,随机选取一个,来作为第h个参与终端,而后,即可利用第k个参与终端和第h个参与终端之间的各个参与终端的终端编号,来生成第k个参与终端的第一密钥,其中,第一密钥的生成过程可以但不限于如下述步骤S42和步骤S43所示。
[0091] S42,利用第h个参与终端,以及第k个参与终端与第h个参与终端之间的所有参与终端,组成密钥参与终端集合。
[0092] S43,根据第k个参与终端的终端编号,以及密钥参与终端集合中各个密钥参与终端的终端编号,生成第k个参与终端的第一密钥。
[0093] 其中,根据第k个参与终端的终端编号,以及密钥参与终端集合中各个密钥参与终端的终端编号,生成第k个参与终端的第一密钥根据以下公式得到:
[0094] ;
[0095] 其中, 表示第k个参与终端的第一密钥, 表示第k个参与终端与密钥参与终端集合中第v个密钥参与终端之间的密钥系数, 表示随机数(该随机数可设定指定范围,如(0,10000000]之间的任意一个随机数),其中,r表示第k个参与终端的终端编号,z表示第v个密钥参与终端的终端编号,当 , , 当 时,
,V表示密钥参与终端的总数。
[0096] 在本实施例中,举例在每进行一次乘法运算时, 则会更新一次,也就是说,每次乘法运算时所使用的随机数不同。
[0097] 下面以一个示例来具体说明上述步骤S42至S43:
[0098] 假设参与终端集合中包含有4个参与终端(依次为A、B、C和D),终端编号依次为编号 1、编号2、编号3以及编号4,且假设k为1,h为3,如此,密钥参数终端集合中则包含有编号 2 和编号 3 的参与终端(即包含有 2 个密钥参与终端),那么,第一个参与终端的第一密钥的表达式为:
[0099] ;
[0100] 其中,密钥参与终端集合中的第 1 个密钥参与终端为参与终端 B(编号为 2),密钥参与终端集合中的第二个密钥参与终端为参与终端 C(编号为 3),如此,前述第一个参与终端的第一密钥则变形为:
[0101] ;
[0102] 其中,若两次随机数为 100 和 200,那么,第一个参与终端(即参与终端 A)的第一密钥则为‑300;当 k 为其余值时,其对应第一密钥的生成过程与前述举例一致,在此不重复赘述。
[0103] 如此,基于前述步骤 S52 和步骤 S53,则可计算出第 k 个参与终端的第一密钥,而后,以相同方法,即可计算出下一个参与终端的第一密钥,并以此循环,直至将所有参与终端均轮询完毕时,即可得到所有参与终端的第一密钥;其中,轮询过程如下述步骤 S44 所示。
[0104] S44,令k的数值加一,并重新从参与终端集合中随机选取出新的第 h 个参与终端,重新利用新的第h个参与终端,以及参与终端集合中的当前的第k个参与终端与新的第h个参与终端之间的所有参与终端,组成新的密钥参与终端集合;根据当前的第k个参与终端的终端编号和新的密钥参与终端集合中各个密钥参与终端的终端编号,生成当前的第k个参与终端的第一密钥,直至k等于M,得到各个参与终端的第一密钥,其中,k的初始值为1,且M为参与终端的总数;在具体应用时,举例得到各个参与终端的第一密钥后,对于任一参与终端,还会从剩余的各个参与终端的第一密钥中,随机选取一个,作为该任一参与终端的第二密钥;同理,对于其余参与终端也是如此,且在第二密钥的生成过程中,需要保证各个参与终端的第二密钥互不相同;基于此,即可使任一参与终端的信息加密密钥关联有自己对应的第一密钥,以及其余一参与终端的第一密钥,从而增加密钥的复杂度,以降低被破解的风险。
[0105] 具体地,各个参与终端的第二密钥的生成过程可以但不限于如下述步骤S45所示。
[0106] S45,基于各个参与终端的第一密钥,确定出各个参与终端的第二密钥;在具体应用时,举例可采用如下步骤 S45a至S45e,来确定出各个参与终端的第二密钥。
[0107] S45a,对于第 k 个参与终端,利用指定终端的第一密钥,组成密钥集合,其中,指定终端包含有参与终端集合中删除第 k 个参与终端后剩余的所有参与终端;在具体应用时,则是将参与终端集合中除去第 k 个参与终端之外的所有参与终端的第一密钥,来组成密钥集合;而后,即可在密钥集合中选取一个未被选取的密钥,来作为第 k 个参与终端的第二密钥,其中,选取过程如下述步骤 S45b~S45d 所示。
[0108] S45b,判断密钥集合中是否存在有目标密钥,其中,目标密钥包括第 k 个参与终端之前的所有参与终端对应的第二密钥;在本实施例中,该步骤则是判断密钥集合中是否存在有被选取的密钥,若存在,则需要进行删除,以防止重复选取,若不存在,则可直接从该密钥集合中随机选取一个密钥,来作为第 k 个参与终端的第二密钥,其中,选取过程如下述步骤S45c 和步骤 S45d 所示。
[0109] S45c,当密钥集合存在目标密钥,从密钥集合中删除目标密钥,得到更新后的密钥集合,从更新后的密钥集合中,随机选取一个密钥,作为第k个参与终端的第二密钥;当密钥集合不存在目标密钥,从密钥集合中,随机选取一个密钥作为第k个参与终端的第二密钥。
[0110] S45d,从更新后的密钥集合中,随机选取一个密钥,作为第 k 个参与终端的第二密钥;由此通过前述步骤 S55a~S55d,则可确定出第 k 个参与终端的第二密钥,而后,以前述相同方法,即可确定出其余各个参与终端的第二密钥,其循环过程如下述步骤 S45e 所示。
[0111] S45e,令k数值加一,并重新利用指定终端集合中的终端的第一密钥,组成新的密钥集合,基于密钥集合中是否存在有目标密钥,重新获取新的第k个参与终端的第二密钥,直至k等于M 时,得到各个参与终端对应的第二密钥。
[0112] 在本实施例中,下述以一个实例来阐述前述步骤 S45a至S45d。
[0113] 在参与终端 A、B、C 和 D的基础上进行举例,其中,假设前述 4 个参与终端的第一密钥分别为 A1、B1、C1 和 D1,且k为1,那么,对于第一个参与终端(即参与终端 A)来说,密钥集合则包含有 B1、C1 和 D1,此时,由于 k 为 1,在其之前并不不存在有参与终端,因此,密钥集合中不存在有被选取过的密钥;基于此,可直接从密钥集合中随机选取一个密钥,作为第一个参与终端的第二密钥(假设选取的为 D1)。
[0114] 接着,令k的数值加一,即对于第二参与终端(参与终端 B),其对应的密钥集合则包含有 A1、C1 和 D1;此时,由于第一个参与终端选取了 D1,因此,需要将 D1 从密钥集合中删除,由此,得到的更新后的密钥集合则为{A1,C1};基于此,即可在 A1 和 C1 中随机选取一个来作为第二个参与终端的第二密钥(假设选取的为 A1)。
[0115] 同理,在确定出第二个参与终端的第二密钥后,则再次将 k 自加 1,此时,第三个参与终端(即参与终端 C)对应的密钥集合则为{A1,B1,D1},同时,A1 和 D1 都已经被选取过,因此,第三个参与终端的第二密钥只能为 B1。
[0116] 最后,对于第四个参与终端(即参与终端 D),其对应的密钥集合为{A1,B1,C1};同理,A1 和 B1 都已经被选取过,因此,第四个参与终端的第二密钥则为 C1。
[0117] 由此,参与终端 A 的第一密钥为 A1,第二密钥为 D1;参与终端 B 的第一密钥为 B1,第二密钥为 A1;参与终端 C 的第一密钥为 C1,第二密钥为 B1;参与终端 D 的第一密钥为 D1,第二密钥为 C1;当然,当参与终端数量不同时,其对应第一密钥和第二密钥的生成过程,与前述举例相同,在此不再重复赘述。
[0118] 在基于前述步骤 S41至S45 及其子步骤,确定出各个参与终端的第一密钥和第二密钥后,即可利用第一密钥和第二密钥,来组成各个参与终端的信息加密密钥,如下述步骤 S46 所示。
[0119] S46,利用各个参与终端的第一密钥和第二密钥,组成各个参与终端的信息加密密钥。
[0120] 由此基于前述步骤 S41至S45,利用各个参与终端的终端信息,生成各个参与终端的信息加密密钥后,即可将各个信息加密密钥发送至对应的参与终端,以便各参与终端基于对应的信息加密密钥,来进行参数的加密处理;其中,各参与终端接收对应信息加密密钥的过程如下述步骤 S5 所示。
[0121] S5,各个参与终端接收密钥服务器发送的各自对应的信息加密密钥;在本实施例中,各个用户终端在接收到对应的信息加密密钥后,则可在进行本地联邦学习时,利用信息加密密钥,来加密训练后的模型的模型参数;具体的,各个参与终端在接收到边缘服务器在下发的第i次联邦学习时所使用的目标模型,并进行训练后,则可得到训练后的目标模型的训练结果,以及利用接收到的信息加密密钥,加密对应训练后的目标模型的模型参数,以得到第i次联邦学习时的加密模型参数(在下述步骤进行详细阐述);可选的,举例任一用户终端优先采用本地数据集训练其对应的指定模型,且i为大于或等于 1 的正整数;如此通过前述阐述,则可实现本地联邦学习所得模型参数的加密处理,从而保证其安全性;更进一步的,各个参与终端以及边缘服务器的联邦学习过程可以但不限于如下述步骤 S6~S12 所示。
[0122] S6,边缘服务器将初始目标模型作为第i次联邦学习时所使用的目标模型,并将目标模型发送至各个参与终端。
[0123] S7,各个参与终端利用对应的本地数据集,训练模型,以在训练结束后,得到训练后的模型的训练结果,以及利用接收到的信息加密密钥,加密训练后的模型的模型参数,得到第i次联邦学习时的加密模型参数,并将加密模型参数和训练结果发送至边缘服务器,其中,训练结果包括训练后的模型收敛或未收敛;在具体应用时,各个参与终端接收到的模型的训练过程相同,如,假设模型为人脸识别模型,那么,则是用各个参与终端的本地数据集(包含有不同样本用户的人脸样本图像)为输入,各个样本用户的人脸识别结果为输出,来训练人脸识别模型,从而在训练结束后,得到训练后的模型以及对应的训练结果;此时,训练后的模型的模型参数和训练结果,则需要上传至边缘服务器;更进一步的,各个参与终端的训练过程以及信息加密过程相同,下述以任一参与终端为例,来具体阐述前述训练以及加密过程。
[0124] 具体地,任一参与终端在进行第i次联邦学习时,其目标模型的模型参数会随着每次训练来进行更新,即任一参与终端会对本地的目标模型会进行本地更新;而后,训练结束后,再传输至边缘服务器,使边缘服务器基于所有参与终端的模型参数,来进行全局更新;具体的,该任一参与终端对应目标模型的本地更新过程可以但不限于如下述步骤 S71至S74 所示。
[0125] S71, 在利用本地数据集,每训练一次目标模型后,获取目标模型的输出精度;在本实施例中,目标模型的输出精度是指目标模型的样本学习准确率;同时,训练一次是指使用预设数量来训练目标模型;此时,在该次训练过程中,则是目标模型识别正确的样本个数,与该预设数量之间的比值,来作为样本学习准确率。
[0126] 同时,在训练一次后,则需要判断目标模型的输出精度是否大于或等于目标精度,以便后续根据判断结果,来进行模型的本地更新操作;其中,判断过程如下述步骤 S72所示。
[0127] S72,判断输出精度是否大于或等于目标精度;在具体应用时,目标精度可预先设置在该任一参与终端内,可根据实际使用而具体设定;同时,若输出精度大于或等于目标精度,说明目标模型已经收敛,即可停止训练,反之,则需要用本次的输出精度,来进行目标模型的更新,其中,更新过程如下述步骤 S73 和步骤 S74 所示。
[0128] S73,当输出精度小于目标精度,则基于输出精度、目标精度以及初始模型在此次训练后的模型参数,计算出初始模型的更新参数,在本实施例中,对于目标模型中的任一模型参数,可以但不限于通过以下公式进行更新,得到目标模型的更新参数:
[0129] ;
[0130] 其中, 表示该任一参与终端在第i次联邦学习过程中,其目标模型的更新参数(即本地进行第t+1次训练时所使用的模型参数), 表示该任一参与终端在第i次联邦学习过程中,其目标模型在第 t 次训练时的模型参数, 表示目标模型在第t次训练时的学习率, 表示该任一参与终端在第i次联邦学习过程中,其目标模型在第t次训练后的损失函数的目标梯度参数,其中,该目标梯度参数可通过最小化第 t 次训练后的损失函数来确定出(即使用梯度下降法来最小化第 t 次训练后的损失函数,从而得到目标梯度参数),这是梯度参数的常用计算方法,其原理不再赘述。
[0131] 其中, 的表达式如下:
[0132] ;
[0133] 其中, 表示最大学习率(为预设值), 为常数, 表示目标精度, 表示目标模型在第 t 次训练后的输出精度。
[0134] 可以理解的是,通过上述第五预设算法,可在每次训练后,都得到目标模型的更新参数;当目标模型的模型参数为多个时,每个模型参数都是采用前述第五预设算法来进行更新;而后,利用当前模型的更新参数,即可进行模型的本地更新;其中,目标模型的本地更新过程如下述步骤S74所示。
[0135] S74,利用更新参数,更新目标模型,得到更新后的目标模型,以便在下一次训练时,利用本地数据集训练更新后的目标模型,直至达到最大训练次数或更新后的目标模型的输出精度大于或等于目标精度时,得到训练后的目标模型;在本实施例中,相当于则是用第 t 次训练后的目标模型的模型参数,来计算出第 t+1 次训练时,目标模型的模型参数,而后,以此原理不断循环,直至其输出精度达到目标精度,或达到最大训练次数时为止。
[0136] 在满足前述条件后,则可完成该任一参与终端上目标模型的本地训练,得到训练后的目标模型;此时,则需要判断训练后的目标模型是否收敛,从而得出训练结果,以便之后基于训练结果,来进行用户终端集合的更新;其中,训练后的目标模型是否收敛则是判断其输出精度是否大于或等于目标精度,若大于或等于,则判定为收敛,反之,则未收敛;同时,本实施例还需要加密该训练后的目标模型的模型参数,以便在上传过程中,使其变为不可知状态,从而防止不法分子根据模型参数,来盗取该任一参与终端上的本地数据。
[0137] 具体地,训练后的目标模型的模型参数的加密过程,可以但不限于如下述步骤 S75~S79所示。
[0138] S75, 基于训练后的目标模型的模型参数,计算出训练后的目标模型的损失函数;在本实施例中,目标模型的损失函数是根据其模型输出、样本标签以及模型参数所计算得到的,其中,不同种类的目标模型的损失函数计算方法不同,在此不一一举例,且损失函数的计算为模型训练时的常用方法,其原理也不再赘述;而在得到训练后的目标模型的损失函数后,即可进行其梯度参数的计算,如下述步骤S76所示。
[0139] S76,根据损失函数,计算出训练后的目标模型的梯度参数;在本实施例中,利用梯度下降法来最小化损失函数,即可得到训练后的目标模型的梯度参数;而在得到梯度参数后,即可结合损失函数和梯度参数,来计算出训练后的目标模型的第一目标模型参数和第二目标模型参数,其中,计算过程如下述步骤S77所示。
[0140] S77, 利用损失函数和梯度参数,计算出第一目标模型参数以及第二目标模型参数,本实施例中,可以按照如下公式得到:
[0141] ;
[0142] ;
[0143] 其中, 表示第一目标模型参数, 表示损失函数, 表示梯度参数, 表示常数, 表示第二目标模型参数,表示常数, 表示范数符号;
[0144] 基于上述公式计算出任一参与终端需要上传至边缘服务器的模型参数后,即可利用该任一参与终端对应的信息加密密钥,对其进行加密处理,以便使任一参与终端与边缘服务器在进行通信时,将前述两目标模型参数变为虚假值,从而避免直接利用真实模型参数,来获取该任一参与终端的本地训练数据,进而达到防止数据泄露的目的。
[0145] 具体地,加密过程可以但不限于如下述步骤S78所示。
[0146] S78,依据第一密钥和第二密钥,加密第一目标模型参数以及第二目标模型参数,以在加密后,得到第一加密模型参数和第二加密模型参数;在具体应用时,加密前述第一目标模型参数以及第二目标模型参数可以根据以下公式得到:
[0147] ;
[0148] ;
[0149] 其中, 表示第一加密模型参数, 表示参与终端的第一密钥, 表示参与终端的第二密钥, 表示第二加密模型参数。
[0150] 可以理解的是,基于上述公式可知,两目标模型参数在原本数据的基础上,加上了该任一参与终端对应的第一密钥,以及减去了该任一参与终端对应的第二密钥;如此,即可得到第一加密模型参数和第二加密模型参数;而在完成训练后的目标模型的模型参数的加密后,即可组成其在第i次联邦学习时的加密模型参数;如下述步骤 S79 所示。
[0151] S79,利用第一加密模型参数和第二加密模型参数,组成第i次联邦学习时的加密模型参数。
[0152] 由此通过前述步骤 S71至S79 所公开的方法,各个参与终端则可计算出其在第i次联邦学习过程中,所得到的加密模型参数;而后,将各自的加密模型参数发送至边缘服务器,即可实现第i次联邦学习时所使用的目标模型的全局更新;其中,第i次联邦学习时所使用的目标模型的全局更新过程如下述步骤S8所示。
[0153] S8,边缘服务器接收各个参与终端发送的加密模型参数和训练结果,并基于接收到的各个加密模型参数,更新第i次联邦学习时所使用的模型,得到更新后的初始模型;在具体应用时,前述就已说明,任一参与终端在第i次联邦学习时的加密模型参数包括该任一参与终端对应训练后的模型的第一加密模型参数和第二加密模型参数;如此,即可根据各个加密模型参数中的两个加密模型参数,来完成第i次联邦学习时所使用的模型的更新,其中,更新第i次联邦学习时所使用的模型的全局模型参数,得到更新后的全局模型参数,可以但不限于按照如下公式得到:
[0154] ;
[0155] 其中, 表示更新后的全局模型参数, 表示第i次联邦学习时所使用的模型的全局模型参数, 表示参与终端集合中的第m个参与终端对应的第一加密模型参数,表示参与终端集合中的第m个参与终端对应的第二加密模型参数, 为参与终端的总数。
[0156] 基于前述第一预设算法的表达式可知,分子部分为各个参与终端所上传的加密模型参数中第一加密模型参数之和,分母是各个参与终端所上传的加密模型参数中第二加密模型参数之和,同时,任一参与终端的第一加密模型参数是在其原本数据的基础上,加上该任一参与终端的第一密钥,以及减去该任一参数终端的第二密钥所得到的;同时,各个参与终端的第二密钥,实质为其余参与终端的第一密钥;如此,前述第一预设算法的表达式中的分子部分和分母部分,求和出来的结果,实质就是各个参与终端的第一模型参数之和,以及第二模型参数之和。
[0157] 下述以一个示例来阐述上述用于更新第i次联邦学习时所使用的模型的全局模型参数,得到更新后的全局模型参数的公式:
[0158] 还是在前述参与终端集合的基础上进行举例,其中,参与终端 A 的第一密钥为 A1,第二密钥为 D1;参与终端 B 的第一密钥为 B1,第二密钥为 A1;参与终端 C 的第一密钥为 C1,第二密钥为 B1;参与终端 D 的第一密钥为 D1,第二密钥为 C1。
[0159] 假设用参与终端 A 在第i联邦学习过程中,对应的第一目标模型参数为 d11,第二目标模型参数为 d12,参与终端 B 的第一目标模型参数为 d21,第二目标模型参数为 d22;参与终端C 的第一目标模型参数为 d31,第二目标模型参数为 d32;参与终端 D 的第一目标模型参数为d41,第二目标模型参数为 d42;那么,前述公式(1)中的分子部分的计算过程为:(d11+A1‑D1)+(d21+B1‑A1)+(d31+C1‑B1)+(d41+D1‑C1)=d11+A1‑D1+d21+B1‑A1+d31+C1‑B1+d41+D1‑C1=d11+d21+d31+d41;同理,第一预设算法的表达式中分母部分的计算过程为:(d12+A1‑D1)+(d22+B1‑A1)+(d32+C1‑B1)+(d42+D1‑C1)=d12+A1‑D1+d22+B1‑A1+d32+C1‑B1+d42+D1‑C1=d12+d22+d32+d42。
[0160] 基于此,边缘服务器在进行第i次联邦学习时所使用的目标模型的全局模型参数时,无需对接收的各个加密模型参数进行解密,基础此,使得整个联邦学习过程中,各个参与终端所上传的模型参数都是不可见的;由此,进一步的提高了联邦学习中模型参数传输的安全性,从而降低了各个参与终端上的本地数据被泄露的风险。
[0161] 在基于第一愈合算法得到更新后的全局模型参数后,即可利用更新后的全局模型参数,更新第i次联邦学习时所使用的模型,得到更新后的模型;而在得到更新后的模型后,即可判断其是否满足学习迭代停止条件,以便根据判断结果,来确定是否可进行迭代联邦学习;中,判断过程如下述步骤S9所示。
[0162] S9,边缘服务器判断更新后的初始目标模型是否满足学习迭代停止条件;在本实施例中,学习迭代停止条件为i是否大于最大联邦学习次数,或更新后的模型是否收敛;其中,更新后的模型是否收敛,可基于各个参与终端上传的训练结果,来进行判断,若各个参与终端的训练结果均为其本地模型在训练后收敛,那么,基于各个本地模型的模型参数全局更新得到的更新后的模型,也判定为收敛;反之,则判定为不收敛。
[0163] 同时,当判定出更新后的模型不满足学习迭代停止条件后,则需要进行迭代联邦学习,具体如下述步骤S10所示。
[0164] S10,当更新后的模型不满足学习迭代停止条件,将初始模型替换更新后的初始模型,将i的数值加一,并利用各个参与终端发送的训练结果,更新各个参与终端的终端信息,并从当前的全部的用户终端中重新确定至少一个新的参与终端,直至更新后的初始模型满足学习迭代停止条件,得到目标模型。在本实施例中,当i为2时,相当于是用第一次联邦学习所得到的更新后的初始目标型,来替换前述初始目标模型,而后,进行第二次联邦学习时,边缘服务器则将第一次联邦学习所得到的更新后的模型,下发至参与第二次联邦学习的各个用户终端;同理,当i为其余值时,模型的下发过程与前述举例相同,不再重复赘述。
[0165] 同时,用户终端集合的更新过程为:根据各个参与终端的训练结果,筛选出训练结果为模型未收敛的参与终端,并利用筛选出的参与终端,组成用户终端集合;而后,即可根据新得到的用户终端集合,来确定出参与下一次联邦学习的参与终端;同时,参考上述实施例的描述,参与终端是参与上一次联邦学习的各个用户终端中,未达到指定要求的用户终端(即本地模型未收敛的参与终端);如此,当i大于等于2时,其更新后的用户终端集合中都是未达到指定要求的用户终端;所以,当i大于等于2时,实质也是全部选取其此次用户终端集合中的所有用户终端,作为参与终端;通过上述设计,当一个参与终端的本地目标模型的收敛时,则不会参与下次联邦学习时的参与终端的选择;如此,可降低其对剩余参与终端的干扰,从而提高全局模型训练的准确性。
[0166] 由此,通过前述步骤 S10来不断迭代联邦学习,即可在迭代结束时,得到目标模型;而后,再将目标模型发送至各个用户终端,以在各个用户终端的联邦学习过程中,完成各用户终端本地数据的隐私保护;其中,目标模型的下发过程,如下述步骤 S11 所示。
[0167] S11,边缘服务器将最优全局模型发送至用户终端集合中的各个用户终端,以在发送后,完成各个用户终端对应本地数据集在联邦学习过程中的隐私保护;在本实施例中,各个用户终端在接收到目标模型后,即可将目标模型应用至各自用户终端;如进行实名验证时的人脸识别;进行社交聊天时敏感图片的识别或个人敏感信息的识别等。
[0168] 由此通过前述步骤 S1~S12 所详细描述的基于联邦学习的数据隐私保护方法,本发明能够在用户终端完成本地联邦学习,向边缘服务器发送训练后的模型参数时,对模型参数进行加密传输;如此,使得各个用户终端在联邦学习过程中所上传的模型参数都是不可知的,基于此,避免了利用用户终端上传的模型参数,来获取到原始训练数据的情况发生,从而保障了各用户本地数据的隐私性,降低了数据泄露风险。
[0169] 如图2所示,本实施例还提供了一种基于联邦学习的数据保护系统,能够实现上述任意一项实施例的基于联邦学习的数据保护方法,其中,该系统可以但不限于包括:
[0170] 边缘服务器100;
[0171] 至少一个参与终端200,各个参与终端200与边缘服务器100通信连接,其中,参与终端200指示至少一个与边缘服务器100通信连接的用户终端中参与第i次联邦学习的用户终端,其中,i为大于或等于1的正整数,i的初始值为1;
[0172] 密钥服务器300,密钥服务器300与边缘服务器100通信连接,密钥服务器300分别与各个参与终端200通信连接;
[0173] 其中,边缘服务器100用于执行第一方面任意一项的基于联邦学习的数据保护方法,参与终端200用于执行第二方面任意一项的基于联邦学习的数据保护方法,密钥服务器300用于执行第三方面任意一项的基于联邦学习的数据保护方法。
[0174] 需要说明的是,基于联邦学习的数据保护系统的具体实施方式与上述基于联邦学习的数据保护方法的具体实施例基本相同,在此不再赘述。
[0175] 如图3所示,图3是本申请一个实施例提供的电子设备的结构示意图。本发明还提供了一种电子设备400,包括:
[0176] 处理器410,可以采用通用的中央处理器(Central Processing Unit,CPU)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
[0177] 存储器420,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行本申请实施例的基于联邦学习的数据保护方法;
[0178] 输入/输出接口430,用于实现信息输入及输出;
[0179] 通信接口440,用于实现本装置与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
[0180] 总线450,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息;
[0181] 其中处理器410、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
[0182] 本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,该存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述的基于联邦学习的数据保护方法。
[0183] 存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,实现了以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0184] 本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD‑ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
[0185] 以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。
[0186] 此外,本发明的一个实施例还提供了一种计算机程序产品,包括计算机程序或计算机指令,计算机程序或计算机指令存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取计算机程序或计算机指令,处理器执行计算机程序或计算机指令,使得计算机设备执行如前面任意实施例的基于联邦学习的数据保护方法。