一种基于联邦学习的模型训练方法技术

技术编号:23672374 阅读:29 留言:0更新日期:2020-04-04 17:50
公开了一种基于联邦学习的模型训练方法。为了保护服务端的隐私(模型参数)不泄露,服务端采用同态加密算法对模型参数集合进行加密后下发给节点,节点基于同态加密原理,使用加密后的模型参数与本地训练样本进行加密状态下的模型计算,得到加密梯度。随后,节点基于同态加密原理,计算加密梯度与加密随机数的差,这个差实质上是加密的某个无意义的值。接着,节点将加密后的值上传给服务端。此外,服务端可以利用SA协议,在不获知每个节点上的随机数的前提下,获知各节点上的随机数之和。如此,服务端就可以根据每个节点上传的加密后的值与各随机数之和来还原出每个节点产生的梯度之和,从而可以更新模型参数。

A model training method based on Federated learning

【技术实现步骤摘要】
一种基于联邦学习的模型训练方法
本说明书实施例涉及信息
,尤其涉及一种基于联邦学习的模型训练方法。
技术介绍
联邦学习(Federatedmachinelearning/FederatedLearning),是指一种机器学习框架,能有效帮助多个节点(可以代表个人或机构)在满足数据隐私保护的要求下,联合训练模型。在联邦学习框架下,服务端下发模型参数给多个节点,每个节点将本地的训练样本输入模型进行一次训练,本次训练结束后,每个节点会基于本次训练结果计算得到的梯度。随后,服务端基于安全聚合(SA,SecureAggregation)协议,可以计算得到各节点的梯度之和。值得强调的是,服务端收到SA协议的限制,并不能获得单个节点上传的梯度。如此,既可以使得服务端根据各节点上传的梯度之和调整模型参数,又可以实现节点的数据隐私保护。然而,在有些场景下,模型参数也不适合暴露给节点。
技术实现思路
为了解决联邦学习框架下存在的模型参数难以保护的问题,本说明书实施例提供一种基于联邦学习的模型训练方法,技术方案如下:根据本说明书实施例的第1方面,提供一种基于联邦学习的模型训练方法,应用于包括服务端与N个节点的联邦学习系统,N>1,所述方法包括:在模型训练的第i次迭代中,执行:所述服务端基于同态加密算法E对模型参数集合θ进行加密,得到E(θ),并将E(θ)下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;第j个目标类型节点根据E(θ)与本地训练样本,进行加密状态下的模型计算,得到加密梯度E(wij);其中,j=(1,2,…,Qi);第j个目标类型节点确定随机数rj,并计算E(wij)-E(rij),得到E(sij),以及,向所述服务端上传E(sij);所述服务端根据E(sij)计算并基于安全聚合SA协议,计算所述服务端计算得到并基于更新θ。根据本说明书实施例的第2方面,提供一种联邦学习系统,包括服务端与N个节点,N>1;所述服务端,在模型训练的第i次迭代中,基于同态加密算法E对模型参数集合θ进行加密,得到E(θ),并将E(θ)下发给Mi个节点,其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;第j个目标类型节点,根据E(θ)与本地训练样本,进行加密状态下的模型计算,得到加密梯度E(wij),其中,j=(1,2,…,Qi);确定随机数rij,并计算E(wij)-E(rij),得到E(sij),以及,向所述服务端上传E(sij);所述服务端,还根据E(sij)计算并基于安全聚合SA协议,计算计算得到并基于更新θ。本说明书实施例所提供的技术方案,服务端采用同态加密算法对模型参数集合进行加密后下发给节点,节点基于同态加密原理,使用加密后的模型参数与本地训练样本进行加密状态下的模型计算,得到加密梯度。随后,节点基于同态加密原理,计算加密梯度与加密随机数的差,这个差实质上是加密的某个无意义的值。接着,节点将加密后的值上传给服务端。此外,服务端可以利用SA协议,在不获知每个节点上的随机数的前提下,获知各节点上的随机数之和。如此,服务端就可以根据每个节点上传的加密后的值与各随机数之和来还原出每个节点产生的梯度之和,从而可以更新模型参数,以便进入下一次迭代或者完成训练。通过本说明书实施例,可以在基于联邦学习框架实现服务端与各节点联合训练模型的前提下,实现服务端向节点隐藏模型参数,从而避免节点根据模型参数破解模型。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本说明书实施例提供的一种基于联邦学习的模型训练方法的流程示意图;图2是本说明书实施例提供的一种基于联邦学习的模型训练方法的原理示意图;图3是本说明书实施例提供的一种联邦学习系统中的服务端的结构示意图;图4是本说明书实施例提供的一种联邦学习系统中的节点的结构示意图;图5是用于配置本说明书实施例方法的一种设备的结构示意图。具体实施方式在联邦学习框架下,通常由服务端负责根据节点上传的梯度更新模型参数,并将模型参数下发给节点,由节点基于模型参数与本地训练样本计算梯度。为了防止服务端根据节点上传的梯度推断出节点的本地训练样本,一般基于SA协议来实现节点将梯度上传给服务端,使得服务端仅会获取到各节点上传的梯度之和,却无法获取到单个节点上传的梯度。可见,在现有的联邦学习架构下,节点可以向服务端隐藏本地训练样本,而服务端却不会向节点隐藏模型参数。然而,在有些场景下,服务端也并不想将隐私(即模型参数)暴露给节点。例如,假设需要基于联邦学习架构训练诈骗交易识别模型,服务端一方面需要各节点提供诈骗交易作为样本训练该模型,另一方面也不希望节点获知模型参数,否则,模型参数容易暴露给恶意分子,导致基于该模型构筑的诈骗防线容易被攻破。为了解决上述问题,在本说明书实施例中,基于同态加密算法,对模型参数进行加密后下发到节点,节点基于加密后的模型参数与本地训练样本计算梯度,基于同态加密原理,计算出的实际上是加密后的梯度。此处需要说明,一方面,SA协议并不支持对加密后的数据进行上传,另一方面,如果节点直接将加密后的梯度上传,则服务端可以直接解密获得节点的梯度明文,反而造成节点的隐私泄露。因此,在本说明书实施例中,并不会让节点直接将加密后的梯度上传给服务端,而是做如下处理:1、节点确定一个随机数,基于同态加密算法(记为E)对随机数进行加密,然后计算加密后的梯度与加密后的随机数的差值,记为E(s)。将加密后的梯度记为E(w),w为梯度,将加密后的随机数记为E(r),r为随机数,可以理解,基于同态加密原理,如果E(w)-E(r)=E(s),则w-r=s。2、节点将E(s)上传给服务端。如此,服务端即便对E(s)解密得到s,由于s是无意义的值,服务端也无法获知节点的隐私。3、服务端基于SA协议,获取各节点的随机数之和。由于SA协议可以用于将至少两个节点的明文数据上传给服务端,并且确保服务端只能获知各节点上传的明文数据之和,而不能获知单个节点的明文数据。4、服务端获取每个节点上传的E(s)之后,可以确定各节点上的s之和,将s之和与随机数之和相加,就能得到各节点上的梯度之和,以便对模型参数进行更新。通过本说明书书实施例,服务端可以在基于联邦学习框架实现服务端与各节点联合训练模型的前提下,实现服务端向节点隐藏模型参数,从而避免节点根据模型参数破解模型。为了使本本文档来自技高网...

