基于联邦学习的模型参数获取方法、系统及可读存储介质与流程

文档序号:16538353发布日期:2019-01-08 20:06阅读:197来源:国知局
基于联邦学习的模型参数获取方法、系统及可读存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种基于联邦学习的模型参数获取方法、系统及可读存储介质。



背景技术:

随着机器学习的快速发展,机器学习可应用于各个领域,如数据挖掘、计算机视觉、自然语言处理、生物特征识别、医学诊断、检测信用卡欺诈、证券市场分析和dna(deoxyribonucleicacid,脱氧核糖核酸)序列测序等。机器学习通常是系统提供样本数据,学习部分利用样本数据修改系统的知识库,以增进系统执行部分完成任务的效能,执行部分根据知识库完成任务,同时把获得的信息反馈给学习部分。

目前,由于各方的样本数据具有密切联系,如果机器学习仅使用一方的样本数据,则学习得到的模型不准确,因此,如何联合各方的样本数据,得到模型中的参数,提高模型的准确度,是亟待解决的问题。



技术实现要素:

本发明的主要目的在于提供一种基于联邦学习的模型参数获取方法、系统及可读存储介质,旨在解决现有的如何联合各方数据,提高所得模型的准确度的技术问题。

为实现上述目的,本发明提供一种基于联邦学习的模型参数获取方法,所述基于联邦学习的模型参数获取方法包括步骤:

当第三终端接收到第二终端发送的加密后的损失值后,所述第三终端解密所述损失值,得到解密后的所述损失值,其中,所述损失值是通过第一终端对应的第一数据和所述第二终端对应的第二数据计算得到的;

根据解密后的所述损失值检测待训练模型是否处于收敛状态;

若检测到所述待训练模型处于收敛状态,则获取与所述损失值对应的梯度值;

确定与所述梯度值对应的样本参数,将与所述梯度值对应的样本参数确定为所述待训练模型的模型参数。

优选地,所述当第三终端接收到第二终端发送的加密后的损失值后,所述第三终端解密所述损失值,得到解密后的所述损失值的步骤之前,还包括:

当所述第二终端接收到所述第一终端发送的加密后的第一数据后,所述第二终端计算与所述第一数据对应的第二数据,以及获取所述第二数据对应的样本标签,其中,所述第一数据和所述第二数据对应的样本标签相同;

根据所述样本标签、所述第一数据和所述第二数据计算损失值;

采用同态加密算法加密所述损失值,得到加密后的所述损失值,并将加密后的所述损失值发送给所述第三终端。

优选地,所述根据解密后的所述损失值检测待训练模型是否处于收敛状态的步骤之后,还包括:

若检测到所述待训练模型未处于所述收敛状态,则获取所述第二终端和所述第一终端发送的梯度值,并更新所述梯度值,得到更新后的所述梯度值;

将更新后的所述梯度值发送给所述第一终端和所述第二终端,以供所述第一终端和所述第二终端根据更新后的所述梯度值对应更新样本参数;

其中,当所述第一终端更新所述样本参数后,所述第一终端根据更新后的所述样本参数和交集样本数据中特征变量对应的变量值计算得到第一数据,并对所述第一数据进行加密,将加密后的第一数据发送给所述第二终端。

优选地,所述第二终端根据更新后的所述梯度值对应更新样本参数的步骤包括:

当第二终端接收到更新后的所述梯度值后,所述第二终端计算更新后的所述梯度值与预设系数之间的乘积;

将更新前的样本参数减去所述乘积,得到更新后的所述样本参数。

优选地,所述当第三终端接收到第二终端发送的加密后的损失值后,所述第三终端解密所述损失值,得到解密后的所述损失值的步骤之前,还包括:

所述第一终端采用预存的第一公钥加密第一样本标识,并将加密后的第一样本标识发送给所述第二终端,并检测是否接收到所述第二终端发送的,采用预存的第二公钥加密后的第二样本标识;

当接收到加密后的第二样本标识后,采用所述第一公钥对所述第二样本标识进行二次加密,得到第二加密值,并检测是否接收到所述第二终端发送的第一加密值;

当接收到所述加密值后,判断所述第一加密值与所述第二加密值是否相等;

若所述第一加密值与所述第二加密值相等,则确定所述第一样本标识与所述第二样本标识相同,并将所述第一样本标识对应的样本数据确定为与所述第二终端的交集样本数据。

