CN114881248A - 两方横向联邦学习方法和用于两方横向联邦学习的装置 - Google Patents
两方横向联邦学习方法和用于两方横向联邦学习的装置 Download PDFInfo
- Publication number
- CN114881248A CN114881248A CN202210755173.9A CN202210755173A CN114881248A CN 114881248 A CN114881248 A CN 114881248A CN 202210755173 A CN202210755173 A CN 202210755173A CN 114881248 A CN114881248 A CN 114881248A
- Authority
- CN
- China
- Prior art keywords
- virtual
- parameter
- participants
- aggregation
- parameters
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种两方横向联邦学习方法和用于两方横向联邦学习的装置。其中的方法包括:利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集;利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;基于加密协议对所述第二参数进行加密,得到参数密文;将所述参数密文发送至协同方;接收所述协同方返回的聚合参数;基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。本发明可以增强两方参与的横向联邦学习的安全性。
Description
技术领域
本发明涉及多方安全计算领域,尤其涉及一种两方横向联邦学习方法和用于两方横向联邦学习的装置。
背景技术
在涉及多个数据方的数据融合计算过程中,传统的数据计算方式存在数据隐私泄露的风险。隐私计算平台可以在加密数据上直接进行计算,虽然牺牲了一定的计算效率,但是可以在保证数据隐私安全的基础上实现多方数据的融合计算。
联邦学习指的是拥有数据的各个数据方,在不共享受保护的隐私数据且自有数据不传递到外部的前提下,通过加密的方式交换模型相关信息从而实现协同优化联邦学习模型。
当前实现联邦学习的方式主要有两种,一种是通过半同态方法进行梯度聚合,另一种通过秘密分享进行梯度聚合。当只有两方参与横向联邦学习时,虽然梯度聚合过程是加密的,但对方的梯度可以通过本方梯度与聚合后梯度计算得出,因此原始数据信息存在被暴露的风险。
发明内容
本发明实施例提供一种两方横向联邦学习方法和用于两方横向联邦学习的装置,可以解决现有技术中只有两方参与时,一方的参数可以通过另一方的参数与聚合参数计算得出,造成原始数据信息泄露的问题。
为了解决上述问题,本发明实施例公开了一种两方横向联邦学习方法,应用于参与方,所述方法用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述方法包括:
利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
基于加密协议对所述第二参数进行加密,得到参数密文;
将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
接收所述协同方返回的聚合参数;
基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
本发明实施例还公开了另一种两方横向联邦学习方法,应用于协同方,所述方法用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述方法包括:
接收两个参与方发送的参数密文;
对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
另一方面,本发明实施例公开了一种两方横向联邦学习装置,应用于参与方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置包括:
参与方模拟模块,用于利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
模型训练模块,用于利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
聚合计算模块,用于对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
加密计算模块,用于基于加密协议对所述第二参数进行加密,得到参数密文;
密文发送模块,用于将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
参数接收模块,用于接收所述协同方返回的聚合参数;
迭代更新模块,用于基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
本发明实施例还提供了另一种两方横向联邦学习装置,应用于协同方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置包括:
密文接收模块,用于接收两个参与方发送的参数密文;
参数聚合模块,用于对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
参数发送模块,用于将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
再一方面,本发明实施例公开了一种用于两方横向联邦学习的装置,应用于参与方,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
基于加密协议对所述第二参数进行加密,得到参数密文;
将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
接收所述协同方返回的聚合参数;
基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
本发明实施例还公开了另一种用于两方横向联邦学习的装置,应用于协同方,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收两个参与方发送的参数密文;
对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
又一方面,本发明实施例公开了一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如前述一个或多个所述的两方横向联邦学习方法。
本发明实施例包括以下优点:
本发明实施例提供的两方横向联邦学习方法,可以通过各个参与方在本地模拟至少两个虚拟参与方,利用至少两个虚拟参与方进行模型训练,参与方向协同方上传的参数密文,不是基于本地数据集直接得到的参数,而是对虚拟参与方的第一参数进行聚合计算之后得到的第二参数,从而对参与方最终上传的模型参数增加了混淆,相比于常规的两方横向联邦学习方法,本发明实施例大大增加了其中一个参与方反推出另一个参与方的原始训练数据的难度,增强了两方参与的横向联邦学习的安全性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中常见的两方横向联邦学习的系统架构示意图;
图2是本发明的一种两方横向联邦学习的系统架构的示意图;
图3是本发明的一种两方横向联邦学习方法实施例的步骤流程图;
图4是本发明的另一种两方横向联邦学习方法实施例的步骤流程图;
图5是本发明的一种两方横向联邦学习装置实施例的结构框图;
图6是本发明的另一种两方横向联邦学习装置实施例的结构框图;
图7是本发明的一种用于两方横向联邦学习的装置800的框图;
图8是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
方法实施例
联邦学习(Federated Learning,FL)是一种分布式机器学习算法,通过多个参与方(如电子设备或边缘服务器)和协同方(如服务器),在数据不出域的前提下,协作式完成模型训练和算法更新,以得到训练后的全局模型。可以理解为,在进行机器学习的过程中,各参与方可借助其他方数据进行联合建模。各方无需共享数据资源,即数据不出本地的情况下,进行数据联合训练,建立共享的联邦学习模型。
训练后的联邦学习模型可以应用于智能终端、智能交通、智能医疗、自动驾驶、智慧城市等各种应用领域中以实现分类、回归或其他功能。训练后的联邦学习模型的处理对象可以为图像样本、离散数据样本、文本样本或语音样本等,此处不做穷举。其中,所述联邦学习模型可以为任意一种机器学习模型,具体可以表现为神经网络、线性模型或者其他类型的机器学习模型等。在后续的实施例中,仅以所述联邦学习模型为神经网络模型为例进行说明,对于联邦学习模型表现为除神经网络模型之外的其他类型时可以类推理解,本发明实施例中不再赘述。
本发明实施例提供的两方横向联邦学习方法,用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,以解决现有技术中只有两方参与时,一方的参数可以通过另一方的参数与聚合参数计算得出,造成原始数据信息泄露的问题。
参照图1,示出了现有技术中常见的两方横向联邦学习的系统架构示意图。如图1所示,联邦学习系统中包括参与方1、参与方2以及协同方。为了确保隐私数据安全,参与方1与参与2之间不能进行数据交互。
参与方1和参与方2能够提供的训练数据记为本地数据1和本地数据2。本地数据1和本地数据2可以是图像数据、语言数据、文本数据、序列数据等。参与方1利用本地数据1进行模型训练,得到本地模型1;参与方2利用本地数据2进行模型训练,得到本地模型2。之后,参与方1将本地模型1的参数g1加密后发送给协同方,参与方2将本地模型2的参数g2加密后发送给协同方。
协同方在获得所有本地模型的参数(包括本地模型1的参数g1和本地模型2的参数g2)后,将所有获得的参数进行聚合求平均,得到一个聚合参数g。之后,协同方将得到的聚合参数g发送给所有参与方,参与方在接收到聚合参数g后,使用聚合参数g对本地模型进行更新,再重复下一轮的训练:在聚合参数g的基础上,训练得到新的本地模型的参数、上传新的本地模型的参数、模型汇聚出新的聚合参数,如此循环,直至达到预设要求。在图1所示的场景中,整个的训练过程可以看作是对联邦学习模型的模型参数不断进行调整的过程,使得联邦学习模型的参数能够同时适用于所有参与方。
从图1中可以看出,每个参与方发送给协同方的参数,是基于本地数据直接得到的参数,当只有两个参与方时,聚合参数g=(g1+g2)/2,其中一个参与方基于自身的参数和接收到的聚合参数,可以推出另一个参与方的本地模型的参数。获取到本地模型的参数之后,可以推出用于训练本地模型的训练数据。例如,当参数为梯度时,已有研究可以根据梯度可以恢复出像素级的图像数据或符号级的文本数据,如DLG算法,可以通过预设一个虚拟输入图片,计算虚拟输入图片对应的虚拟梯度,然后将虚拟梯度与通过图片训练样本得到的真实梯度进行比较,计算虚拟梯度与真实梯度之间的差值平方,根据差值平方进行反向传播,更新虚拟输入图片,如此循环,直至虚拟梯度与真实梯度相匹配时,虚拟输入图片与真实输入图片相匹配,也即恢复出了原始的图片训练样本。因此,现有技术中的联邦学习方法,在只有两个参与方时,容易暴露参与方的原始样本信息。
针对上述现有的联邦学习方法所存在的问题,本发明实施例提供了一种两方横向联邦学习方法。参照图2,示出了本发明实施例提供的一种两方横向联邦学习的系统架构的示意图。如图2所示,在本发明实施例中,每个参与方在本地模拟至少两个虚拟参与方。利用每个虚拟参与方对联邦学习模型进行迭代训练。图2中仅示出了本地模拟3个虚拟参与方的场景,模拟其他数目的虚拟参与方的原理类似,本发明在此不做赘述。
下面将结合图2所示的系统结构,对本发明实施例提供的两方横向联邦学习方法进行详细说明。参照图3,示出了本发明的一种两方横向联邦学习方法实施例的步骤流程图,所述方法应用于参与方,具体可以包括如下步骤:
步骤101、利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集。
步骤102、利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数。
步骤103、对各个虚拟参与方的第一参数进行聚合计算,得到第二参数。
步骤104、基于加密协议对所述第二参数进行加密,得到参数密文。
步骤105、将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数。
步骤106、接收所述协同方返回的聚合参数。
步骤107、基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
在本发明实施例中,参与联邦学习的参与方在进行本地训练时,先利用本地数据集模拟至少两个虚拟参与方。其中,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集。具体的,可以对参与方的本地数据集进行随机采样,得到各个虚拟参与方的虚拟数据集;也可以根据虚拟参与方的数目,将参与方的本地数据集平均分配给各个虚拟参与方,得到每个虚拟参与方的虚拟数据集。需要说明的是,本发明实施例对虚拟数据集的分配方式不做具体限定,只要能够保证每个虚拟参与方的虚拟数据集不同即可。
可选地,所述利用本地数据集模拟至少两个虚拟参与方,包括:对所述本地数据集分别进行N次随机采样,得到N个虚拟数据集,N为正整数,且N≥2;或者,将所述本地数据集平均分为N份,得到N个虚拟数据集;基于所述N个虚拟数据集构建N个虚拟参与方,每个虚拟参与方持有一个虚拟数据集。
可以理解的是,所述虚拟参与方可以为具有模型训练功能的功能模块,参与方利用本地数据集模拟虚拟参与方,可以理解为根据至少两个虚拟数据集,本地构建至少两个具有模型训练功能的模块,使之能够利用对应的虚拟数据集对联邦学习模型进行训练。
每个虚拟参与方基于持有的虚拟数据集对联邦学习模型进行训练,得到第一参数。如图2所示,参与方A中的虚拟参与方a1、a2和a3,分别得到第一参数、和;参与方B中的虚拟参与方b1、b2和b3,分别得到第一参数、和。
参与方对各个虚拟参与方的第一参数进行聚合计算,得到第二参数。作为一种示例,所述对各个虚拟参与方的第一参数进行聚合计算,得到第二参数,包括:计算各个虚拟参与方的第一参数的平均值,得到第二参数。
接下来,参与方基于加密协议对第二参数进行加密,得到参数密文,并将参数密文发送至协同方,使得协同方对两个参与方的参数密文进行聚合得到聚合参数。
由图2可以看出,参与方向协同方上传的参数密文,不是基于本地数据集直接得到的参数,而是对虚拟参与方的第一参数进行聚合计算之后得到的第二参数,即使一个参与方基于其自身的第二参数和协同方返回的聚合参数反推出了另一个参与方的第二参数,也无法准确反推出各个虚拟参与方对应的第一参数,也就无法进一步基于第一参数反推出虚拟参与方的虚拟样本集。因此,本发明实施例提供的联邦学习方法,可以解决现有技术中只有两方参与时,一方的参数可以通过另一方的参数和聚合参数计算得出,造成原始数据信息泄露的问题,本发明能够有效保障联邦学习过程中的数据安全,增强了两方参与的横向联邦学习的安全性。
在本发明的一种可选实施例中,步骤107所述基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型,包括:
步骤S11、在每一轮训练中,基于所述聚合参数更新所述联邦学习模型的本地参数,并判断是否满足预设终止条件;
步骤S12、若确定满足预设终止条件,则结束训练,得到训练完成的联邦学习模型;
步骤S13、若确定不满足预设终止条件,则利用本地数据集重新模拟至少两个虚拟参与方,并利用重新模拟的至少两个虚拟参与方持有的虚拟数据集对更新后的联邦学习模型进行下一轮迭代训练。
其中,所述预设终止条件可以根据参数类型、模型训练需求等进行设置。例如,当聚合参数为梯度时,预设终止条件可以为聚合梯度小于预设的梯度阈值,等等。
在第一轮训练之后,参与方A和参与方B接收到协同方C返回的聚合参数g。以参与方A为例,在接收到聚合参数之后,先判断是否满足预设终止条件,如果不满足预设终止条件,则开始新一轮的训练:利用本地数据集重新模拟虚拟数据方、利用新的虚拟数据方持有的虚拟数据集训练得到新的第一参数、对新的第一参数进行聚合得到新的第二参数、上传新的第二参数、接收协同方返回的新的聚合参数,如此循环,直至接收到的聚合参数小于预设阈值,得到训练完成的联邦学习模型。
以图2所示的联邦学习的系统架构为例,假设在第一轮训练中,参与方A模拟了三个虚拟参与方a1、a2和a3,其中虚拟参与方a1持有的虚拟数据集为M1,虚拟参与方a2持有的虚拟数据集为M2,虚拟参与方a3持有的虚拟数据集为M3。那么,在第二轮训练中,可以重新模拟三个虚拟参与方a4、a5和a6,分别对应虚拟数据集M4、M5和M6,依次类推,直至训练结束。需要说明的是,在同一轮训练中,各个虚拟参与方持有的虚拟数据集不同。
当然,在每一轮训练中,也可以不重新模拟虚拟参与方,仅对虚拟参与方持有的虚拟数据集进行更新。示例性地,所述利用本地数据集重新模拟至少两个虚拟参与方,包括:对本地数据集重新进行随机采样,得到至少两个新的虚拟数据集;利用新的虚拟数据集替换所述至少两个虚拟参与方的虚拟数据集,使得每一个虚拟参与方持有一个新的虚拟数据集。
可以理解的是,当虚拟参与方为参与方中具有模型训练功能的功能模块时,重新模拟虚拟参与方可以理解为在不改变其模块功能的情况下,重新分配虚拟数据集。
参照图4,示出了本发明的另一种两方横向联邦学习方法实施例的步骤流程图,所述方法应用于协同方,具体可以包括如下步骤:
步骤201、接收两个参与方发送的参数密文。
步骤202、对所述两个参与方的参数密文进行聚合计算,得到聚合参数。
步骤203、将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
在本发明实施例中,协同方主要用于接收两个参与方发送的参数密文,对接收到的参数密文进行聚合计算,得到聚合参数,并将聚合参数分别发送给每个参与方。
以图2所示的联邦学习的系统架构为例,协同方C在接收到参与方A和参与方B发送的参数密文后,进行聚合计算。作为一种示例,协同方C计算的聚合参数g可以表示为:g=(g1+g2)/2。
综上所述,本发明实施例提供的两方横向联邦学习方法,可以通过各个参与方在本地模拟至少两个虚拟参与方,利用至少两个虚拟参与方进行模型训练,参与方向协同方上传的参数密文,不是基于本地数据集直接得到的参数,而是对虚拟参与方的第一参数进行聚合计算之后得到的第二参数,从而对参与方最终上传的模型参数增加了混淆,相比于常规的两方横向联邦学习方法,本发明实施例大大增加了其中一个参与方反推出另一个参与方的原始训练数据的难度,增强了两方参与的横向联邦学习的安全性。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图5,示出了本发明的一种两方横向联邦学习装置实施例的结构框图,应用于参与方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置具体可以包括:
参与方模拟模块501,用于利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
模型训练模块502,用于利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
聚合计算模块503,用于对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
加密计算模块504,用于基于加密协议对所述第二参数进行加密,得到参数密文;
密文发送模块505,用于将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
参数接收模块506,用于接收所述协同方返回的聚合参数;
迭代更新模块507,用于基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
可选地,所述参与方模拟模块,包括:
随机采样子模块,用于对所述本地数据集分别进行N次随机采样,得到N个虚拟数据集,N为正整数,且N≥2;或者,
数据集划分子模块,用于将所述本地数据集平均分为N份,得到N个虚拟数据集;
参与方模拟子模块,用于基于所述N个虚拟数据集构建N个虚拟参与方,每个虚拟参与方持有一个虚拟数据集。
可选地,所述迭代更新模块,包括:
参数更新子模块,用于在每一轮训练中,基于所述聚合参数更新所述联邦学习模型的本地参数,并判断是否满足预设终止条件;
第一判断子模块,用于若确定满足预设终止条件,则结束训练,得到训练完成的联邦学习模型;
第二判断子模块,用于若确定不满足预设终止条件,则利用本地数据集重新模拟至少两个虚拟参与方,并利用重新模拟的至少两个虚拟参与方持有的虚拟数据集对更新后的联邦学习模型进行下一轮迭代训练。
可选地,所述聚合计算模块,包括:
聚合计算子模块,用于计算各个虚拟参与方的第一参数的平均值,得到第二参数。
参照图6,示出了本发明的另一种两方横向联邦学习装置实施例的结构框图,应用于协同方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置具体可以包括:
密文接收模块601,用于接收两个参与方发送的参数密文;
参数聚合模块602,用于对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
参数发送模块603,用于将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于两方横向联邦学习的装置,应用于参与方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
基于加密协议对所述第二参数进行加密,得到参数密文;
将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
接收所述协同方返回的聚合参数;
基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
可选地,所述利用本地数据集模拟至少两个虚拟参与方,包括:
对所述本地数据集分别进行N次随机采样,得到N个虚拟数据集,N为正整数,且N≥2;或者,
将所述本地数据集平均分为N份,得到N个虚拟数据集;
基于所述N个虚拟数据集构建N个虚拟参与方,每个虚拟参与方持有一个虚拟数据集。
可选地,所述基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型,包括:
在每一轮训练中,基于所述聚合参数更新所述联邦学习模型的本地参数,并判断是否满足预设终止条件;
若确定满足预设终止条件,则结束训练,得到训练完成的联邦学习模型;
若确定不满足预设终止条件,则利用本地数据集重新模拟至少两个虚拟参与方,并利用重新模拟的至少两个虚拟参与方持有的虚拟数据集对更新后的联邦学习模型进行下一轮迭代训练。
可选地,所述对各个虚拟参与方的第一参数进行聚合计算,得到第二参数,包括:
计算各个虚拟参与方的第一参数的平均值,得到第二参数。
本发明实施例还提供了另一种用于两方横向联邦学习的装置,应用于协同方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收两个参与方发送的参数密文;
对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
图7是根据一示例性实施例示出的一种用于两方横向联邦学习的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图7,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/ O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/ O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图8是本发明的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图3或图4所示的两方横向联邦学习方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种两方横向联邦学习方法、一种两方横向联邦学习装置和一种用于两方横向联邦学习的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种两方横向联邦学习方法,其特征在于,应用于参与方,所述方法用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述方法包括:
利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
基于加密协议对所述第二参数进行加密,得到参数密文;
将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
接收所述协同方返回的聚合参数;
基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
2.根据权利要求1所述的方法,其特征在于,所述利用本地数据集模拟至少两个虚拟参与方,包括:
对本地数据集分别进行N次随机采样,得到N个虚拟数据集,N为正整数,且N≥2;或者,
将本地数据集平均分为N份,得到N个虚拟数据集;
基于所述N个虚拟数据集构建N个虚拟参与方,每个虚拟参与方持有一个虚拟数据集。
3.根据权利要求1所述的方法,其特征在于,所述基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型,包括:
在每一轮训练中,基于所述聚合参数更新所述联邦学习模型的本地参数,并判断是否满足预设终止条件;
若确定满足预设终止条件,则结束训练,得到训练完成的联邦学习模型;
若确定不满足预设终止条件,则利用本地数据集重新模拟至少两个虚拟参与方,并利用重新模拟的至少两个虚拟参与方持有的虚拟数据集对更新后的联邦学习模型进行下一轮迭代训练。
4.根据权利要求1所述的方法,其特征在于,所述对各个虚拟参与方的第一参数进行聚合计算,得到第二参数,包括:
计算各个虚拟参与方的第一参数的平均值,得到第二参数。
5.一种两方横向联邦学习方法,其特征在于,应用于协同方,所述方法用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述方法包括:
接收两个参与方发送的参数密文;
对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
6.一种两方横向联邦学习装置,其特征在于,应用于参与方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置包括:
参与方模拟模块,用于利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
模型训练模块,用于利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
聚合计算模块,用于对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
加密计算模块,用于基于加密协议对所述第二参数进行加密,得到参数密文;
密文发送模块,用于将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
参数接收模块,用于接收所述协同方返回的聚合参数;
迭代更新模块,用于基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
7.一种两方横向联邦学习装置,其特征在于,应用于协同方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置包括:
密文接收模块,用于接收两个参与方发送的参数密文;
参数聚合模块,用于对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
参数发送模块,用于将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
8.一种用于两方横向联邦学习的装置,其特征在于,应用于参与方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
利用本地数据集模拟至少两个虚拟参与方,每个虚拟参与方持有虚拟数据集,所述虚拟数据集是所述参与方的本地数据集的子集;
利用所述至少两个虚拟参与方持有的虚拟数据集对所述联邦学习模型进行训练,得到每个虚拟参与方对应的第一参数;
对各个虚拟参与方的第一参数进行聚合计算,得到第二参数;
基于加密协议对所述第二参数进行加密,得到参数密文;
将所述参数密文发送至协同方,以使所述协同方对两个参与方的参数密文进行聚合计算得到聚合参数;
接收所述协同方返回的聚合参数;
基于所述聚合参数对所述联邦学习模型进行迭代更新,直至满足预设终止条件得到训练完成的联邦学习模型。
9.一种用于两方横向联邦学习的装置,其特征在于,应用于协同方,所述装置用于利用两个参与方的本地数据集对联邦学习模型进行迭代训练,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
接收两个参与方发送的参数密文;
对所述两个参与方的参数密文进行聚合计算,得到聚合参数;
将所述聚合参数分别发送至所述两个参与方,以使所述两个参与方分别利用所述聚合参数对所述联邦学习模型进行下一轮迭代训练。
10.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至5任一所述的两方横向联邦学习方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210755173.9A CN114881248B (zh) | 2022-06-30 | 2022-06-30 | 两方横向联邦学习方法和用于两方横向联邦学习的装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210755173.9A CN114881248B (zh) | 2022-06-30 | 2022-06-30 | 两方横向联邦学习方法和用于两方横向联邦学习的装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114881248A true CN114881248A (zh) | 2022-08-09 |
CN114881248B CN114881248B (zh) | 2022-09-27 |
Family
ID=82683477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210755173.9A Active CN114881248B (zh) | 2022-06-30 | 2022-06-30 | 两方横向联邦学习方法和用于两方横向联邦学习的装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114881248B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039702A (zh) * | 2020-08-31 | 2020-12-04 | 中诚信征信有限公司 | 基于联邦学习和相互学习的模型参数训练方法及装置 |
CN112329940A (zh) * | 2020-11-02 | 2021-02-05 | 北京邮电大学 | 一种结合联邦学习与用户画像的个性化模型训练方法及系统 |
CN113407963A (zh) * | 2021-06-17 | 2021-09-17 | 北京工业大学 | 基于signsgd的联邦学习梯度安全聚合方法 |
CN113505894A (zh) * | 2021-06-02 | 2021-10-15 | 北京航空航天大学 | 纵向联邦学习线性回归和逻辑回归模型训练方法及装置 |
WO2022089256A1 (zh) * | 2020-10-27 | 2022-05-05 | 腾讯科技(深圳)有限公司 | 联邦神经网络模型的训练方法、装置、设备、计算机程序产品及计算机可读存储介质 |
-
2022
- 2022-06-30 CN CN202210755173.9A patent/CN114881248B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039702A (zh) * | 2020-08-31 | 2020-12-04 | 中诚信征信有限公司 | 基于联邦学习和相互学习的模型参数训练方法及装置 |
WO2022089256A1 (zh) * | 2020-10-27 | 2022-05-05 | 腾讯科技(深圳)有限公司 | 联邦神经网络模型的训练方法、装置、设备、计算机程序产品及计算机可读存储介质 |
CN112329940A (zh) * | 2020-11-02 | 2021-02-05 | 北京邮电大学 | 一种结合联邦学习与用户画像的个性化模型训练方法及系统 |
CN113505894A (zh) * | 2021-06-02 | 2021-10-15 | 北京航空航天大学 | 纵向联邦学习线性回归和逻辑回归模型训练方法及装置 |
CN113407963A (zh) * | 2021-06-17 | 2021-09-17 | 北京工业大学 | 基于signsgd的联邦学习梯度安全聚合方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114881248B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9602516B2 (en) | Method, server and terminal device for establishing communication session | |
CN115396101B (zh) | 一种基于秘密分享的不经意打乱方法和系统 | |
CN115396100B (zh) | 一种基于秘密分享的不经意随机打乱方法和系统 | |
CN112688779B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN113014625B (zh) | 一种任务处理方法、装置和用于任务处理的装置 | |
CN114301594B (zh) | 一种不经意传输方法、多方安全计算平台和用于不经意传输的装置 | |
CN112241250B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN108053241B (zh) | 数据分析方法、装置及计算机可读存储介质 | |
CN114884645A (zh) | 一种隐私计算方法、装置和可读存储介质 | |
CN115085912A (zh) | 一种密文计算方法、装置和用于密文计算的装置 | |
CN115941181B (zh) | 一种乱序秘密分享方法、系统和可读存储介质 | |
CN112163046A (zh) | 基于区块链的设备数据存储方法、装置及系统 | |
CN114881248B (zh) | 两方横向联邦学习方法和用于两方横向联邦学习的装置 | |
CN115617897B (zh) | 一种数据类型转换方法和多方安全计算系统 | |
CN114448631B (zh) | 一种多方安全计算方法、系统和用于多方安全计算的装置 | |
CN114885038B (zh) | 一种加密协议转换方法、结果获取节点和隐私计算节点 | |
CN113779501B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN114662686A (zh) | 一种神经网络模型训练方法、装置和安全计算平台 | |
CN114996752A (zh) | 一种多方隐私求交方法、装置和用于多方隐私求交的装置 | |
CN112711744B (zh) | 一种计算任务的处理方法、装置和用于计算任务的处理装置 | |
CN113392421B (zh) | 一种数据处理方法、装置和用于数据处理的装置 | |
CN112463332A (zh) | 一种数据处理方法、密文计算系统和用于数据处理的装置 | |
CN114448630B (zh) | 一种多方安全计算方法、系统和用于多方安全计算的装置 | |
CN114969164B (zh) | 一种数据查询方法、装置和可读存储介质 | |
CN114721913B (zh) | 一种生成数据流图的方法、装置和用于生成数据流图的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |