基于联邦学习和相互学习的模型参数训练方法及装置制造方法及图纸

技术编号:26606072 阅读:25 留言:0更新日期:2020-12-04 21:30
本发明专利技术实施例提供了一种基于联邦学习和相互学习的模型参数训练方法及装置,所述方法包括:参数训练端将基于本地样本数据训练得到的子模型参数加密后发送给参数协调端,以使参数协调端对接收到的子模型参数进行汇总或安全聚合并发送给各参数训练端,参数训练端再基于本地样本数据以及解密后的汇总子模型参数集合,对子模型进行训练以更新子模型参数,或基于本地样本数据以及解密后的安全聚合子模型参数,对子模型进行训练进一步更新子模型的参数,得到子模型对应的总模型参数。本发明专利技术实施例,能够适用于跨机构的隐私安全模型参数训练,在数据安全的基础上,进一步挖掘各参数训练端的数据价值,有效提升所训练总模型的性能。

【技术实现步骤摘要】
基于联邦学习和相互学习的模型参数训练方法及装置
本专利技术涉及数据处理
,特别是涉及一种基于联邦学习和相互学习的模型参数训练方法及装置。
技术介绍
机器学习是人工智能的核心之一,基于机器学习的建模分析往往需要大量的数据支撑,而现实中数据往往分散在不同的设备或机构中(数据孤岛),如何安全合规地使用这些数据联合建立机器学习模型,始终是业界的一个难点。为解决设备间的数据孤岛问题,谷歌提出了针对手机终端的联邦学习方法。联邦学习可以有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,能从技术上打破数据孤岛。联邦学习以轮为单位,每轮包含设备选择、参数分发、本地更新和全局更新4个步骤。现有基于联邦学习的模型参数训练方法为:首先,服务器选择该轮参与训练的设备(如手机),被选中的设备参与该轮训练,其次,服务器将当前的模型参数分发给选中的设备,然后,本地设备(即该轮被选中的设备)下载到服务器发送的新的模型参数后,在此基础上,使用本地数据训练更新模型,最后,选中的设备将本地更新了的模型参数发送给服务器,服务器对接收到的各更新了的模型参数进行安全聚合,得到全局模型参数,并判断模型参数的训练是否满足收敛条件,如果满足,则将该轮得到的全局模型参数作为最终的模型参数。然而,现有基于联邦学习的模型参数训练方法主要是针对手机终端设计的,在模型参数训练过程中,需要选择参与的设备,也就是说每轮参与的设备可以不同,而企业或机构之间进行模型参数训练不涉及参与方选择的问题,该企业或机构例如可以是金融机构(如银行等)。另外,跨机构的联邦学习的参与方数量(一般不超过50)远远小于跨设备的联邦学习的参与方数量(往往超过10000),使得现有针对手机终端的基于联邦学习的模型参数训练方法,无法满足跨机构模型参数训练应达到的性能要求,进而无法适用于跨机构的模型参数训练。
技术实现思路
本专利技术实施例的目的在于提供一种基于联邦学习和相互学习的模型参数训练方法及装置,以解决现有基于联邦学习的模型参数训练方法无法满足跨机构模型参数训练应达到的性能要求,进而无法适用于跨机构的模型参数训练的问题。具体技术方案如下:第一方面,本专利技术实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,应用于参数训练端,所述方法包括:基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;或,将所述解密后的子模型参数确定为所述子模型对应的总模型参数。可选地,所述对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤包括:对所述子模型的参数进行加法同态加密,并将加密后的子模型参数发送给参数协调端。可选地,所述基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数的步骤,包括:将由本地样本数据构成的本地数据集划分为多个小批量数据集;基于预设子模型的初始参数,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;在本地当前训练次数满足第一预设条件时,将当前训练次数对应的子模型更新参数,确定为所述子模型的参数;其中,使用如下表达式对子模型的参数进行更新:Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第一损失函数对Θi所求的偏导,表示第i个参数训练端的第j个小批量数据集。可选地,所述基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数的步骤,包括:基于所述解密后的子模型参数集合,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;使用如下表达式对子模型的参数进行更新:其中,Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第二损失函数对Θi所求的偏导,表示子模型参数集合,Θm表示第m个参数训练端子模型的参数,K表示参数训练端的个数,表示第i个参数训练端的第t个小批量数据集,表示计算损失函数所用到的数据集,为第一损失函数,表示数据集所包含的样本数,DKL表示KL离散距离,对于m=1,2,...,,有表示样本数据x通过参数为Θm的模型进行预测所得结果为l的概率,y表示标签数据,C表示标签数据y的取值个数,C为正整数。可选地,在基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数之前,所述方法还包括:确定子模型以及所述子模型对应的总模型所对应的具体算法;在得到子模型对应的总模型参数之后,所述方法还包括:接收样本数据;将所述样本数据输入所述总模型中进行预测,得到所述总模型输出的预测结果。第二方面,本专利技术实施例提供了一种基于联邦学习和相互学习的模型参数训练方法,应用于参数协调端,所述方法包括:接收各参数训练端发送的加密后的子模型参数;判断当前迭代次数是否满足第二预设条件,所述第二预设条件用于表征相互学习训练过程是否完成;在判断出当前迭代次数不满足第二预设条件时,对所述加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使所述参数训练端对所述汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子模型的参数;在判断出当前迭代次数满足第二预设条件时,判断当前迭代次数是否满足第三预设条件,所述第三预设条件用于表征联邦学习训练过程是否完成;在判断出当前迭代次数不满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并将安全聚合后的子模型参数发送给各参数训练端,以使所述参数训练端对所述安全聚合后的子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数,对子模型进行训练以更新子模型的参数;或,在判断出当前迭代次数满足第三预设条件时,对所述加密后的子模型参数进行安全聚合,并本文档来自技高网
...