【技术保护点】
1.一种基于联邦学习的模型训练方法,应用于包括服务端与N个节点的联邦学习系统,N>1,所述方法包括:/n在模型训练的第i次迭代中,执行:/n所述服务端基于同态加密算法E对模型参数集合θ进行加密,得到E(θ),并将E(θ)下发给M

【技术特征摘要】
1.一种基于联邦学习的模型训练方法,应用于包括服务端与N个节点的联邦学习系统,N>1,所述方法包括:
在模型训练的第i次迭代中,执行:
所述服务端基于同态加密算法E对模型参数集合θ进行加密,得到E(θ),并将E(θ)下发给Mi个节点;其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;
第j个目标类型节点根据E(θ)与本地训练样本,进行加密状态下的模型计算,得到加密梯度E(wij);其中,j=(1,2,…,Qi);
第j个目标类型节点确定随机数rj,并计算E(wij)-E(rij),得到E(sij),以及,向所述服务端上传E(sij);
所述服务端根据E(sij)计算并基于安全聚合SA协议,计算
所述服务端计算得到并基于更新θ。


2.如权利要求1所述的方法,针对所述Mi个节点中的任一节点,若该节点在接收到E(θ)之后,继续处于在线状态直至第i次迭代结束,则该节点属于目标类型节点。


3.如权利要求2所述的方法,所述服务端根据E(sij)计算具体包括:
所述服务端若确定Qi≥Ti,则根据E(sij)计算其中,Ti为:第i次迭代中,SA协议指定的Mi个节点中处于在线状态的节点的数量的下限值;
所述方法还包括:
所述服务端若确定Qi<Ti,则停止本次迭代,并进入下一次迭代。


4.如权利要求1所述的方法,所述服务端根据E(sij)计算具体包括:
所述服务端对E(sij)进行解密,得到sij,进而得到
或者,所述服务端计算进而解密得到


5.如权利要求1所述的方法,用于训练线性回归模型。


6.如权利要求1~5任一项所述的方法,所述模型对应的输入数据包括:图像或文本或语音。


7.如权利要求6所述的方法,所述文本包含实体对象信息。


8.一种联邦学习系统,包括服务端与N个节点,N>1;
所述服务端,在模型训练的第i次迭代中,基于同态加密算法E对模型参数集合θ进行加密,得到E(θ),并将E(θ)下发给Mi个节点,其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点;
第j个目标类型节点,根据E(θ)与本地训练样本,进行加密状态下的模型计算,得到加密梯度E(wij),其中,j=(1,2,…,Qi);确定随机数rij,并计算E(wij)-E(rij),得到E(sij),以及,向所述服务端上传E(sij);
所述服务端,还根据E(sij)计算并基于安全聚合SA协议,计算计算得到并基于更新θ。


9.一种基于联邦学习的模型训练方法,应用于联邦学习系统中的服务端,所述联邦学习系统还包括N个节点,N>1,所述方法包括:
在模型训练的第i次迭代中,执行:
基于同态加密算法E对模型参数集合θ进行加密,得到E(θ),并将E(θ)下发给Mi个节点,其中,Mi≤N,所述Mi个节点中存在Qi个目标类型节点,以使第j个目标类型节点根据E(θ)与本地训练样...

【专利技术属性】
技术研发人员:王力陈超超周俊
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1