优选地,所述确定与所述梯度值对应的样本参数,将与所述梯度值对应的样本参数确定为所述待训练模型的模型参数的步骤之后,还包括:

当所述第二终端确定模型参数,且接收到执行请求后,所述第二终端将所述执行请求发送给所述第一终端,以供所述第一终端在接收到所述执行请求后,根据对应的所述模型参数和所述执行请求对应特征变量的变量值返回第一预测分数给所述第二终端;

当接收到所述第一预测分数后,根据对应的所述模型参数和所述执行请求对应特征变量的变量值计算第二预测分数;

将所述第一预测分数和所述第二预测分数相加,得到预测分数总和,并根据所述预测分数总和输入所述待训练模型中,得到模型分数,并根据所述模型分数确定是否执行所述执行请求。

优选地,所述根据解密后的所述损失值检测待训练模型是否处于收敛状态的步骤包括:

获取所述第二终端前一次发送的第一损失值,并将解密后的所述损失值记为第二损失值;

计算所述第一损失值和所述第二损失值之间的差值,并判断所述差值是否小于或者等于预设阈值;

当确定所述差值小于或者等于所述预设阈值时,确定所述待训练模型处于收敛状态;

当确定所述差值大于所述预设阈值时,确定所述待训练模型未处于收敛状态。

此外,为实现上述目的,本发明还提供一种模型参数获取系统,所述模型参数获取系统包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的基于联邦学习的模型参数获取程序,所述基于联邦学习的模型参数获取程序被所述处理器执行时实现如上所述的基于联邦学习的模型参数获取方法的步骤。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于联邦学习的模型参数获取程序,所述基于联邦学习的模型参数获取程序被处理器执行时实现如上所述的基于联邦学习的模型参数获取方法的步骤。

本发明通过当第三终端接收到第二终端发送的加密后的损失值后,第三终端解密损失值,得到解密后的损失值,其中,损失值是通过第一终端和第二终端中的样本数据计算得到的;根据解密后的损失值检测待训练模型是否处于收敛状态;若检测到待训练模型处于收敛状态,则获取与损失值对应的梯度值;确定与梯度值对应的样本参数,将与梯度值对应的样本参数确定为待训练模型的模型参数。实现了联合第一终端和第二终端的样本数据计算得到损失值,以通过联合第一终端和第二终端的样本数据联合帮助学习确定待训练模型中的模型参数,提高了训练所得模型的准确度。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的结构示意图;

图2为本发明基于联邦学习的模型参数获取方法第一实施例的流程示意图;

图3为本发明基于联邦学习的模型参数获取方法第二实施例的流程示意图;

图4为本发明基于联邦学习的模型参数获取方法第三实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的结构示意图。

需要说明的是,图1即可为模型参数获取系统的硬件运行环境的结构示意图。本发明实施例模型参数获取系统可以是pc,便携计算机等终端设备。

如图1所示,该模型参数获取系统可以包括:处理器1001,例如cpu,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的模型参数获取系统结构并不构成对模型参数获取系统的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于联邦学习的模型参数获取程序。其中,操作系统是管理和控制模型参数获取系统硬件和软件资源的程序,支持基于联邦学习的模型参数获取程序以及其它软件或程序的运行。

在图1所示的模型参数获取系统中,用户接口1003主要用于连接第一终端、第二终端和第三终端等,与各个终端进行数据通信;网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;而处理器1001可以用于调用存储器1005中存储的基于联邦学习的模型参数获取程序,并执行以下操作:

当第三终端接收到第二终端发送的加密后的损失值后,控制所述第三终端解密所述损失值,得到解密后的所述损失值,其中,所述损失值是通过第一终端对应的第一数据和所述第二终端对应的第二数据计算得到的;

根据解密后的所述损失值检测待训练模型是否处于收敛状态;

若检测到所述待训练模型处于收敛状态,则获取与所述损失值对应的梯度值;

确定与所述梯度值对应的样本参数,将与所述梯度值对应的样本参数确定为所述待训练模型的模型参数。

进一步地,所述当第三终端接收到第二终端发送的加密后的损失值后,控制所述第三终端解密所述损失值,得到解密后的所述损失值的步骤之前,处理器1001还可以用于调用存储器1005中存储的基于联邦学习的模型参数获取程序,并执行以下步骤:

当所述第二终端接收到所述第一终端发送的加密后的第一数据后,控制所述第二终端计算与所述第一数据对应的第二数据,以及获取所述第二数据对应的样本标签,其中,所述第一数据和所述第二数据对应的样本标签相同;

