logo好方法网

在不规则用户中保留隐私的联邦学习的方法


技术摘要:
本发明提供一种在不规则用户中保留隐私的联邦学习的方法,包括步骤:1)系统初始化;2)加密的汇总结果初始化;3)更新加密的用户的可靠性;4)更新加密的汇总结果:服务器利用更新得到的加密的用户的可靠性作为汇总结果的权重来更新各梯度的加密的汇总结果使得可靠性越低  全部
背景技术:
本发明所要解决的技术问题是,提供一种考虑到不规则用户的可靠性并能保留数 据隐私的联邦深度学习方法。 本发明为解决上述技术问题所采用的技术方案是,在不规则用户中保留隐私的联 邦学习的方法,包括以下步骤: 1)系统初始化:被指定的两台服务器S0、S1,服务器S1保存有第三方为其生成一对 非对称密钥(pk1,sk1),pk1为公钥,sk1为私钥;服务器S0用于接收用户发送的使用公钥pk1加 5 CN 111581648 A 说 明 书 2/5 页 密的梯度 其中, 为用户i第m次迭代的梯度,i为用户序号i=1,…,N,N为系 统内用户总数; 2)加密的汇总结果初始化:服务器S0初始化各次迭代的汇总结果 并使用公钥 pk1加密 后发送至各用户;其中, 表示使用公钥pk1对A加密, 为第 m次迭代中使用的汇总结果,m∈[1 ,M],M表示完成一代训练epoch时所进行的迭代 Iteration的总次数,m表示迭代次数序号; 3)更新加密的用户的可靠性:服务器S0利用给定加密的梯度 和加密的 汇总结果 和S1保存的私钥sk1一起进行各用户i的可靠性更新,由服务器S0生成 加密的用户的可靠性更新值 其中,Ti为用户i的可靠性,Ti与用户i本地梯度与 汇总结果之间的距离呈负相关; 4)更新加密的汇总结果:服务器S 0利用更新得到的加密的用户的可靠性 作为汇总结果的权重来更新各梯度m的加密的汇总结果 使得可靠性 越低的用户对汇总结果的影响越小,可靠性越高的用户对汇总结果的影响越大,并将更新 各梯度m的加密的汇总结果 发送至各用户。 本发明的有益效果是:提出的不规则用户中保留隐私的联邦学习方法,保护所有 用户相关信息的隐私,包括每个用户的梯度、可靠性以及汇总结果,在将本地梯度上传到云 中之前,每个用户都使用附加的同态加密对其进行加密,并且减少用户在训练过程中因使 用低质量数据的影响,同时确保用户相关信息的真实性。本发明方法的大部分计算都是由 服务器完成的,对于计算能力有限的终端用户来说非常友好,且对用户在整个训练过程中 由于各种不可预知的原因而中途退出也具有鲁棒性。 附图说明 图1为联邦学习系统的示意图。 如图1所示,在系统模型中包括服务器S0、S1和N个用户共同实现保护隐私的联合训 练。所有参与的用户首先同意一个统一的深度神经网络DNN。然后,在每一代训练epoch的每 一次训练iteration中,每个用户使用其本地数据集训练DNN,并计算训练样本对应的梯度。 为了加快收敛速度和提高训练的准确性,每个用户都对其本地梯度加密并将其提交给云。 接下来,两个没有勾结的云服务器S0和S1交互执行本发明参数传递方法以获取密文(梯度的 汇总结果)并将汇总结果返回给所有用户。最后,每个用户对密文进行解密,并更新本地DNN 的参数。为了获得满意的网络结构,两个服务器和所有用户反复执行上述操作,直到DNN满 足预定义的优化条件。 本发明方法,包括以下步骤: 步骤1系统初始化:一个可信的第三方TA利用Paillier密码系统为服务器生成一 对非对称密钥。同样地,TA也为每个用户生成一对共享密钥,用户完成一次训练后得到训练 模型的梯度,再将梯度加密,并将加密后的梯度发送给服务器S0: 6 CN 111581648 A 说 明 书 3/5 页 步骤1.1TA利用Paillier密码系统为服务器S1生成一对非对称密钥(pk1,sk1),其 中pk1为公钥,sk1为私钥,由服务器S1保存;本文中 表示使用公钥pk1对A加密, 表示使用私钥sk1对A解密。 步骤1.2TA利用Paillier密码系统为每个用户,生成一对共享密钥(pku,sku); 步骤1.3用户i将他们的梯度 利用公钥pk1加密为 并将 发送至云服务器;,i为用户序号i=1,…,N,M表示完成一代训练epoch时所进行 的迭代Iteration的总次数,m表示迭代次数序号; 步骤2加密的汇总结果初始化:在迭代执行加密的算法之前,服务器S0需要初始化 第一次迭代中使用的汇总结果 并发送至用户,加密的汇总结果被初始化为所有用户梯 度之和的平均值,具体包括以下步骤: 步骤2.1服务器S0根据同态加法准则计算 步骤2.2每一个汇总结果 被初始化为 步骤3更新加密用户的可靠性:给定加密的梯度 和加密的汇总结果 服务器S0和S1一起对每个用户i进行安全可靠性更新,在S0端生成加密的每个 用户的可靠性。更新加密的用户的可靠性,具体包括以下步骤: 步骤3.1服务器S0计算 m∈[1 ,M],其 中 为用户i的第m个梯度与的与第m个汇总结果之间的距离, μi反应了用 户i的差异度, 步骤3.2服务器S0和S1共同执行本发明新提出的SecMul协议使得S0获得加密的用 户差异度 其中S0拥有 的值,S1拥有私钥sk1。SecMul协议具体包括以 下步骤: 步骤 3 .2 .1 服务器 S 0 随 机选取 2个整数 ,记为 h 1 ,h 2 ,并给出中间值 最后将x′1和x′2发送给服 务器S1; 步骤3.2.2服务器S1收到中间值x′1和x′2后,首先对接收到的中间值利用私钥sk1 进行解密 其中j=1,2,接下来令d=d1·d2,再使用公钥pk1加密d得到中间 值 最后发送d′的值给S0; 步骤3 .2 .3服务器S 0收到中间值d ′,计算中间值 得到 步骤3.3服务器S0计算 步骤3.4服务器S0与S1共同执行SecDiv协议,使得S0得到 其中Ti为用户 7 CN 111581648 A 说 明 书 4/5 页 i的可靠性,即用户的可靠性与各用户本地梯度与汇总结果之间的距离呈负相关: C为服务器S1预设的一个可靠性系数,SecDiv协议具体包括以下步骤: 步骤 3 .4 .1 服务器 S 0 随 机选取 2个整数 ,记为 h 3 ,h 4 ,并计算中间值 其中最后将x′3和x′4的值发送 给服务器S1; 步骤3.4.2服务器S1收到中间值x′3和x′4后,首先利用私钥sk1对中间值进行解密 其中j=3,4,接着再随机选择的整数r与解密得到的d3,d4一起构造混乱电 路GC,最后将GC、随机选择的整数r和 的值发送到S0; 步骤3.4.3S0和S1共同执行不经意传输协议OT协议使得S1获得h3,h4的混淆值,为下 一步运行GC做准备; 步骤3.4.4S0运行GC来得到 根据所得结果计算得到加密后的用户i的可靠性 步骤4更新加密的汇总结果:在获得每个用户i的 之后,S0端在加密的域 中相应地更新每个梯度m的加密的汇总结果 其中每个梯度m加密的汇总结果 是在S0端生成的。更新加密的汇总结果,具体包括以下步骤: 步骤4 .1服务器S 0和S 1共同执行SecMul协议使得S 0获得加密的加权梯度 其中S 0拥有 和 的值,S 1拥有私钥sk 1。 SecMul协议具体包括以下步骤: 步 骤 4 .1 .1 服 务 器 S 0 随 机 选取 2个 整数 ,记为 h 5 ,h 6 并 定义中 间 值 最后将x′5和x′6的值发送给 服务器S1; 步骤4.1.2服务器S1接收到中间值x′5和x′6后,首先使用私钥解密收到的中间值得 到 其中j=5,6,接下来令d=d5·d6以及 最后发送d′的值 给S0; 步 骤 4 . 1 . 3 服 务 器 S 0 计 算 得 到 步骤4.2S0计算 和 步骤4.3服务器S0与S1共同执行SecDiv协议,使得S0得到更新后的加密的汇总结果 其中 使用各用户的可靠性作为汇总结果的权重,使得可靠性 低的用户对汇总结果的影响小,SecDiv协议具体包括以下步骤: 8 CN 111581648 A 说 明 书 5/5 页 步骤4.3.1由步骤4.2知:服务器S0拥有 和 的 值 ,服 务 器 S 1 拥 有 s k 1 ,服 务 器 S 0 随 机 选 取 2 个 整 数 ,记 为 h 7 , h 8 并 计 算 最 后 将 x′7和x′8的值发送给服务器S1; 步骤4.3.2S1首先计算 其中j=7,8,接着根据d7,d8,r构造混乱电 路GC,其中r是S1随机选择的整数,最后将GC和混淆的d7、d8、r和 的值发送到S0; 步骤4.3.3S0和S1共同执行OT协议使得S1获得h7,h8的混淆值; 步骤4.3.4S0运行GC来得到 根据所得结果作为更新后的加密的汇总 结果 并发送至各用户。 步骤5用户利用接收到的服务器S0发送的加密的汇总结果 对训练模型 的参数进行调整后再次进行训练,再将模型梯度加密 发送至服务器S0,重复步 骤3至步骤5直至用户完成训练。 整个过程中两个服务器分工不同,只有服务器S1有私钥,只有服务器S0有用户的可 靠性以及更新后的加密的汇总结果,以防止服务器恶意解密用户数据。 9 CN 111581648 A 说 明 书 附 图 1/1 页 图1 10
分享到:
收藏