【技术保护点】
1.一种基于联邦学习和相互学习的模型参数训练方法,其特征在于,应用于参数训练端,所述方法包括:/n基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;/n对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;/n在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;/n基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;/n在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;/n基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;/n或,将所述解密后的子模型参数确定为所述子模型对应的总模型参数。/n...

【技术特征摘要】
1.一种基于联邦学习和相互学习的模型参数训练方法,其特征在于,应用于参数训练端,所述方法包括:
基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数;
对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端,以使所述参数协调端对接收到的子模型参数进行汇总,并返回汇总后的子模型参数集合,或对接收到的子模型参数进行安全聚合,并返回安全聚合后的子模型参数;
在接收到所述参数协调端返回的汇总后的子模型参数集合的情况下,对所述汇总后的子模型参数集合中的各子模型参数进行解密,得到解密后的子模型参数集合;
基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
在接收到所述参数协调端返回的安全聚合后的子模型参数的情况下,对所述安全聚合后的子模型参数进行解密,得到解密后的子模型参数;
基于本地样本数据以及所述解密后的子模型参数,对所述子模型进行训练,得到所述子模型的更新参数,将所述子模型的更新参数更新为所述子模型的参数,以及执行对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤;
或,将所述解密后的子模型参数确定为所述子模型对应的总模型参数。


2.根据权利要求1所述的方法,其特征在于,所述对所述子模型的参数进行加密,并将加密后的子模型参数发送给参数协调端的步骤包括:
对所述子模型的参数进行加法同态加密,并将加密后的子模型参数发送给参数协调端。


3.根据权利要求1所述的方法,其特征在于,所述基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数的步骤,包括:
将由本地样本数据构成的本地数据集划分为多个小批量数据集;
基于预设子模型的初始参数,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;
在本地当前训练次数满足第一预设条件时,将当前训练次数对应的子模型更新参数,确定为所述子模型的参数;
其中,使用如下表达式对子模型的参数进行更新:



Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第一损失函数对Θi所求的偏导,表示第i个参数训练端的第j个小批量数据集。


4.根据权利要求1所述的方法,其特征在于,所述基于本地样本数据以及所述解密后的子模型参数集合,对所述子模型进行训练,得到所述子模型的更新参数的步骤,包括:
基于所述解密后的子模型参数集合,使用各小批量数据集对所述子模型进行训练,得到子模型更新参数;
使用如下表达式对子模型的参数进行更新:






其中,Θi表示第i个参数训练端子模型的参数,η表示学习率,表示第二损失函数对Θi所求的偏导,表示子模型参数集合,Θm表示第m个参数训练端子模型的参数,K表示参数训练端的个数,表示第i个参数训练端的第t个小批量数据集,表示计算损失函数所用到的数据集,为第一损失函数,表示数据集所包含的样本数,DKL表示KL离散距离,对于m=1,2,...,K,有表示样本数据x通过参数为Θm的模型进行预测所得结果为l的概率,y表示标签数据,C表示标签数据y的取值个数,C为正整数。


5.根据权利要求1所述的方法,其特征在于,在基于本地样本数据以及预设子模型的初始参数,对子模型进行训练,得到所述子模型的参数之前,所述方法还包括:
确定子模型以及所述子模型对应的总模型所对应的具体算法;
在得到子模型对应的总模型参数之后,所述方法还包括:
接收样本数据;
将所述样本数据输入所述总模型中进行预测,得到所述总模型输出的预测结果。


6.一种基于联邦学习和相互学习的模型参数训练方法,其特征在于,应用于参数协调端,所述方法包括:
接收各参数训练端发送的加密后的子模型参数;
判断当前迭代次数是否满足第二预设条件,所述第二预设条件用于表征相互学习训练过程是否完成;
在判断出当前迭代次数不满足第二预设条件时,对所述加密后的子模型参数进行汇总,并将汇总后的子模型参数集合发送给各参数训练端,以使所述参数训练端对所述汇总后的子模型参数集合中的各子模型参数进行解密,并基于本地样本数据以及解密后的子模型参数集合,对子模型进行训练以更新子...

【专利技术属性】
技术研发人员:刘君媛
申请(专利权)人:中诚信征信有限公司
类型:发明
国别省市:北京;11

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

1