根据所述样本标签、所述第一数据和所述第二数据计算损失值;

采用同态加密算法加密所述损失值,得到加密后的所述损失值,并将加密后的所述损失值发送给所述第三终端。

进一步地,所述根据解密后的所述损失值检测待训练模型是否处于收敛状态的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于联邦学习的模型参数获取程序,并执行以下步骤:

若检测到所述待训练模型未处于所述收敛状态,则获取所述第二终端和所述第一终端发送的梯度值,并更新所述梯度值,得到更新后的所述梯度值;

将更新后的所述梯度值发送给所述第一终端和所述第二终端,以供所述第一终端和所述第二终端根据更新后的所述梯度值对应更新样本参数;

其中,当所述第一终端更新所述样本参数后,所述第一终端根据更新后的所述样本参数和交集样本数据中特征变量对应的变量值计算得到第一数据,并对所述第一数据进行加密,将加密后的第一数据发送给所述第二终端。

进一步地,所述第二终端根据更新后的所述梯度值对应更新样本参数的步骤包括:

当第二终端接收到更新后的所述梯度值后,所述第二终端计算更新后的所述梯度值与预设系数之间的乘积;

将更新前的样本参数减去所述乘积,得到更新后的所述样本参数。

进一步地,所述当第三终端接收到第二终端发送的加密后的损失值后,控制所述第三终端解密所述损失值,得到解密后的所述损失值的步骤之前,处理器1001还可以用于调用存储器1005中存储的基于联邦学习的模型参数获取程序,并执行以下步骤:

控制所述第一终端采用预存的第一公钥加密第一样本标识,并将加密后的第一样本标识发送给所述第二终端,并检测是否接收到所述第二终端发送的,采用预存的第二公钥加密后的第二样本标识;

当接收到加密后的第二样本标识后,采用所述第一公钥对所述第二样本标识进行二次加密,得到第二加密值,并检测是否接收到所述第二终端发送的第一加密值;

当接收到所述加密值后,判断所述第一加密值与所述第二加密值是否相等;

若所述第一加密值与所述第二加密值相等,则确定所述第一样本标识与所述第二样本标识相同,并将所述第一样本标识对应的样本数据确定为与所述第二终端的交集样本数据。

进一步地,所述确定与所述梯度值对应的样本参数,将与所述梯度值对应的样本参数确定为所述待训练模型的模型参数的步骤之后,处理器1001还可以用于调用存储器1005中存储的基于联邦学习的模型参数获取程序,并执行以下步骤:

当所述第二终端确定模型参数,且接收到执行请求后,控制所述第二终端将所述执行请求发送给所述第一终端,以供所述第一终端在接收到所述执行请求后,根据对应的所述模型参数和所述执行请求对应特征变量的变量值返回第一预测分数给所述第二终端;

当接收到所述第一预测分数后,根据对应的所述模型参数和所述执行请求对应特征变量的变量值计算第二预测分数;

将所述第一预测分数和所述第二预测分数相加,得到预测分数总和,并根据所述预测分数总和输入所述待训练模型中,得到模型分数,并根据所述模型分数确定是否执行所述执行请求。

进一步地,所述根据解密后的所述损失值检测待训练模型是否处于收敛状态的步骤包括:

获取所述第二终端前一次发送的第一损失值,并将解密后的所述损失值记为第二损失值;

计算所述第一损失值和所述第二损失值之间的差值,并判断所述差值是否小于或者等于预设阈值;

当确定所述差值小于或者等于所述预设阈值时,确定所述待训练模型处于收敛状态;

当确定所述差值大于所述预设阈值时,确定所述待训练模型未处于收敛状态。

基于上述的结构,提出基于联邦学习的模型参数获取方法的各个实施例。

参照图2,图2为本发明基于联邦学习的模型参数获取方法第一实施例的流程示意图。

本发明实施例提供了基于联邦学习的模型参数获取方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

基于联邦学习的模型参数获取方法包括:

步骤s10,当第三终端接收到第二终端发送的加密后的损失值后,所述第三终端解密所述损失值,得到解密后的所述损失值,其中,所述损失值是通过第一终端对应的第一数据和所述第二终端对应的第二数据计算得到的。

当第三终端接收到第二终端发送的加密后的损失值后,第三终端解密该损失值,得到解密后的损失值。需要说明的是,该损失值是第二终端根据第一终端发送的第一数据和与第一数据对应的第二数据计算得到的,第一数据是第一终端根据其样本数据和对应的样本参数计算得到的,第二数据是第二终端根据其样本数据和对应的样本参数计算得到的。在损失值中,含有多个计算因子。在本实施例中,第二终端采用第三终端发送的公钥,通过同态加密加法算法加密各个计算因子,得到加密后的计算因子,将加密后的计算因子相加,得到加密后的损失值,并将加密后的损失值发送给第三终端。当第三终端接收到加密后的损失值后,获取加密后的损失值对应的加密后的计算因子,通过与第二终端加密计算因子公钥对应的私钥解密该加密后的计算因子,得到原始的计算因子,通过该原始的计算因子得到解密后的损失值。其中,当第三终端采用非对称加密算法产生公钥和私钥后,第三终端将公钥发送给第一终端和第二终端,以便于第一终端和第二终端根据该公钥对应加密所需传输数据。第一终端、第二终端和第三终端可为智能手机、个人计算机和服务器等。

步骤s20,根据解密后的所述损失值检测待训练模型是否处于收敛状态。

当第三终端得到解密后的损失值后,第三终端根据解密后的损失值检测待训练模型是否处于收敛状态。

进一步地,步骤s20包括:

步骤a,获取所述第二终端前一次发送的第一损失值,并将解密后的所述损失值记为第二损失值。

具体地,当第三终端得到解密后的损失值后,第三终端获取第二终端前一次发送的第一损失值,并将解密后的损失值记为第二损失值。需要说明的是,当待训练模型未处于收敛状态时,第二终端会持续给第三终端发送损失值,直到待训练模型处于收敛状态。第一损失值也是第三终端解密后的损失值。可以理解的是,第一损失值是第二终端前一次发送的损失值,第二损失值是第二终端当前发送的损失值。

步骤b,计算所述第一损失值和所述第二损失值之间的差值,并判断所述差值是否小于或者等于预设阈值。

步骤c,当确定所述差值小于或者等于所述预设阈值时,确定所述待训练模型处于收敛状态。

步骤d,当确定所述差值大于所述预设阈值时,确定所述待训练模型未处于收敛状态。

当第三终端获取到第一损失值和第二损失值后,第三终端计算第一损失值和第二损失值之间的差值,并判断该差值是否小于或者等于预设阈值。当确定该差值小于或者等于预设阈值时,第三终端确定待训练模型处于收敛状态;当确定该差值大于预设阈值时,第三终端确定待训练模型未处于收敛状态。其中,预设阈值的具体数值可根据具体需要而设置,在本实施例中对预设阈值对应的数值不做具体限制。

步骤s30,若检测到所述待训练模型处于收敛状态,则获取与所述损失值对应的梯度值。

步骤s40,确定与所述梯度值对应的样本参数,将与所述梯度值对应的样本参数确定为所述待训练模型的模型参数。

若检测到待训练模型处于收敛状态,第三终端则获取与损失值对应的梯度值,并确定与该梯度值对应的样本参数,将与梯度值对应的样本参数确定为待训练模型的模型参数。需要说明的是,损失值对应的梯度值有两个,分别为第一终端发送给第三终端的梯度值,以及第二终端发送给第三终端的梯度值。当第一终端计算得到其对应的梯度值后,加密其梯度值,并将加密后的梯度值发送给第三终端。第二终端在将加密后的损失值发送给第三终端时,第二终端会将加密后的梯度值一起发送给第三终端。其中,第二终端加密梯度值和加密损失值的加密方法相同,在本实施例不再详细赘述。第一终端加密梯度值的方法与第二终端加密梯度值的方法相同,在本实施例中不再详细赘述。

在本实施例中,第二终端发送给第三终端的损失值和加密值都是通过第一终端和第二终端对应的样本参数、特征变量对应的变量值和第二终端交集样本数据对应的样本标签值计算所得。第一终端和第二终端对应的样本参数可以相同,也可以不同。在得到模型参数的过程中,会不断迭代更新梯度值和损失值,直到待训练模型处于收敛状态。在待训练模型中,存在第一终端对应的模型参数和第二终端对应的模型参数。

当检测到待训练模型处于收敛状态时,第三终端可将计算对应梯度值中第一终端对应的样本参数作为待训练模型中第一终端对应的模型参数,以及将计算对应梯度值中第二终端对应的样本参数作为待训练模型中第二终端对应的模型参数。

