CN112101555A - 多方联合训练模型的方法和装置 - Google Patents
多方联合训练模型的方法和装置 Download PDFInfo
- Publication number
- CN112101555A CN112101555A CN202011269090.6A CN202011269090A CN112101555A CN 112101555 A CN112101555 A CN 112101555A CN 202011269090 A CN202011269090 A CN 202011269090A CN 112101555 A CN112101555 A CN 112101555A
- Authority
- CN
- China
- Prior art keywords
- local
- momentum
- training
- model
- server
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书实施例提供一种多方联合训练模型的方法和装置,多方包括服务器和多个训练成员,方法由多个训练成员中的任一训练成员执行,方法包括多轮迭代更新,其中任意一轮迭代更新包括:利用从服务器获取的当前模型参数,更新本地的第一模型;根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;本方的超参数,根据本地的第一样本集合而确定;将更新的本地动量加密后得到本地的加密动量;向服务器发送本地的加密动量,以使服务器根据从多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据总动量,更新当前模型参数。能够在多方联合训练模型时加快训练速度。
Description
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及多方联合训练模型的方法和装置。
背景技术
随着人工智能技术的发展,可以基于多方的训练样本联合训练模型。在医疗、金融等领域,不同的企业或机构拥有不同的训练样本,一旦利用这些训练样本进行联合训练,将极大提升模型精度。然而这些训练样本包含大量的用户隐私和商业机密等隐私数据,一旦信息泄露,将导致不可挽回的负面影响。现有技术的多方联合训练模型的方法,虽然能够保护多方的隐私数据,但是训练速度慢。
因此,希望能有改进的方案,能够在多方联合训练模型时加快训练速度。
发明内容
本说明书一个或多个实施例描述了一种多方联合训练模型的方法和装置,能够在多方联合训练模型时加快训练速度。
第一方面,提供了一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述多个训练成员中的任一训练成员执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
利用从所述服务器获取的当前模型参数,更新本地的第一模型;
根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;将所述更新的本地动量加密后得到本地的加密动量;
向所述服务器发送本地的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。
在一种可能的实施方式中,所述根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量之前,所述方法还包括:
利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度;
将所述第一数目加密后得到第一加密数目;
向所述服务器发送本地的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;
从所述服务器接收所述总数目;
所述根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,包括:
根据本方的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中更新的本地动量。
在一种可能的实施方式中,所述多个训练成员分别具有的样本集合非独立同分布。
在一种可能的实施方式中,所述更新本地的第一模型之前,所述方法还包括:
利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
进一步地,所述对本地的第一模型进行预训练之前,所述方法还包括:
从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述对本地的第一模型进行预训练,包括:
对初始化后的本地的第一模型进行预训练。
在一种可能的实施方式中,所述超参数包括学习率和动量权重;所述确定本轮迭代中更新的本地动量,包括:
对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
在一种可能的实施方式中,所述将所述第一数目加密后得到第一加密数目,包括:
利用秘密共享或同态加密的方式,将所述第一数目加密后得到第一加密数目。
在一种可能的实施方式中,所述将所述更新的本地动量加密后得到本地的加密动量,包括:
利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
在一种可能的实施方式中,所述方法还包括:
当达到迭代终止条件时,结束所述多轮迭代更新。
第二方面,提供了一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述服务器执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
从所述多个训练成员分别接收各加密动量;所述加密动量为任一所述训练成员根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,将所述更新的本地动量加密后而得到;所述本方的超参数,为任一所述训练成员根据本地的第一样本集合而确定;
根据各加密动量,确定各更新的本地动量之和,得到总动量;
根据所述总动量,更新当前模型参数。
第三方面,提供了一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述多个训练成员中的任一训练成员执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
利用从所述服务器获取的当前模型参数,更新本地的第一模型;
利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度;
向所述服务器发送本方的超参数、第一数目和本地梯度,以使所述服务器根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;以及根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;对各训练成员的更新的本地动量求和,得到总动量,根据所述总动量,更新所述当前模型参数;所述本方的超参数,根据所述本地的第一样本集合而确定。
第四方面,提供了一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述服务器执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
从所述多个训练成员分别接收各自的本方的超参数、第一数目和本地梯度;所述本方的超参数为任一所述训练成员根据本地的第一样本集合而确定;所述本地梯度为任一所述训练成员利用本地的第一样本集合中第一数目个训练样本而确定;
根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;
根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;
对各训练成员的更新的本地动量求和,得到总动量;
根据所述总动量,更新当前模型参数。
第五方面,提供了一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
更新单元,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
动量确定单元,用于根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;
第一加密单元,用于将所述动量确定单元确定的更新的本地动量加密后得到本地的加密动量;
发送单元,用于向所述服务器发送本地的第一加密单元得到的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。
第六方面,提供了一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
接收单元,用于从所述多个训练成员分别接收各加密动量;所述加密动量为任一所述训练成员根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,将所述更新的本地动量加密后而得到;所述本方的超参数,为任一所述训练成员根据本地的第一样本集合而确定;
动量确定单元,用于根据所述接收单元接收的各加密动量,确定各更新的本地动量之和,得到总动量;
更新单元,用于根据所述动量确定单元确定的总动量,更新当前模型参数。
第七方面,提供了一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
更新单元,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
梯度确定单元,用于利用本地的第一样本集合中第一数目个训练样本,确定所述更新单元更新后的第一模型的本地梯度;
发送单元,用于向所述服务器发送本方的超参数、第一数目和所述梯度确定单元确定的本地梯度,以使所述服务器根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;以及根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;对各训练成员的更新的本地动量求和,得到总动量,根据所述总动量,更新所述当前模型参数;所述本方的超参数,根据所述本地的第一样本集合而确定。
第八方面,提供了一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
接收单元,用于从所述多个训练成员分别接收各自的本方的超参数、第一数目和本地梯度;所述本方的超参数为任一所述训练成员根据本地的第一样本集合而确定;所述本地梯度为任一所述训练成员利用本地的第一样本集合中第一数目个训练样本而确定;
数目确定单元,用于根据所述接收单元从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;
本地动量确定单元,用于根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述数目确定单元确定的总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;
总动量确定单元,用于对所述本地动量确定单元确定的各训练成员的更新的本地动量求和,得到总动量;
更新单元,用于根据所述总动量确定单元确定的总动量,更新当前模型参数。
第九方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一至四方面中任一方面的方法。
第十方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一至四方面中任一方面的方法。
通过本说明书实施例提供的方法和装置,多个训练成员中的任一训练成员首先利用从服务器获取的当前模型参数,更新本地的第一模型;然后根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;接着将所述更新的本地动量加密后得到本地的加密动量;再向所述服务器发送本地的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。由上可见,本说明书实施例中,采用了动量梯度下降的方式多方联合训练模型,并且各训练成员分别对应各自的超参数,该超参数是根据各训练成员本地的样本集合而确定,因此能够在多方联合训练模型时加快训练速度。还可以提高模型性能,和对非独立同分布数据集的适配能力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的多方联合训练模型的方法交互图;
图3示出根据另一个实施例的多方联合训练模型的方法交互图;
图4示出根据另一个实施例的多方联合训练模型的方法交互图;
图5示出根据一个实施例的多方联合训练模型的装置的示意性框图;
图6示出根据另一个实施例的多方联合训练模型的装置的示意性框图;
图7示出根据另一个实施例的多方联合训练模型的装置的示意性框图;
图8示出根据另一个实施例的多方联合训练模型的装置的示意性框图;
图9示出根据另一个实施例的多方联合训练模型的装置的示意性框图;
图10示出根据另一个实施例的多方联合训练模型的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及多方联合训练模型,所述多方包括服务器和多个训练成员,其中,各训练成员分别具有各自的样本集合,训练成员在服务器的协助下训练模型,训练成员各自具有的模型之间具有相同的模型结构。参照图1,服务器具有模型S,训练成员1具有模型A1和样本集合1,训练成员2具有模型A2和样本集合2,…,训练成员n具有模型An和样本集合n,其中,模型S、模型A1、模型A2、…、模型An具有相同的模型结构和模型参数。可以理解的是,出于隐私保护的目的,各训练成员之间不能交换样本集合,各训练成员将用于模型训练的中间参数传递给服务器,以使服务器对各中间参数进行参数聚合,从而实现在保护多方的隐私数据的前提下多方联合训练模型。
本说明书实施例,针对通常地多方联合训练模型时训练速度慢的问题,提出解决方案,以便能够在多方联合训练模型时加快训练速度。
图2示出根据一个实施例的多方联合训练模型的方法交互图,所述多方包括服务器和多个训练成员,该方法可以基于图1所示的实施场景。所述方法由所述多个训练成员中的任一训练成员和服务器交互执行,所述方法包括多轮迭代更新,该实施例中由各训练成员分别计算各自的本地动量,然后对本地动量加密后发送给服务器。如图2所示,该实施例中多方联合训练模型的方法其中任意一轮迭代更新包括以下步骤:
首先在步骤21,训练成员利用从服务器获取的当前模型参数,更新本地的第一模型。可以理解的是,模型训练的过程是一个多轮迭代过程,每一轮迭代开始时,训练成员均利用上一轮迭代后服务器得到的当前模型参数,更新本地的模型。
其中,第一模型具体可以为深度神经网络(deep neural network,DNN)模型,DNN是一种包含输入层、多个隐层和输出层的人工神经网络,网络中的每层都由多个独立的神经元组成,相邻两层的神经元之间互相连接,同一层的神经元之间没有连接,每一个连接对应一个权重参数,该权重参数可以称为模型参数。
在一个示例中,所述更新本地的第一模型之前,所述方法还包括:
利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
该示例中确定的超参数可以包括学习率和动量权重,用于后续该训练成员确定本轮迭代中更新的本地动量,以便采用动量梯度下降的方式更新模型参数。每个训练成员可采用不同的超参数,提高了对本地样本集合的个性化表征能力和模型性能。
进一步地,所述对本地的第一模型进行预训练之前,所述方法还包括:
从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述对本地的第一模型进行预训练,包括:
对初始化后的本地的第一模型进行预训练。
然后在步骤22,训练成员根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定。可以理解的是,该更新的本地动量不仅与本地梯度有关,还与前次迭代的本地动量有关,使梯度下降时的折返情况减轻,从而加快训练速度。
在一个示例中,所述根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量之前,所述方法还包括:
利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度;
将所述第一数目加密后得到第一加密数目;
向所述服务器发送本地的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;
从所述服务器接收所述总数目;
所述根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,包括:
根据本方的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中更新的本地动量。
在一个示例中,所述超参数包括学习率和动量权重;所述确定本轮迭代中更新的本地动量,包括:
对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
其中,i代表某一训练成员,Vi代表本地动量,βi代表动量权重,Ni代表第一数目,N代表总数目,αi代表学习率,Gi代表本地梯度。
接着在步骤23,训练成员将所述更新的本地动量加密后得到本地的加密动量。可以理解的是,该更新的本地动量对于其他训练成员和服务器是保密的。
在一个示例中,所述将所述更新的本地动量加密后得到本地的加密动量,包括:
利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
再在步骤24,训练成员向所述服务器发送本地的加密动量。可以理解的是,服务器可以对各训练成员分别发送的本地的加密动量进行汇总。
最后在步骤25,服务器从所述多个训练成员分别接收各加密动量,根据各加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新当前模型参数。可以理解的是,单个训练成员的更新的本地动量虽然是保密的,但是服务器根据各训练成员的加密动量,可以计算得到总动量,利用总动量,更新模型参数,可以达到有效利用多个训练成员各自的训练样本的目的。
在一个示例中,所述方法还包括:
当达到迭代终止条件时,结束所述多轮迭代更新。
可以理解的是,迭代终止条件可以为达到预设的迭代轮数,或者,预测损失小于预设的损失值。
通过本说明书实施例提供的方法和装置,多个训练成员中的任一训练成员首先利用从服务器获取的当前模型参数,更新本地的第一模型;然后根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;接着将所述更新的本地动量加密后得到本地的加密动量;再向所述服务器发送本地的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。由上可见,本说明书实施例中,采用了动量梯度下降的方式多方联合训练模型,并且各训练成员分别对应各自的超参数,该超参数是根据各训练成员本地的样本集合而确定,因此能够在多方联合训练模型时加快训练速度。还可以提高模型性能,和对非独立同分布数据集的适配能力。
图3示出根据另一个实施例的多方联合训练模型的方法交互图,所述多方包括服务器和多个训练成员,该方法可以基于图1所示的实施场景。所述方法由所述多个训练成员中的任一训练成员和服务器交互执行,所述方法包括多轮迭代更新,该实施例更为具体的描述了训练成员和服务器的交互过程。如图3所示,该实施例中多方联合训练模型的方法其中任意一轮迭代更新包括以下步骤:
首先在步骤31,训练成员利用从服务器获取的当前模型参数,更新本地的第一模型。可以理解的是,模型训练的过程是一个多轮迭代过程,每一轮迭代开始时,训练成员均利用上一轮迭代后服务器得到的当前模型参数,更新本地的模型。
其中,第一模型具体可以为深度神经网络(deep neural network,DNN)模型,DNN是一种包含输入层、多个隐层和输出层的人工神经网络,网络中的每层都由多个独立的神经元组成,相邻两层的神经元之间互相连接,同一层的神经元之间没有连接,每一个连接对应一个权重参数,该权重参数可以称为模型参数。
在一个示例中,所述更新本地的第一模型之前,所述方法还包括:
利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
该示例中确定的超参数可以包括学习率和动量权重,用于后续该训练成员确定本轮迭代中更新的本地动量,以便采用动量梯度下降的方式更新模型参数。每个训练成员可采用不同的超参数,提高了对本地样本集合的个性化表征能力和模型性能。
进一步地,所述对本地的第一模型进行预训练之前,所述方法还包括:
从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述对本地的第一模型进行预训练,包括:
对初始化后的本地的第一模型进行预训练。
然后在步骤32,训练成员利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度。可以理解的是,训练样本包括样本对象的样本特征和样本标签,可以采用通常的方式确定第一模型的本地梯度,例如,进行模型训练的前向传播,计算模型的预测损失,根据预测损失确定模型的本地梯度。
本说明书实施例中,各训练成员分别具有各自的第一样本集合,第一数目个训练样本为第一样本集合中的部分训练样本。第一数目不是一个预先设定的数值,可以由训练成员来确定本地的第一数目。例如,第一样本集合包括1000个训练样本,第一数目可以为50个或100个等。
在一个示例中,所述多个训练成员分别具有的样本集合非独立同分布。
该示例对应于一个典型的场景,在该场景下每个训练成员可采用不同的超参数和模型参数,提高了对本地样本集合的个性化表征能力和模型性能。举例来说,由于各训练成员的训练样本所对应的用户不同,用户所处地域不同,训练样本采集的时间窗口不同,因此在进行联合训练时,这些样本集合往往具有不同的特征分布或标签分布,特征之间并非相互独立,这类样本集合属于非独立同分布的数据集。以标签分布不均匀为例,假设共有十种类图片:飞机、汽车、鸟等,在多方进行联合训练时,某一训练成员只具有其中一种或几种类型的图片,比如训练成员1中只包含飞机图片,训练成员2中只包含汽车图片,依此类推。因此训练成员之间的样本标签分布是不均匀的。
接着在步骤33,训练成员将所述第一数目加密后得到第一加密数目。可以理解的是,该第一数目对于其他训练成员和服务器是保密的。
在一个示例中,所述将所述第一数目加密后得到第一加密数目,包括:
利用秘密共享或同态加密的方式,将所述第一数目加密后得到第一加密数目。
再在步骤34,训练成员向所述服务器发送本地的第一加密数目。可以理解的是,服务器可以对各训练成员分别发送的第一加密数目进行汇总。
再在步骤35,服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目。可以理解的是,单个训练成员的第一数目虽然是保密的,但是服务器根据各训练成员的第一加密数目,可以计算得到总数目。
接着在步骤36,服务器向所述多个训练成员分别发送所述总数目。可以理解的是,该总数目对于各训练成员不是保密的。
然后在步骤37,训练成员根据本方的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中更新的本地动量;所述本方的超参数,根据所述本地的第一样本集合而确定。可以理解的是,该更新的本地动量不仅与本地梯度有关,还与前次迭代的本地动量有关,使梯度下降时的折返情况减轻,从而加快训练速度。
在一个示例中,所述超参数包括学习率和动量权重;所述确定本轮迭代中更新的本地动量,包括:
对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
其中,i代表某一训练成员,Vi代表本地动量,βi代表动量权重,Ni代表第一数目,N代表总数目,αi代表学习率,Gi代表本地梯度。
再在步骤38,训练成员将所述更新的本地动量加密后得到本地的加密动量。可以理解的是,该更新的本地动量对于其他训练成员和服务器是保密的。
在一个示例中,所述将所述更新的本地动量加密后得到本地的加密动量,包括:
利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
再在步骤39,训练成员向所述服务器发送本地的加密动量。可以理解的是,服务器可以对各训练成员分别发送的本地的加密动量进行汇总。
最后在步骤310,服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。可以理解的是,单个训练成员的更新的本地动量虽然是保密的,但是服务器根据各训练成员的加密动量,可以计算得到总动量,利用总动量,更新模型参数,可以达到有效利用多个训练成员各自的训练样本的目的。
在一个示例中,所述方法还包括:
当达到迭代终止条件时,结束所述多轮迭代更新。
可以理解的是,迭代终止条件可以为达到预设的迭代轮数,或者,预测损失小于预设的损失值。
通过本说明书实施例提供的方法,多个训练成员中的任一训练成员首先利用从所述服务器获取的当前模型参数,更新本地的第一模型;然后利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度;接着将所述第一数目加密后得到第一加密数目;再向所述服务器发送本地的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;接着从所述服务器接收所述总数目;再根据本方的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中更新的本地动量;所述本方的超参数,根据所述本地的第一样本集合而确定;接着将所述更新的本地动量加密后得到本地的加密动量;再向所述服务器发送本地的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。由上可见,本说明书实施例中,采用了动量梯度下降的方式多方联合训练模型,并且各训练成员分别对应各自的超参数,该超参数是根据各训练成员本地的样本集合而确定,因此能够在多方联合训练模型时加快训练速度。
图4示出根据另一个实施例的多方联合训练模型的方法交互图,所述多方包括服务器和多个训练成员,该方法可以基于图1所示的实施场景。所述方法由所述多个训练成员中的任一训练成员和服务器交互执行,所述方法包括多轮迭代更新,该实施例中由服务器计算各训练成员分别对应的本地动量。如图4所示,该实施例中多方联合训练模型的方法其中任意一轮迭代更新包括以下步骤:
首先在步骤41,训练成员利用从服务器获取的当前模型参数,更新本地的第一模型。
然后在步骤42,训练成员利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度。
接着在步骤43,训练成员向所述服务器发送本方的超参数、第一数目和本地梯度;所述本方的超参数,根据所述本地的第一样本集合而确定。可以理解的是,本方的超参数、第一数目和本地梯度可以明文发送;或者,部分明文发送,部分密文发送,例如,本方的超参数和本地梯度通过明文发送,第一数目通过密文发送。
再在步骤44,服务器根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目。
再在步骤45,服务器根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量。可以理解的是,服务器可以获取各训练成员的明文的更新的本地动量。
最后在步骤46,服务器对各训练成员的更新的本地动量求和,得到总动量,根据所述总动量,更新所述当前模型参数。
通过本说明书实施例提供的方法,通过服务器计算各训练成员分别对应的更新的本地动量,由于这些更新的本地动量为明文的,因此可以减小后续服务器计算总动量的复杂度。
根据另一方面的实施例,还提供一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,该装置用于执行图2所示方法实施例中训练成员执行的动作,所述装置用于执行多轮迭代更新中任意一轮迭代更新。图5示出根据一个实施例的多方联合训练模型的装置的示意性框图。如图5所示,该装置500包括:
更新单元51,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
动量确定单元52,用于根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;
第一加密单元53,用于将所述动量确定单元52确定的更新的本地动量加密后得到本地的加密动量;
发送单元54,用于向所述服务器发送本地的第一加密单元53得到的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。
可选地,作为一个实施例,所述装置还包括:
梯度确定单元,用于在所述动量确定单元52根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量之前,利用本地的第一样本集合中第一数目个训练样本,确定所述更新单元更新后的第一模型的本地梯度;
第二加密单元,用于将所述第一数目加密后得到第一加密数目;
所述发送单元54,还用于向所述服务器发送本地的所述第二加密单元得到的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;
接收单元,用于从所述服务器接收所述总数目;
所述动量确定单元52,具体用于根据本方的超参数、前次迭代的本地动量、第一数目、所述接收单元接收的总数目和本地梯度,确定本轮迭代中更新的本地动量。
可选地,作为一个实施例,所述多个训练成员分别具有的样本集合非独立同分布。
可选地,作为一个实施例,所述装置还包括:
预训练单元,用于在所述更新单元51更新本地的第一模型之前,利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
进一步地,所述装置还包括:
初始化单元,用于在所述预训练单元对本地的第一模型进行预训练之前,从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述预训练单元,具体用于对所述初始化单元初始化后的本地的第一模型进行预训练。
进一步地,所述超参数包括学习率和动量权重;所述动量确定单元52,具体用于对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
进一步地,所述第二加密单元,具体用于利用秘密共享或同态加密的方式,将所述第一数目加密后得到第一加密数目。
可选地,作为一个实施例,所述第一加密单元53,具体用于利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
可选地,作为一个实施例,所述装置还包括:
结束单元,用于当达到迭代终止条件时,结束所述多轮迭代更新。
根据另一方面的实施例,还提供一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,该装置用于执行图2所示方法实施例中服务器执行的动作,所述装置用于执行多轮迭代更新中任意一轮迭代更新。图6示出根据另一个实施例的多方联合训练模型的装置的示意性框图。如图6所示,该装置600包括:
接收单元61,用于从所述多个训练成员分别接收各加密动量;所述加密动量为任一所述训练成员根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,将所述更新的本地动量加密后而得到;所述本方的超参数,为任一所述训练成员根据本地的第一样本集合而确定;
动量确定单元62,用于根据所述接收单元61接收的各加密动量,确定各更新的本地动量之和,得到总动量;
更新单元63,用于根据所述动量确定单元62确定的总动量,更新当前模型参数。根据另一方面的实施例,还提供一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,该装置用于执行图3所示方法实施例中训练成员执行的动作,所述装置用于执行多轮迭代更新中任意一轮迭代更新。图7示出根据一个实施例的多方联合训练模型的装置的示意性框图。如图7所示,该装置700包括:
更新单元71,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
梯度确定单元72,用于利用本地的第一样本集合中第一数目个训练样本,确定所述更新单元71更新后的第一模型的本地梯度;
第一加密单元73,用于将所述第一数目加密后得到第一加密数目;
发送单元74,用于向所述服务器发送本地的所述第一加密单元73得到的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;
接收单元75,用于从所述服务器接收所述总数目;
动量确定单元76,用于根据本方的超参数、前次迭代的本地动量、第一数目、所述接收单元75接收的总数目和本地梯度,确定本轮迭代中更新的本地动量;所述本方的超参数,根据所述本地的第一样本集合而确定;
第二加密单元77,用于将所述动量确定单元76确定的更新的本地动量加密后得到本地的加密动量;
所述发送单元74,还用于向所述服务器发送本地的第二加密单元77得到的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。
可选地,作为一个实施例,所述多个训练成员分别具有的样本集合非独立同分布。
可选地,作为一个实施例,所述装置还包括:
预训练单元,用于在所述更新单元71更新本地的第一模型之前,利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
进一步地,所述装置还包括:
初始化单元,用于在所述预训练单元对本地的第一模型进行预训练之前,从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述预训练单元,具体用于对所述初始化单元初始化后的本地的第一模型进行预训练。
可选地,作为一个实施例,所述超参数包括学习率和动量权重;所述动量确定单元76,具体用于对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
可选地,作为一个实施例,所述第一加密单元73,具体用于利用秘密共享或同态加密的方式,将所述第一数目加密后得到第一加密数目。
可选地,作为一个实施例,所述第二加密单元77,具体用于利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
可选地,作为一个实施例,所述装置还包括:
结束单元,用于当达到迭代终止条件时,结束所述多轮迭代更新。
根据另一方面的实施例,还提供一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,该装置用于执行图3所示方法实施例中服务器执行的动作,所述装置用于执行多轮迭代更新中任意一轮迭代更新。图8示出根据另一个实施例的多方联合训练模型的装置的示意性框图。如图8所示,该装置800包括:
接收单元81,用于从所述多个训练成员分别接收各第一加密数目,所述第一加密数目为任一所述训练成员将用于确定本地梯度的训练样本的第一数目加密后得到;
数目确定单元82,用于根据所述接收单元81接收的各第一加密数目,确定各第一数目之和,得到总数目;
发送单元83,用于向所述多个训练成员分别发送所述数目确定单元82确定的总数目;以使任一所述训练成员根据本方的超参数、前次迭代的本地动量、所述第一数目、所述总数目和本地梯度,确定本轮迭代中更新的本地动量,将所述更新的本地动量加密后得到加密动量;所述本方的超参数,根据本地的第一样本集合而确定;
所述接收单元81,还用于从所述多个训练成员分别接收各加密动量;
动量确定单元84,用于根据所述接收单元81接收的各加密动量,确定各更新的本地动量之和,得到总动量;
更新单元85,用于根据所述动量确定单元84确定的总动量,更新当前模型参数。
根据另一方面的实施例,还提供一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,该装置用于执行图4所示方法实施例中训练成员执行的动作,所述装置用于执行多轮迭代更新中任意一轮迭代更新。图9示出根据另一个实施例的多方联合训练模型的装置的示意性框图。如图9所示,该装置900包括:
更新单元91,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
梯度确定单元92,用于利用本地的第一样本集合中第一数目个训练样本,确定所述更新单元91更新后的第一模型的本地梯度;
发送单元93,用于向所述服务器发送本方的超参数、第一数目和所述梯度确定单元92确定的本地梯度,以使所述服务器根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;以及根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;对各训练成员的更新的本地动量求和,得到总动量,根据所述总动量,更新所述当前模型参数;所述本方的超参数,根据所述本地的第一样本集合而确定。
根据另一方面的实施例,还提供一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,该装置用于执行图4所示方法实施例中服务器执行的动作,所述装置用于执行多轮迭代更新中任意一轮迭代更新。图10示出根据另一个实施例的多方联合训练模型的装置的示意性框图。如图10所示,该装置1000包括:
接收单元101,用于从所述多个训练成员分别接收各自的本方的超参数、第一数目和本地梯度;所述本方的超参数为任一所述训练成员根据本地的第一样本集合而确定;所述本地梯度为任一所述训练成员利用本地的第一样本集合中第一数目个训练样本而确定;
数目确定单元102,用于根据所述接收单元101从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;
本地动量确定单元103,用于根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述数目确定单元102确定的总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;
总动量确定单元104,用于对所述本地动量确定单元103确定的各训练成员的更新的本地动量求和,得到总动量;
更新单元105,用于根据所述总动量确定单元104确定的总动量,更新当前模型参数。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2至4中任一所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2至4中任一所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (26)
1.一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述多个训练成员中的任一训练成员执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
利用从所述服务器获取的当前模型参数,更新本地的第一模型;
根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;将所述更新的本地动量加密后得到本地的加密动量;
向所述服务器发送本地的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。
2.如权利要求1所述的方法,其中,所述根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量之前,所述方法还包括:
利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度;
将所述第一数目加密后得到第一加密数目;
向所述服务器发送本地的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;
从所述服务器接收所述总数目;
所述根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,包括:
根据本方的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中更新的本地动量。
3.如权利要求1所述的方法,其中,所述多个训练成员分别具有的样本集合非独立同分布。
4.如权利要求1所述的方法,其中,所述更新本地的第一模型之前,所述方法还包括:
利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
5.如权利要求4所述的方法,其中,所述对本地的第一模型进行预训练之前,所述方法还包括:
从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述对本地的第一模型进行预训练,包括:
对初始化后的本地的第一模型进行预训练。
6.如权利要求2所述的方法,其中,所述超参数包括学习率和动量权重;所述确定本轮迭代中更新的本地动量,包括:
对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
7.如权利要求2所述的方法,其中,所述将所述第一数目加密后得到第一加密数目,包括:
利用秘密共享或同态加密的方式,将所述第一数目加密后得到第一加密数目。
8.如权利要求1所述的方法,其中,所述将所述更新的本地动量加密后得到本地的加密动量,包括:
利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
9.如权利要求1所述的方法,其中,所述方法还包括:
当达到迭代终止条件时,结束所述多轮迭代更新。
10.一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述服务器执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
从所述多个训练成员分别接收各加密动量;所述加密动量为任一所述训练成员根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,将所述更新的本地动量加密后而得到;所述本方的超参数,为任一所述训练成员根据本地的第一样本集合而确定;根据各加密动量,确定各更新的本地动量之和,得到总动量;
根据所述总动量,更新当前模型参数。
11.一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述多个训练成员中的任一训练成员执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
利用从所述服务器获取的当前模型参数,更新本地的第一模型;
利用本地的第一样本集合中第一数目个训练样本,确定所述第一模型的本地梯度;
向所述服务器发送本方的超参数、第一数目和本地梯度,以使所述服务器根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;以及根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;对各训练成员的更新的本地动量求和,得到总动量,根据所述总动量,更新所述当前模型参数;所述本方的超参数,根据所述本地的第一样本集合而确定。
12.一种多方联合训练模型的方法,所述多方包括服务器和多个训练成员,所述方法由所述服务器执行,所述方法包括多轮迭代更新,其中任意一轮迭代更新包括:
从所述多个训练成员分别接收各自的本方的超参数、第一数目和本地梯度;所述本方的超参数为任一所述训练成员根据本地的第一样本集合而确定;所述本地梯度为任一所述训练成员利用本地的第一样本集合中第一数目个训练样本而确定;
根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;
根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;
对各训练成员的更新的本地动量求和,得到总动量;
根据所述总动量,更新当前模型参数。
13.一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
更新单元,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
动量确定单元,用于根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量;所述本方的超参数,根据本地的第一样本集合而确定;
第一加密单元,用于将所述动量确定单元确定的更新的本地动量加密后得到本地的加密动量;
发送单元,用于向所述服务器发送本地的第一加密单元得到的加密动量,以使所述服务器根据从所述多个训练成员分别接收的加密动量,确定各更新的本地动量之和,得到总动量,根据所述总动量,更新所述当前模型参数。
14.如权利要求13所述的装置,其中,所述装置还包括:
梯度确定单元,用于在所述动量确定单元根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量之前,利用本地的第一样本集合中第一数目个训练样本,确定所述更新单元更新后的第一模型的本地梯度;
第二加密单元,用于将所述第一数目加密后得到第一加密数目;
所述发送单元,还用于向所述服务器发送本地的所述第二加密单元得到的第一加密数目,以使所述服务器根据从所述多个训练成员分别接收的第一加密数目,确定各第一数目之和,得到总数目;
接收单元,用于从所述服务器接收所述总数目;
所述动量确定单元,具体用于根据本方的超参数、前次迭代的本地动量、第一数目、所述接收单元接收的总数目和本地梯度,确定本轮迭代中更新的本地动量。
15.如权利要求13所述的装置,其中,所述多个训练成员分别具有的样本集合非独立同分布。
16.如权利要求13所述的装置,其中,所述装置还包括:
预训练单元,用于在所述更新单元更新本地的第一模型之前,利用本地的样本集合,对本地的第一模型进行预训练,得到所述本方的超参数。
17.如权利要求16所述的装置,其中,所述装置还包括:
初始化单元,用于在所述预训练单元对本地的第一模型进行预训练之前,从所述服务器接收初始模型参数,根据所述初始模型参数对本地的第一模型进行初始化;
所述预训练单元,具体用于对所述初始化单元初始化后的本地的第一模型进行预训练。
18.如权利要求14所述的装置,其中,所述超参数包括学习率和动量权重;所述动量确定单元,具体用于对所述前次迭代的本地动量和所述本地梯度加权求和,其中,所述前次迭代的本地动量的加权因子为所述动量权重,所述本地梯度的加权因子依赖于数目比例和所述学习率的乘积,所述数目比例为所述第一数目与所述总数目的比例。
19.如权利要求14所述的装置,其中,所述第二加密单元,具体用于利用秘密共享或同态加密的方式,将所述第一数目加密后得到第一加密数目。
20.如权利要求13所述的装置,其中,所述第一加密单元,具体用于利用秘密共享或同态加密的方式,将所述更新的本地动量加密后得到本地的加密动量。
21.如权利要求13所述的装置,其中,所述装置还包括:
结束单元,用于当达到迭代终止条件时,结束所述多轮迭代更新。
22.一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
接收单元,用于从所述多个训练成员分别接收各加密动量;所述加密动量为任一所述训练成员根据本方的超参数,对应于动量梯度下降的方式确定本轮迭代中更新的本地动量,将所述更新的本地动量加密后而得到;所述本方的超参数,为任一所述训练成员根据本地的第一样本集合而确定;
动量确定单元,用于根据所述接收单元接收的各加密动量,确定各更新的本地动量之和,得到总动量;
更新单元,用于根据所述动量确定单元确定的总动量,更新当前模型参数。
23.一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述多个训练成员中的任一训练成员,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
更新单元,用于利用从所述服务器获取的当前模型参数,更新本地的第一模型;
梯度确定单元,用于利用本地的第一样本集合中第一数目个训练样本,确定所述更新单元更新后的第一模型的本地梯度;
发送单元,用于向所述服务器发送本方的超参数、第一数目和所述梯度确定单元确定的本地梯度,以使所述服务器根据从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;以及根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;对各训练成员的更新的本地动量求和,得到总动量,根据所述总动量,更新所述当前模型参数;所述本方的超参数,根据所述本地的第一样本集合而确定。
24.一种多方联合训练模型的装置,所述多方包括服务器和多个训练成员,所述装置设置于所述服务器,所述装置用于执行多轮迭代更新中任意一轮迭代更新,包括:
接收单元,用于从所述多个训练成员分别接收各自的本方的超参数、第一数目和本地梯度;所述本方的超参数为任一所述训练成员根据本地的第一样本集合而确定;所述本地梯度为任一所述训练成员利用本地的第一样本集合中第一数目个训练样本而确定;
数目确定单元,用于根据所述接收单元从所述多个训练成员分别接收的第一数目,确定各第一数目之和,得到总数目;
本地动量确定单元,用于根据任一训练成员的超参数、前次迭代的本地动量、第一数目、所述数目确定单元确定的总数目和本地梯度,确定本轮迭代中该训练成员的更新的本地动量;
总动量确定单元,用于对所述本地动量确定单元确定的各训练成员的更新的本地动量求和,得到总动量;
更新单元,用于根据所述总动量确定单元确定的总动量,更新当前模型参数。
25.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。
26.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项的所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011269090.6A CN112101555A (zh) | 2020-11-13 | 2020-11-13 | 多方联合训练模型的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011269090.6A CN112101555A (zh) | 2020-11-13 | 2020-11-13 | 多方联合训练模型的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112101555A true CN112101555A (zh) | 2020-12-18 |
Family
ID=73784588
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011269090.6A Pending CN112101555A (zh) | 2020-11-13 | 2020-11-13 | 多方联合训练模型的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112101555A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288100A (zh) * | 2020-12-29 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
CN113902473A (zh) * | 2021-09-29 | 2022-01-07 | 支付宝(杭州)信息技术有限公司 | 业务预测系统的训练方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684855A (zh) * | 2018-12-17 | 2019-04-26 | 电子科技大学 | 一种基于隐私保护技术的联合深度学习训练方法 |
CN111445025A (zh) * | 2020-06-12 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 确定业务模型超参数的方法和装置 |
CN111611610A (zh) * | 2020-04-12 | 2020-09-01 | 西安电子科技大学 | 联邦学习信息处理方法、系统、存储介质、程序、终端 |
CN111737755A (zh) * | 2020-07-31 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 业务模型的联合训练方法及装置 |
-
2020
- 2020-11-13 CN CN202011269090.6A patent/CN112101555A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109684855A (zh) * | 2018-12-17 | 2019-04-26 | 电子科技大学 | 一种基于隐私保护技术的联合深度学习训练方法 |
CN111611610A (zh) * | 2020-04-12 | 2020-09-01 | 西安电子科技大学 | 联邦学习信息处理方法、系统、存储介质、程序、终端 |
CN111445025A (zh) * | 2020-06-12 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 确定业务模型超参数的方法和装置 |
CN111737755A (zh) * | 2020-07-31 | 2020-10-02 | 支付宝(杭州)信息技术有限公司 | 业务模型的联合训练方法及装置 |
Non-Patent Citations (1)
Title |
---|
WEI LIU等: "Accelerating Federated Learning via Momentum Gradient Descent", 《HTTPS://ARXIV.ORG/ABS/1910.03197》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288100A (zh) * | 2020-12-29 | 2021-01-29 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
CN112288100B (zh) * | 2020-12-29 | 2021-08-03 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
CN113902473A (zh) * | 2021-09-29 | 2022-01-07 | 支付宝(杭州)信息技术有限公司 | 业务预测系统的训练方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Phuong | Privacy-preserving deep learning via weight transmission | |
Zhang et al. | GELU-Net: A Globally Encrypted, Locally Unencrypted Deep Neural Network for Privacy-Preserved Learning. | |
CN111242290B (zh) | 一种轻量级隐私保护生成对抗网络系统 | |
CN113239404B (zh) | 一种基于差分隐私和混沌加密的联邦学习方法 | |
van Elsloo et al. | SEALion: A framework for neural network inference on encrypted data | |
CN111737755B (zh) | 业务模型的联合训练方法及装置 | |
CN113065145B (zh) | 一种基于秘密共享和随机扰动的隐私保护线性回归方法 | |
CN110751291A (zh) | 实现安全防御的多方联合训练神经网络的方法及装置 | |
Niu et al. | Toward verifiable and privacy preserving machine learning prediction | |
CN113077060A (zh) | 针对边云协同的联邦学习系统及方法 | |
CN113221105B (zh) | 一种基于部分参数聚合的鲁棒性联邦学习算法 | |
CN113435592A (zh) | 一种隐私保护的神经网络多方协作无损训练方法及系统 | |
CN113051586B (zh) | 联邦建模系统及方法、联邦模型预测方法、介质、设备 | |
CN112101555A (zh) | 多方联合训练模型的方法和装置 | |
CN115310121A (zh) | 车联网中基于MePC-F模型的实时强化联邦学习数据隐私安全方法 | |
Minelli | Fully homomorphic encryption for machine learning | |
Yang et al. | Lightweight privacy-preserving GAN framework for model training and image synthesis | |
CN117574429A (zh) | 一种边缘计算网络中隐私强化的联邦深度学习方法 | |
Zhang et al. | SecureTrain: An approximation-free and computationally efficient framework for privacy-preserved neural network training | |
Li et al. | FPCNN: A fast privacy-preserving outsourced convolutional neural network with low-bandwidth | |
Gad et al. | Joint Knowledge Distillation and Local Differential Privacy for Communication-Efficient Federated Learning in Heterogeneous Systems | |
CN115510472B (zh) | 一种面向云边聚合系统的多重差分隐私保护方法及系统 | |
CN116865938A (zh) | 基于秘密共享和同态加密的多服务器联邦学习方法 | |
Miyajima et al. | A proposal of profit sharing method for secure multiparty computation | |
CN116388954A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201218 |