进一步地,当第三终端确定模型参数后,会发送提示消息给第一终端和第二终端,以根据该提示信息提示第一终端和第二终端各自对应的模型参数。需要说明的是,第一终端和第二终端都存在对应的模型参数,第一终端对应的模型参数由第一终端存储,第二终端对应的模型参数由第二终端存储。

本实施例通过当第三终端接收到第二终端发送的加密后的损失值后,第三终端解密损失值,得到解密后的损失值,其中,损失值是通过第一终端和第二终端中的样本数据计算得到的;根据解密后的损失值检测待训练模型是否处于收敛状态;若检测到待训练模型处于收敛状态,则获取与损失值对应的梯度值;确定与梯度值对应的样本参数,将与梯度值对应的样本参数确定为待训练模型的模型参数。实现了联合第一终端和第二终端的样本数据计算得到损失值,以通过联合第一终端和第二终端的样本数据联合帮助学习确定待训练模型中的模型参数,提高了训练所得模型的准确度。

进一步地,提出本发明基于联邦学习的模型参数获取方法第二实施例。

所述基于联邦学习的模型参数获取方法第二实施例与所述基于联邦学习的模型参数获取方法第一实施例的区别在于,参照图3,基于联邦学习的模型参数获取方法还包括:

步骤s50,当所述第二终端接收到所述第一终端发送的加密后的第一数据后,所述第二终端计算与所述第一数据对应的第二数据,以及获取所述第二数据对应的样本标签,其中,所述第一数据和所述第二数据对应的样本标签相同。

当第二终端接收到第一终端发送的第一数据后,第二终端计算与第一数据对应的第二数据,以及获取第二数据对应的样本标签。其中,第一数据为第一终端中样本参数与第一终端交集样本数据中特征变量对应变量值乘积之和,以及该乘积之和的平方。计算原始第一数据对应的计算公式为:乘积之和的平方表示为:其中,w1,w2…wn表示第一终端对应的样本参数,第一终端中特征变量对应变量值的个数与第一终端对应样本参数的个数相等,即一个变量值对应一个样本参数,x表示特征变量的特征值,1,2…n表示对应变量值和样本参数的个数。如当第一终端交集样本数据中的每个特征变量存在三个变量值,则需要说明的是,第一终端发送给第二终端的第一数据是加密后的第一数据,当第一终端计算得到第一数据后,采用第三终端发送的公钥,通过同态加密算法加密第一数据,得到加密后的第一数据,并将加密后的第一数据发送给第二终端。其中,发送给第二终端的第一数据,即加密后的第一数据可表示为[[ua]]和

第二终端计算第二数据的过程与第一终端计算第一数据的过程类似,如计算第二终端中样本参数与第二终端交集样本数据中特征变量对应变量值乘积之和的公式为:其中,w1,w2…wn表示第二终端中各个样本数据特征变量对应特征值的样本参数。需要说明的是,第一数据和第二数据对应的样本标识是相同的。在第一终端和第二终端的样本数据中,每个样本数据都存在对应的样本标识,但第一终端的样本数据是不存在样本标签的,第二终端的样本数据存在样本标签,一个样本标识对应一个样本标签。每个样本数据至少存在一个特征变量,每个特征变量至少存在一个变量值。在第一终端中,每个样本数据的样本标识都不一样,在第二终端中,每个样本数据的样本标识也都不一样,但是不同样本数据对应的样本标签可能相同,也可能不相同。

步骤s60,根据所述样本标签、所述第一数据和所述第二数据计算损失值。

步骤s70,采用同态加密算法加密所述损失值,得到加密后的所述损失值,并将加密后的所述损失值发送给所述第三终端。

当第二终端得到第二数据对应的样本标签,第一终端发送的第一数据,和计算所得的第二数据后,第二终端根据该样本标签对应的标签值、第一数据和第二数据计算得到损失值。

在本实施例中,损失值表示为loss,加密后的损失值表示为[[loss]],[[u]]=[[ua+ub]]=[[ua]]+[[ub]],[[(wtx)2]]=[[(u)2]]=[[ua2]]+[[ub2]]+[[2uaub]]=[[ua2]]+[[ub2]]+2ub[[ua]];其中,y表示第二数据对应样本标签的标签值,样本标签对应的标签值的数值可根据具体需要而设置,如在本实施例中,如可用“0”和“1”表示不同样本标签对应的标签值。

当第二终端计算得到损失值后,第二终端采用第三终端发送的公钥,通过同态加密算法加密各个计算损失值的计算因子,以得到加密后的损失值,并将加密后的损失值发送给第三终端。其中,log2、ywtx和(wtx)2为计算损失值的计算因子。需要说明的是,在本实施例中,采用[[x]]表示加密后的x。

需要说明的是,在本实施例中,采用参数服务器的方式,第一终端和第二终端都拥有独立的参数服务器,用于各自样本数据的聚合更新同步,同时避免各自样本数据的泄露,且第一终端和第二终端对应的样本参数,即模型参数都是各自存储的,提高了第一终端和第二终端数据的安全性。

本实施例通过根据第一终端的第一数据和第二终端的第二数据,以及第二数据对应的样本标签计算损失值,并采用同态加密算法加密计算损失值所需的数据,使第二终端在计算损失值过程中,并不能获取第一终端的具体样本数据,实现了在联合第一终端和第二终端样本数据计算模型参数过程中,可在不暴露第一终端和第二终端样本数据的基础上计算出计算模型参数所需的损失值,提高了计算模型参数过程中第一终端和第二终端样本数据的隐私性。

进一步地,提出本发明基于联邦学习的模型参数获取方法第三实施例。

所述基于联邦学习的模型参数获取方法第三实施例与所述基于联邦学习的模型参数获取方法第一或第二实施例的区别在于,参照图4,基于联邦学习的模型参数获取方法还包括:

步骤s80,若检测到所述待训练模型未处于所述收敛状态,则获取所述第二终端和所述第一终端发送的梯度值,并更新所述梯度值,得到更新后的所述梯度值。

若检测到待训练模型未处于收敛状态,第三终端则获取第二终端和所述第一终端发送的梯度值,并更新第一终端和第二终端对应的梯度值,得到第一终端和第二终端对应的更新后的梯度值。其中,当第二终端发送损失值给第三终端过程中,会同时将梯度值一起发送给第三终端,发送给第三终端的梯度值也是经过第三终端发送的公钥,通过同态加密算法加密后的。第二终端计算其对应梯度值的公式为:[[gb]]=∑[[d]]xb。第二终端发送给第三终端梯度值表示为[[gb]]。

第二终端在计算得到[[d]]后,会将[[d]]发送给第一终端。当第一终端接收到第二终端发送的[[d]]后,第一终端根据[[d]]计算其对应的梯度值,并将其对应的梯度值发送给第三终端。第一终端根据[[d]]计算其对应的梯度值的公式为:[[ga]]=∑[[d]]xa。

在本实施例中,第三终端可先采用其私钥解密第一终端和第二终端发送的梯度值,然后对解密后的梯度值进行求导,得到更新后的梯度值。进一步地,第三终端可根据待训练模型的特征,按照一定比例降低或者提高解密后的梯度值,以得到更新后的梯度值。

步骤s90,将更新后的所述梯度值发送给所述第一终端和所述第二终端,以供所述第一终端和所述第二终端根据更新后的所述梯度值对应更新样本参数;

其中,当所述第一终端更新所述样本参数后,所述第一终端根据更新后的所述样本参数和交集样本数据中特征变量对应的变量值计算得到第一数据,并对所述第一数据进行加密,将加密后的第一数据发送给所述第二终端。

当第三终端得到更新后的梯度值后,将第一终端对应的更新后的梯度值发送给第一终端,以及将第二终端对应的更新后的梯度值发送给第二终端。当第一终端接收到第三终端发送的更新后的梯度值后,第一终端根据更新后的梯度值更新其对应的样本参数。具体地,第一终端根据更新后的梯度值更新其对应样本参数所用公式为:wa=wa0-ηga,其中,wa表示更新后的样本参数,wa0表示更新前的样本参数,即第一终端之前计算第一数据所用的样本参数;η为一个系数,是预先设置好的,其对应的数值可根据具体需要而设置;ga为更新后的梯度值。

当第一终端更新样本参数后,第一终端获取其交集样本数据对应的特征变量,确定该特征变量对应的变量值,并根据该变量值和更新后的样本参数计算得到第一数据,加密该第一数据,将加密后的第一数据发送给第二终端。第一终端计算得到第一数据的过程已在第二实施例中详细描述,在本实施例中不再详细赘述。

进一步地,所述第二终端根据更新后的所述梯度值对应更新样本参数的步骤包括:

步骤g,当第二终端接收到更新后的所述梯度值后,所述第二终端计算更新后的所述梯度值与预设系数之间的乘积。

步骤h,将更新前的样本参数减去所述乘积,得到更新后的所述样本参数。

当第二终端接收到第三终端发送的更新后的梯度值后,第二终端计算更新后的梯度值与预设系数之间的乘积,将样本参数减去该乘积,以得到更新后的样本参数。具体地,第二终端根据更新后的梯度值更新其对应样本参数所用公式为:wb=wb0-ηgb,其中,wb表示更新后的样本参数,wb0表示更新前的样本参数,即第二终端之前计算第二数据所用的样本参数;η为一个系数,是预先设置好的,即预设系数,其对应的数值可根据具体需要而设置;gb为更新后的梯度值。其中,第一终端和第二终端对应的η可以相同,也可以不同。

进一步地,当第三终端确定待训练模型处于收敛状态时,第三终端可更新对应的梯度值,并将更新后的梯度值发送给第一终端和第二终端,以供第一终端和第二终端在接收到更新后的梯度值后,对应根据更新后的梯度值更新样本参数,将更新后的样本参数作为模型参数。

本实施例通过当检测到待训练模型未处于收敛状态时,第三终端更新梯度值,并将更新后的梯度值发送给第一终端和第二终端,以供第一终端和第二终端根据更新后的梯度值更新对应的样本参数,直到待训练模型处于收敛状态,以提高所得待训练模型分析数据的准确性。

进一步地,提出本发明基于联邦学习的模型参数获取方法第四实施例。

所述基于联邦学习的模型参数获取方法第四实施例与所述基于联邦学习的模型参数获取方法第一、第二或第三实施例的区别在于,基于联邦学习的模型参数获取方法还包括:

步骤i,所述第一终端采用预存的第一公钥加密第一样本标识,并将加密后的第一样本标识发送给所述第二终端,并检测是否接收到所述第二终端发送的,采用预存的第二公钥加密后的第二样本标识。

当需要得到待训练模型的模型参数后,第一终端采用预先存储的第一公钥加密第一样本标识,得到加密后的第一样本标识,并将加密后的第一样本标识发送给第二终端。第一终端检测是否接收到第二终端发送的,采用预存的第二公钥加密后的第二样本标识。

当需要得到待训练模型的模型参数后,第二终端采用预先存储的第二公钥加密第二样本标识,得到加密后的第二样本标识,并将加密后的第二样本标识发送给第一终端。

需要说明的是,加密后的第一样本标识为第一终端加密其所持有的样本数据对应的数据标识后所得到的,,第二样本标识为第二终端样本数据对应的数据标识。具体地,第一终端可采用其预先生成的公钥加密第一样本标识。第一终端和第二终端加密所用的公钥是通过非对称加密算法生成的。

步骤j,当接收到加密后的第二样本标识后,采用所述第一公钥对所述第二样本标识进行二次加密,得到第二加密值,并检测是否接收到所述第二终端发送的第一加密值。

当第一终端接收到第二终端发送的加密后的第二样本标识后,第一终端采用其公钥,即采用第一公钥对第二样本标识进行二次加密,将经过二次加密后的第二样本标识记为第二加密值,并检测是否接收到第二终端发送的第一加密值。其中,当第二终端接收到第一终端发送的加密后的第一样本标识后,第二终端采用其公钥,即采用第二公钥对加密后的第二样本标识进行二次加密,将经过二次加密后的第一样本标识记为第一加密值,并将第一加密值发送给第一终端。

步骤k,当接收到所述加密值后,判断所述第一加密值与所述第二加密值是否相等。

步骤l,若所述第一加密值与所述第二加密值相等,则确定所述第一样本标识与所述第二样本标识相同,并将所述第一样本标识对应的样本数据确定为与所述第二终端的交集样本数据。

当第一终端接收到第一终端发送的第二加密值后,第一终端判断第一加密值与第二加密值是否相等。若确定第一加密值与第二加密值相等,第一终端则确定对应携带第一样本标识的样本数据为交集样本数据;若确定第一加密值与第二加密值不相等,第一终端则确定携带第一样本标识的样本数据不是交集样本数据。可以理解的是,当第一加密值与第二加密值相等时,表明第一加密值对应的第一样本标识与第二加密值对应的第二样本标识是相同的。

如当第一终端的公钥为pub_a,第二终端的公钥为pub_b时,确定交集样本数据的过程为:(1)第一终端采用其公钥pub_a对id_a(第一样本标识)加密:id_a_fa=f(id_a,pub_a),然后把id_a_fa发送给第二终端,第二终端采用公钥pub_b把该id_a加密串进行再次加密,得到id_a_fa_fb=f(id_a_fa,pub_b)。(2)第二终端采用公钥pub_b对id_b(第二样本标识)加密:id_b_fb=f(id_b,pub_b),然后把id_b_fb发送给第一终端,第一终端采用公钥pub_a把该id_b加密串进行再次加密:id_b_fb_fa=f(id_b_fb,pub_a),然后把id_b_fb_fa发送第二终端。(3)第二终端比较id_a_fa_fb(第一加密值)和id_b_fb_fa(第二加密值),如果这两个加密串相等,则表示id_a和id_b相同。

如若第一终端的样本数据为:{<id1:x1,x2>,<id2:x1,x2>,<id3:x1,x2>},第二终端的样本数据为:{<id2:x3,x4>,<id3:x3,x4>,<id4:x3,x4>,则第二终端中交集样本数据为:{<id2:x3,x4>,<id3:x3,x4>},第一终端中的交集样本数据为:{<id2:x1,x2>,<id3:x1,x2>}。

需要说明的是,第二终端确定其与第一终端中携带相同样本标识的交集样本数据的过程,与第一终端确定其与第二终端中携带相同样本标识的交集样本数据的过程一致,在本实施例中不再详细赘述。

在确定模型参数的过程中,当得到第一终端对应的交集样本数据和第二终端对应的交集样本数据后,第一终端可将其交集样本数据划分成若干份,然后第二终端根据第一终端划分样本数据的划分结果,通过样本标识对进行匹配,以对自己的交集样本数据进行划分。

本实施例通过在第一终端和第二终端不泄露自己所拥有数据的情况下,得到第一终端和第二终端样本数据的交集样本数据,提高了计算数据信息值过程中,第一终端和第二终端数据的安全性。

进一步地,提出本发明基于联邦学习的模型参数获取方法第五实施例。

所述基于联邦学习的模型参数获取方法第四实施例与所述基于联邦学习的模型参数获取方法第一、第二、第三或第四实施例的区别在于,基于联邦学习的模型参数获取方法还包括:

步骤m,当所述第二终端确定模型参数,且接收到执行请求后,所述第二终端将所述执行请求发送给所述第一终端,以供所述第一终端在接收到所述执行请求后,根据对应的所述模型参数和所述执行请求对应特征变量的变量值返回第一预测分数给所述第二终端。

当第二终端确定模型参数后,第二终端检测是否接收到执行请求。当第二终端接收到执行请求后,第二终端将该执行请求发送给第一终端。当第一终端接收到执行请求后,第一终端获取其对应的模型参数,以及获取执行请求对应特征变量的变量值,根据该模型参数和变量值计算得到第一预测分数,并将该第一预测分数发送给第二终端。可以理解的是,第一终端计算第一预测分数的公式为:

步骤n,当接收到所述第一预测分数后,根据对应的所述模型参数和所述执行请求对应特征变量的变量值计算第二预测分数。

当第二终端接收到第一终端发送的第一预测分数后,第二终端根据对应的模型参数和该执行请求对应特征变量的变量值计算第二预测分数。其中,第二终端计算第二预测分数的公式为:

步骤o,将所述第一预测分数和所述第二预测分数相加,得到预测分数总和,并根据所述预测分数总和输入所述待训练模型中,得到模型分数,并根据所述模型分数确定是否执行所述执行请求。

当第二终端得到第一预测分数和第二预测分数后,第二终端将第一预测分数和第二预测分数相加,得到预测分数总和,并将该预测分数总和输入待训练模型中,得到模型分数。其中,预测分数总和的表达式为:待训练模型的表达式为:

当得到模型分数后,第二终端可根据该模型分数判断是否执行该执行请求。如当该待训练模型为欺诈模型,该执行请求为贷款请求时,若计算所得的模型分数大于或者等于预设分数,第二终端则确定该贷款请求为欺诈请求,拒绝执行该贷款请求;若计算所得的模型分数小于预设分数,第二终端则确定该贷款请求为真实的贷款请求,执行该贷款请求。

本实施例通过第二终端接收到执行请求后,通过待训练模型分析该执行请求,以确定是否执行该执行请求,提高了第二终端执行请求过程中的安全性。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有基于联邦学习的模型参数获取程序,所述基于联邦学习的模型参数获取程序被处理器执行时实现如上所述的奖励发送方法的步骤。

本发明计算机可读存储介质具体实施方式与上述基于联邦学习的模型参数获取方法各实施例基本相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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