CN112288100A - 一种基于联邦学习进行模型参数更新的方法、系统及装置 - Google Patents
一种基于联邦学习进行模型参数更新的方法、系统及装置 Download PDFInfo
- Publication number
- CN112288100A CN112288100A CN202011589914.8A CN202011589914A CN112288100A CN 112288100 A CN112288100 A CN 112288100A CN 202011589914 A CN202011589914 A CN 202011589914A CN 112288100 A CN112288100 A CN 112288100A
- Authority
- CN
- China
- Prior art keywords
- matrix
- training
- model
- operation value
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本说明书涉及一种基于联邦学习进行模型参数更新的方法、系统及装置,能够用于数据隐私保护。所述方法由参与方中的任一训练成员实现,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:获取与其他参与方具有相同结构的待训练模型;基于自身持有的训练样本及样本标签进行对所述待训练模型进行训练,获得梯度矩阵;至少基于所述梯度矩阵以及第一超参数计算第一运算值矩阵;基于所述梯度矩阵计算第二运算值矩阵;将所述第一运算值矩阵和第二运算值矩阵上传给所述服务器,以便服务器更新服务器端的待训练模型的模型参数;从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一轮迭代更新,或者基于此确定最终模型。
Description
技术领域
本说明书一个或多个实施例涉及多方数据联合处理,特别涉及一种基于联邦学习进行模型参数更新的方法、系统及装置。
背景技术
在数据分析、数据挖掘、经济预测等领域,机器学习模型可被用来分析、发现潜在的数据价值。由于单个数据拥有方持有的数据可能是不完整的,由此难以准确地刻画目标,为了得到更好的模型预测结果,通过多个数据拥有方的数据合作,来进行模型的联邦学习的方式得到了广泛的使用。在采用联邦学习进行模型训练的过程中,期望多方持有的数据集均是相同分布的。但是,在实际情况中,各方持有的数据集的数据分布有较大的差异,这使得采用联邦学习进行模型训练时,模型训练过程容易受分布不均的数据的影响而产生偏差,进而影响模型训练的效率。
因此,有必要提出一种方案提高联邦学习过程中模型训练的效率。
发明内容
本说明书一个方面提供一种基于联邦学习进行模型参数更新的方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:获取与其他参与方具有相同结构的待训练模型;基于自身持有的训练样本及样本标签进行对所述待训练模型进行训练,获得梯度矩阵;至少基于所述梯度矩阵以及第一超参数计算第一运算值矩阵;基于所述梯度矩阵计算第二运算值矩阵;将所述第一运算值矩阵和第二运算值矩阵上传给所述服务器,以便服务器更新服务器端的待训练模型的模型参数;从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一轮迭代更新,或者基于此确定最终模型。
本说明书另一个方面提供一种基于联邦学习进行模型参数更新的系统,所述系统布置在参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:待训练模型获取模块:用于获取与其他参与方具有相同结构的待训练模型;梯度矩阵获取模块:用于基于自身持有的训练样本及样本标签进行对所述待训练模型进行训练,获得梯度矩阵;第一运算值矩阵计算模块:用于至少基于所述梯度矩阵以及第一超参数计算第一运算值矩阵;第二运算值矩阵计算模块:用于基于所述梯度矩阵计算第二运算值矩阵;矩阵传输模块:用于将所述第一运算值矩阵和第二运算值矩阵上传给所述服务器,以便服务器更新服务器端的待训练模型的模型参数;模型更新模块:用于从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一轮迭代更新,或者基于此确定最终模型。
本说明书另一个方面提供一种基于联邦学习进行模型参数更新的装置,所述装置设置在参与方中的任一训练成员处,包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于联邦学习进行模型参数更新的操作。
本说明书另一个方面提供一种基于联邦学习进行模型参数更新的方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器;所述方法包括多轮模型参数迭代更新,其中一轮迭代更新包括:获取当前轮迭代的全局梯度累积系数;获取各训练成员上传的第一运算值矩阵和第二运算值矩阵;基于各第一运算值矩阵得到第一运算值聚合矩阵;基于各第二运算值矩阵和所述全局梯度累积系数更新第二运算值聚合矩阵;基于所述第一运算值聚合矩阵以及所述第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量;基于各个调参增量调整当前轮迭代的待训练模型的各模型参数。
本说明书另一个方面提供一种基于联邦学习进行模型参数更新的系统,所述系统布置在参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:全局梯度累积系数获取模块:用于获取当前轮迭代的全局梯度累积系数;运算值矩阵获取模块:用于获取各训练成员上传的第一运算值矩阵和第二运算值矩阵;第一运算值聚合矩阵获取模块:用于基于各第一运算值矩阵得到第一运算值聚合矩阵;第二运算值聚合矩阵更新模块:用于基于各第二运算值矩阵和所述全局梯度累积系数更新第二运算值聚合矩阵;调参增量获取模块:用于基于所述第一运算值聚合矩阵以及所述第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量;模型参数更新模块:用于基于各个调参增量调整当前轮迭代的待训练模型的各模型参数。
本说明书另一个方面提供一种基于联邦学习进行模型参数更新的装置,所述装置设置在参与方中的服务器处,包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现所述基于联邦学习进行模型参数更新的操作。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1为根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性应用场景图;
图2是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图;
图3是根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性流程图;
图4是根据本说明书另一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图;
图5是根据本说明书的另一些实施例所示的基于联邦学习进行模型参数更新的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
经济、文化、教育、医疗、公共管理等各行各业拥有大量的信息数据,对其进行例如数据分析、数据挖掘、以及趋势预测等的数据处理分析在越来越多场景中得到广泛应用。其中,通过数据合作的方式可以使多个数据拥有方获得更好的数据处理结果。例如,可以通过多方共享学习来获得更为准确的机器学习模型。
在一些实施例中,基于多方共享学习的方法可以应用于在保证各方数据安全的情况下,各方协同训练机器学习模型供多方使用的场景。在这个场景中,多个数据方拥有自己的数据,他们想共同使用彼此的数据来统一建模(例如,分类模型、线性回归模型、逻辑回归模型等),但并不想各自的数据(尤其是隐私数据)被泄露。例如,互联网储蓄机构A拥有一批用户数据,银行B拥有另一批用户数据,基于A和B的用户数据确定的训练样本集可以训练得到性能更好的机器学习模型。A和B都愿意通过彼此的用户数据共同参与模型训练,但因为一些原因A和B不愿意自己的用户数据信息遭到泄露,或者至少不愿意让对方知道自己的用户数据信息。
在一些实施例中,可以采用联邦学习的方法进行多方共享学习。联邦学习(Federated Learning)可以在多参与方或多计算结点之间开展高效率的机器学习。联邦学习可以使得多方数据在训练样本不出本地的情况下进行模型训练,只传递训练得到的梯度,这使得各方持有的训练样本的隐私性得到了保护。
在一些实施例中,在联邦学习的训练中各数据方的训练数据可能存在不同的数据分布(如特征分布、标签分布、图数据分布等分布不同),在服务器方基于各数据方的训练数据(如梯度信息)对模型参数采用随机梯度下降法(stochastic gradient descent,SGD)进行更新时,由于数据分布不同,梯度下降的方向不同,从而会降低整体模型的收敛速度。具体而言,训练成员计算的梯度并不是每次迭代都向着整体最优化方向,从而导致损失函数收敛速度低,模型训练效率不高,训练时间长。
在本说明书的一些实施例中,可以采用RMSProp算法进行联邦学习模型训练。RMSProp算法是一种利用梯度平方动量更新模型参数的算法。下式1、2所示为RMSProp算法所使用公式,式中,本别表示第s轮模型参数更新涉及的梯度平方动量(可以类比于下文的第二运算值矩阵或者第二运算值聚合矩阵中的元素)、梯度矩阵以及模型参数矩阵中的元素;本别表示第s-1轮计算的梯度平方动量矩阵、梯度矩阵以及模型参数矩阵中的元素,为超参数。
式1和式2分别表示了梯度平方动量、模型参数的更新过程。更为一般的,第s轮梯度平方动量矩阵基于梯度的元素平方矩阵以及上一轮计算的梯度平方动量矩阵进行累加得到的。如式2所示,RMSProp算法在更新模型参数时,基于梯度平方动量以及梯度计算调参增量,再基于调参增量乘以学习率以进行模型更新。在一些实施例中,也可以视为调参增量。
在本说明书的一些实施例中,各训练成员可以基于梯度矩阵计算第一运算值矩阵和第二运算值矩阵,并将其上传给所述服务器;服务器基于各训练成员上传的第一运算值矩阵进行矩阵求和得到第一运算值聚合矩阵;基于各训练成员上传的第二运算值矩阵进行矩阵求和得到第二运算值聚合矩阵;进而计算调参增量,其中,第一运算值矩阵中的元素与梯度矩阵中的元素相关,第二运算值矩阵中的元素与梯度矩阵中的元素的平方相关。
在计算调参增量时,使用第一运算值聚合矩阵的元素(与梯度矩阵中的元素相关)除以累积的第二运算值聚合矩阵(与梯度矩阵中的元素的平方和相关)的平方根,可以使得更新幅度变小。在梯度偏差较大时,调参增量不会受梯度的影响而产生较大摆动,从而提高了模型训练收敛的速度。
图1为根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性应用场景图。
需要注意的是,图1仅作为示例性的说明,图1中训练成员的数量可以为两方,在其他实施例中,还可以包括第三方训练成员、第四方训练成员以至第N方训练成员等。
在一些实施例中,基于联邦学习进行模型参数更新的系统100包括第一方110、第二方120、第三方130以及网络140。其中,第一方110可以理解为第一训练成员,包括处理设备110-1,存储设备110-2;第二方120可以理解为第二训练成员,包括处理设备120-1,存储设备120-2;第三方130包括处理设备130-1,存储设备130-2。在一些实施例中,第三方130可以是训练成员,包含训练的样本和数据。在另一些实施例中,第三方130也可以是公共服务器,不包含训练的样本和数据,主要基于各训练成员提供的模型数据(如第一运算值矩阵和第二运算值矩阵)进行模型参数更新和数据存储。
第一方110、第二方120均可以是带有数据获取、存储和/或发送功能的设备。在一些实施例中,第一方110、第二方120可以包括但不限于移动设备、平板电脑、笔记本电脑、台式电脑等或其任意组合。在一些实施例中,第一方110和第二方120可以接收来自第三方130的相关数据。例如,第一方110可以接收来自第三方的待训练模型。又例如,第一方110和第二方120可以从第三方130处接收更新后的模型参数。
第一方和第二方的处理设备110-1和120-1可以进行数据和/或指令处理。处理设备110-1和120-1可以对数据进行计算,也可以执行相关算法和/或指令。例如,第一方110的处理设备110-1可以基于自身持有的训练样本对待训练模型进行训练,并基于训练得到的模型数据矩阵生成第一运算值矩阵和第二运算值矩阵。
第一方和第二方的存储设备110-2和120-2可以存储对应处理设备110-1和120-1执行使用的数据和/或指令,处理设备110-1和120-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。存储设备110-2和120-2可以分别用于存储训练样本;也可以存储指示第一方和第二方执行操作的相关指令。存储设备110-2和120-2还可以分别存储经处理设备110-1和120-1处理后数据。例如,存储设备110-2和120-2还可以分别存储当前次迭代对应的模型参数矩阵。又例如,存储设备110-2和120-2还可以分别存储当前次迭代生成的第一运算值矩阵和第二运算值矩阵。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
第三方130可以是带有数据获取、存储和/或发送功能的设备,例如,云端服务器,终端处理设备等。在一些实施例中,第三方130可以接收来自第一方110和第二方120的相关数据。例如,第三方130可以接收来自第一方110的第一运算值矩阵和第二运算值矩阵。
第三方的存储设备130-2可以存储处理设备130-1执行使用的数据和/或指令,处理设备130-1可以通过执行或使用所述数据和/或指令以实现本说明书中的示例性方法。例如,处理设备130-1可以基于各训练成员的第一运算值矩阵和第二运算值矩阵计算第一运算值聚合矩阵和第二运算值聚合矩阵。又例如,处理设备130-1可以基于第一运算值聚合矩阵以及第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量,进而调整当前轮迭代的待训练模型的各模型参数。存储设备130-2可以用于存储模型参数;也可以存储指示第一方和第二方执行操作的相关指令。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络140可以促进信息和/或数据的交换。在一些实施例中,模型训练的系统100(例如,第一方110、第二方120和第三方130)的一个或以上部件可以经由网络140向所述系统100中的其他有数据传输需求的部件发送信息和/或数据。例如,第二方120的处理设备120-1可以经由网络140从第三方130中获得更新后的模型参数。又例如,第三方130的处理设备130-1可以通过网络140从第一方110的存储设备110-2中获取第一运算值矩阵和第二运算值矩阵。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
图2是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图。
在一些实施例中,系统200布置在参与方中的任一训练成员上,其中,参与方包括多个训练成员以及服务器,系统200包括待训练模型获取模块210、梯度矩阵获取模块220、第一运算值矩阵计算模块230、第二运算值矩阵计算模块240、矩阵传输模块250以及模型更新模块260。
待训练模型获取模块210,用于获取与其他参与方具有相同结构的待训练模型。
梯度矩阵获取模块220,用于基于自身持有的训练样本及样本标签进行对待训练模型进行训练,获得梯度矩阵。
第一运算值矩阵计算模块230,用于至少基于梯度矩阵以及第一超参数计算第一运算值矩阵。
第二运算值矩阵计算模块240,用于基于梯度矩阵计算第二运算值矩阵。
矩阵传输模块250,用于将第一运算值矩阵和第二运算值矩阵上传给服务器,以便服务器更新服务器端的待训练模型的模型参数。
模型更新模块260,用于从服务器获取更新后的模型参数以将其作为待训练模型进行下一轮迭代更新,或者基于此确定最终模型。
在一些实施例中,待训练模型获取模块210还用于基于自身持有的训练样本及样本标签独立进行多轮模型训练以确定包括第一超参数在内的一个或多个超参数。
在一些实施例中,第一运算值矩阵为当前轮迭代的训练样本数量、第一超参数以及梯度矩阵的乘积;第二运算值矩阵的元素为梯度矩阵中对应元素的平方值。
在一些实施例中,系统200还包括第三运算值确定模块270。第三运算值确定模块270用于基于第二超参数和所述训练成员当前轮迭代的训练样本数量计算第三运算值,并将第三运算值以及训练样本数量上传给服务器。
在一些实施例中,第一运算值矩阵、第二运算值矩阵、第三运算值以及训练样本数量分别以密文的形式上传给服务器。
在一些实施例中,第三运算值为第二超参数和当前轮迭代的训练样本数量的乘积。
在一些实施例中,第一超参数为学习率,第二超参数为梯度累积系数。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
在本说明书中,约定按以下方式表示:
对于联邦学习模型训练,包括参与方,参与方包括至少一个服务器和k个训练成员,训练成员是指参与联邦学习模型训练的数据持有者。服务器将待训练模型下发给多个训练成员,多个训练成员基于接收的待训练模型和自身持有的训练样本及样本标签展开计算并训练,以得到训练后的梯度矩阵(例如经过一个batch的训练样本训练后得到梯度矩阵,一个batch的训练样本可以包括多条训练样本,仅作为示例,100条)。然后多个训练成员再基于梯度矩阵分别更新第一运算值矩阵和第二运算值矩阵,并将第一运算值矩阵和第二运算值矩阵上传至服务器,使得服务器可以基于此更新待训练模型。之后服务器可以将更新后的模型参数下发给各训练成员,训练成员利用自身持有的训练数据再次进行模型训练,如此经过多轮迭代,最终各参与方可以获得训练好的模型。
对于联邦学习模型训练任意一个训练成员f(f可以是训练成员{1,2,3…k}中的任意一个),其持有的样本数据(特征)集为X f ,样本数据的标签为y f 。训练成员f所计算的梯度矩阵为G f ,第一运算值矩阵为V f , 第二运算值矩阵为S f 。在一些实施例中,训练成员f还持有模型训练所需的超参数。在一些实施例中,训练成员f持有第一超参数、第二超参数,以进行模型更新。
在本说明书中,如无特殊说明,各参数的上角标均表示迭代轮次。以第s轮模型训练为例,训练成员f的第s轮迭代对应的模型参数矩阵为Ws,训练过程中对应的模型梯度矩阵为,对应的第一运算值矩阵为,第二运算值矩阵为。有关梯度矩阵,第一运算值矩阵, 第二运算值矩阵的详细说明可以参见图3的相关说明。
对任一变量X,〈X〉 表示对X加密。当X是一个矩阵时,表示对矩阵的每个元素加密。如无进一步说明,加密可指任何加密方法。对于矩阵来说,可以使用其矩阵符号的小写字母表示矩阵中的元素。
图3是根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性流程图。在一些实施例中,流程300可以由任一训练成员执行。例如,流程300可以由训练成员(如第一方110的处理设备)执行。又例如,流程300可以进一步由设置于训练成员处的系统200实现。
步骤310,获取与其他参与方具有相同结构的待训练模型。在一些实施例中,步骤310由待训练模型获取模块210执行。
待训练模型获取模块210可以从服务器端获得每轮迭代更新的待训练模型。在进行第一轮迭代更新时,待训练模型获取模块210可以从服务器端获得初始模型或者基于与其他参与方约定或共识确定的模型结构,自行生成与其他参与方结构相同的初始模型。
在一些实施例中,待训练模型获取模块210还可以从服务器获取或者与其他参与方约定与模型训练相关的超参数。具体地,对训练成员f而言(训练成员f可以是训练成员集合{1,2,3…k}中的任意一个),可以基于待训练模型获取模块210获取对应的第一超参数、第二超参数。
在一些实施例中,各个训练成员超参数可以是相同的,即各训练成员1,2,3…k可以采用相同的第一超参数、第二超参数以进行后续训练。
在一些实施例中,各个训练成员的超参数可以是不同设置的,以满足不同训练成员对超参数的个性化需求。在该场景的实施例中,不同训练成员可以基于自身持有的训练样本的样本分布和训练数据特征,合理地设置各自持有的超参数。
在一些实施例中,各训练成员可以基于自身持有的训练样本及样本标签独立进行多轮模型训练以确定包括所述第一超参数在内的一个或多个超参数。在该场景的实施例中,第一超参数可以为学习率,第二超参数可以为梯度累积系数。以训练成员f为例进行示例性说明。
训练成员f可以基于持有的训练样本集X f 独立进行多轮预训练,从而获得调试好的超参数。具体地,可以将训练样本集X f 分为训练集T f 和测试集D f ,采用搜索算法(如暴力搜索、网格搜索、贝叶斯搜索等参数搜索算法)获取多个第一超参数和第二超参数,基于训练集T f 以及获取的多个第一超参数和二阶矩系进行训练后得到多个训练好的模型,进而基于测试集D f 对多个模型进行评价。在一些实施例中,可以基于测试集D f 对获取对应模型的性能评价指标(如错误率、精度、查准率、查全率、AUC、ROC等),而后选择模型性能评价指标最优的模型对应的第一超参数和第二超参数作为调试获得的超参数。显然,由于各个训练成员所持有的训练样本不同,各个训练成员经过预训练所获得的第一超参数和第二超参数是不同的。采用预训练的方式获得调试好的第一超参数和第二超参数,可以使得各训练成员得到更适配于本地样本集的超参数,提高模型的训练效率。
在一些实施例中,各训练成员所持有的超参数也可以是随着迭代轮数进行变换的(如服务器每轮均下发一个新一轮对应的超参数)。具体地,第1轮迭代训练成员f所持有的第一超参数、第二超参数,…,第s轮迭代训练成员f所持有的第一超参数、第二超参数(上角标表示对应的迭代轮次)。
步骤320,基于自身持有的训练样本及样本标签对所述待训练模型进行训练,获得梯度矩阵。
在一些实施例中,步骤320可以由梯度矩阵获取模块220执行。
首先,假设当前轮迭代(s轮)训练成员f可以获取训练样本集中一个batch的样本数据。batch指的是一轮训练对应的样本集合,其对应的样本数量可以用表示。示例性地,可以为100,200,300等。不难理解,不同训练成员的训练的样本数量可以相同,也可以不同;或者同一训练成员在不同迭代轮次中的样本数量可以相同,也可以不同。
在一些实施例中,对于任一训练样本,训练成员f可以基于待训练模型Ws对训练样本中的特征数据进行处理,进行前向传播,得到预测标签。之后,根据计算得到的预测标签,以及训练成员f持有的训练数据中的标签y f 之间的误差,计算得到损失函数,进而利用反向传播算法得到梯度。其中,反向传播是指误差通过输出层,向隐层、输入层逐层反传,依次确定各层的模型参数的修正值(或梯度值)。其中,梯度矩阵包含训练得到的多个梯度元素,梯度矩阵的梯度元素与模型参数一一对应,每个梯度元素反映模型参数的修正方向(增加或减小)以及修正量。
步骤330,至少基于所述梯度矩阵以及第一超参数计算第一运算值矩阵。
在一些实施例中,步骤330由第一运算值矩阵计算模块230执行。
采用式(4)进行计算可以理解为将赋予了一个与样本数量有关的权重。可以理解,当训练成员f参与训练的训练样本数量越大时,其对模型参数的更新更重要,对应上传的第一运算值矩阵中各元素的值也越重要。采用这种设计方式可以使得每次迭代中提供训练样本更多的训练成员上传的第一运算值矩阵中各元素的值更大,进而提高模型的准确性。
步骤340,基于所述梯度矩阵计算第二运算值矩阵。
在一些实施例中,步骤340由第二运算值矩阵计算模块240执行。
步骤350,将所述第一运算值矩阵和第二运算值矩阵上传给所述服务器。
在一些实施例中,步骤350由矩阵传输模块250执行。
矩阵传输模块250可以将获得的第一运算值矩阵以及第二运算值矩阵上传给服务器。服务器进而基于各训练成员上传的第一运算值矩阵和第二运算值矩阵更新模型参数。有关服务器更新模型参数的相关说明可参见图5的描述,此处不再赘述。
可选的,流程300还可以包括步骤355,基于第二超参数和所述训练成员当前轮迭代的训练样本数量计算第三运算值,并将所述第三运算值以及所述训练样本数量上传给服务器。在一些实施例中,步骤355由第三运算值确定模块270完成。
在一些实施例中,第三运算值确定模块270还可以基于第二超参数和所述训练成员当前轮迭代的训练样本数量计算第三运算值。具体地,训练成员f可以以第二超参数和当前轮迭代的训练样本数量的乘积作为第三运算值,并将第三运算值以及训练样本数量上传给服务器。第三运算值可以采用如下式(6)进行计算:
步骤360,从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一次训练,或者基于此确定最终模型。
在一些实施例中,步骤360由模型更新模块260执行。
在一些实施例中,模型更新模块260可以判断是否需要继续进行下一次迭代(即是否进行s+1轮迭代)。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到来自服务器的终止训练的指示。若确定需要进行下一次迭代,训练成员则可基于当前次迭代过程中从服务器获取的更新后的模型进行下一次迭代。换句话说,训练成员将在下一次迭代中将当前次迭代中从服务器获取的更新后的模型作为待训练模型。若确定不需要进行下一次迭代,训练成员则可将当前次迭代过程中从服务器获取的更新后的模型作为最终模型。
需要说明的是,步骤310~360是以训练成员f为例对第s轮模型迭代过程进行示例性说明。对于模型的任意其他迭代轮次,如第一轮、第二轮、…、第N轮,训练成员f均可使用如步骤310~360中的相同的方式进行实现,在此不再赘述。进一步地,上述一个或多个实施例中,训练成员f可以是训练成员{1,2,3…k}中的任意一个,其训练成员可以采用如步骤310~350类似的方法执行以参与当前模型迭代更新。
在一些实施例中,训练成员f所传输的第一运算值矩阵、第二运算值矩阵、第三运算值以及训练样本数量均可以是密态的。在该场景的实施例中,训练成员f可以对一运算值矩阵、第二运算值矩阵、第三运算值以及训练样本数量进行加密,得到密文形式上述数据。例如,训练成员f对第一运算值矩阵进行加密,得到密态的第一运算值矩阵〈〉。
在一些实施例中,加密可以包括但不限于秘密分享、同态加密以及差分加密等方式。服务器接收到密态的第二运算值矩阵后进行解密,进而更新模型。有关服务器对密态数据进行解密的更多说明可参见图5的相应描述,此处不再赘述。
图4是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图。
在一些实施例中,系统400布置在参与方中的服务器上,其中,参与方包括多个训练成员以及服务器。系统400可以包括全局梯度累积系数获取模块410,运算值矩阵获取模块420,第一运算值聚合矩阵获取模块430,第二运算值聚合矩阵更新模块440,调参增量获取模块450,以及模型参数更新模块460,其中:
全局梯度累积系数获取模块410,用于获取当前轮迭代的全局梯度累积系数;
运算值矩阵获取模块420,用于获取各训练成员上传的第一运算值矩阵和第二运算值矩阵;
第一运算值聚合矩阵获取模块430,用于基于各第一运算值矩阵得到第一运算值聚合矩阵;
第二运算值聚合矩阵更新模块440,用于基于各第二运算值矩阵和全局梯度累积系数更新第二运算值聚合矩阵;
调参增量获取模块450,用于基于第一运算值聚合矩阵以及第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量;
模型参数更新模块460,用于基于各个调参增量调整当前轮迭代的待训练模型的各模型参数。
在一些实施例中,训练成员上传的第一运算值矩阵为该训练成员的当前轮迭代的训练样本数量、第一超参数以及梯度矩阵的乘积;训练成员上传的第二运算值矩阵的元素为该训练成员的当前轮迭代的梯度矩阵中对应元素的平方值。
在一些实施例中,全局梯度累积系数获取模块410还用于,接收各训练成员上传的当前轮迭代的训练样本数量以及第三运算值;以及基于各确定训练成员上传的当前轮迭代的训练样本数量确定样本总数。在该场景的实施例中,全局梯度累积系数获取模块410还用于,基于样本总数以及各训练成员的第三运算值计算全局梯度累积系数。
在一些实施例中,训练成员的第三运算值为训练成员的第二超参数和当前轮迭代的训练样本数量计算得到,全局梯度累积系数为各训练成员的第三运算值之和除以样本总数。
在一些实施例中,训练成员的第三运算值为训练成员的第二超参数和当前轮迭代的训练样本数量的乘积;第一超参数为学习率,第二超参数为梯度累积系数。
在一些实施例中,各训练成员上传给服务器的第一运算值矩阵、第二运算值矩阵、第三运算值以及训练样本数量分别以密文的形式传输。
在一些实施例中,第二运算值聚合矩阵更新模块440还用于:计算各第二运算值矩阵的和矩阵;基于全局梯度累积系数计算前一轮次迭代的第二运算值聚合矩阵与和矩阵的加权和,得到更新后的第二运算值聚合矩阵。
在一些实施例中,调参增量获取模块450基于如下公式(14)计算调参增量:
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
图5是根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性流程图。在一些实施例中,流程500可以由服务器多次执行,以完成模型参数的多次迭代更新。进一步地,流程500可以由设置于服务器处的系统400实现。
步骤510,获取当前轮迭代的全局梯度累积系数。
在一些实施例中,步骤510可以由全局梯度累积系数获取模块410执行。
在一些实施例中,训练成员1,2,…,k对应的第二超参数可以是不同的。在该场景的实施例中,全局梯度累积系数获取模块410可以将各训练成员的第二超参数的均值确定为全局梯度累积系数。具体地,可以按下式(7)进行计算:
其中,i是训练成员1,2,…,k中的任意一个。
在一些实施例中,全局梯度累积系数获取模块410还可以接收各训练成员上传的当前轮迭代的训练样本数量以及第三运算值;以及基于各确定训练成员上传的当前轮迭代的训练样本数量确定样本总数。进一步地,全局梯度累积系数获取模块410可以基于样本总数以及各训练成员的第三运算值计算全局梯度累积系数。全局梯度累积系数获取模块410可以获取训练成员i上传的训练样本数量以及第三运算值(i为训练成员 1,2,…,k中的任意一个)。全局梯度累积系数获取模块410进而基于各训练成员上传的训练样本数量计算训练样本总数N;并进一步计算全局梯度累积系数。具体地,可以按式(8)计算训练样本总数N;可以按式(9)计算计算全局梯度累积系数:
由于第三运算值是基于各训练成员基于第二超参数和当前轮迭代的训练样本数量的乘积计算得到的(可见式6,)。可以理解,该场景的实施例中,全局梯度累积系数获取模块410实际上是以各训练成员训练样本数量与训练样本总数N之比为权重系数,对各训练成员对应的第二超参数进行加权求和,以得到全局梯度累积系数。通过这样的设置,可以使得本轮迭代训练样本数量较大的训练成员具有较大的权重系数,占据更大的权重比例,进而提高全局梯度累积系数的准确性。
需要说明的是,本领域技术人员可以在知悉本说明书原理的基础上对本说明书的方案进行相应的变化。例如,服务器还可以不考虑训练成员的第二超参数独立设置自身的全局梯度累积系数。又例如,可以改变权重设置的方式(如可以基于训练成员的运算次数(计算量)等具体地设置权重系数)。类似这样的变化,依然在本说明书保护的范围内。
步骤520,获取各训练成员上传的第一运算值矩阵和第二运算值矩阵。
在一些实施例中,步骤520可以由运算值矩阵获取模块420执行。运算值矩阵获取模块420可以获取训练成员i上传的第一运算值矩阵()和第二运算值矩阵()。在一些实施例中,训练成员上传的第一运算值矩阵可以为该训练成员的当前轮迭代的训练样本数量、第一超参数以及梯度矩阵的乘积;训练成员的第二运算值矩阵的元素可以为该训练成员的当前轮迭代的梯度矩阵中对应元素的平方值。关于第一运算值矩阵和第二运算值矩阵的更多描述可以参见图3及其相关描述,此处不再赘述。
步骤530,基于各第一运算值矩阵得到第一运算值聚合矩阵。
在一些实施例中,步骤530可以由第一运算值聚合矩阵获取模块430执行。
在一些实施例中,训练成员i(i为训练成员1,2,…,…k 中的任一个)上传的第一运算值矩阵是基于第一超参数()与梯度矩阵 ()的乘积得到的(如式3所示,),其中,第一超参数()可以是各训练成员进行模型更新所使用的学习率。在该场景的实施例中,第一运算值聚合矩阵获取模块430可以基于式(10)计算第一运算值聚合矩阵:
在一些实施例中,训练成员i(i为训练成员1,2,…,…k 中的任一个)上传的第一运算值矩阵是基于当前轮迭代的训练样本数量、第一超参数()与梯度矩阵()的乘积得到的(如式4所示,),其中,第一超参数()可以是各训练成员进行模型更新时所使用的学习率。在该场景的实施例中,第一运算值聚合矩阵获取模块430可以基于式(11)计算第一运算值聚合矩阵:
步骤540,基于各第二运算值矩阵和所述全局梯度累积系数更新第二运算值聚合矩阵。
在一些实施例中,步骤540可以由第二运算值聚合矩阵更新模块440执行。
第二运算值聚合矩阵更新模块440可以基于各训练成员上传的第二运算值矩阵()和步骤510获取的全局梯度累积系数更新第二运算值聚合矩阵。在本说明书的实施例中,以表示s轮迭代对应的第二运算值聚合矩阵,以表示s-1轮迭代对应的第二运算值聚合矩阵,则有:
其中,表示各训练成员对应第二运算值矩阵的和矩阵;由于训练成员i的第二运算值矩阵中的各元素是梯度矩阵中各元素的平方值,因此,不难理解,第二运算值矩阵的和矩阵()中的每一元素均为所有参与成员对应位置梯度元素平方值的累计之和。
步骤550,基于所述第一运算值聚合矩阵以及所述第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量。
在一些实施例中,步骤550可以由调参增量获取模块450执行。
其中,表示待训练模型中任一元素对应的调参增量,a表示第一运算值聚合矩阵中与调参增量对应的元素,s表示第二运算值聚合矩阵中与调参增量对应的元素;ϵ为非0常数,用以保证式(11)的分母不为零,一般取值10-8。
其中,N为训练样本总数,可通过式(8)获得。
步骤560,基于各个调参增量调整当前轮迭代的待训练模型的各模型参数。
在一些实施例中,步骤560可以由模型参数更新模块460执行。
模型参数更新模块460可以基于获得的调参增量调整当前轮迭代的待训练模型的各模型参数。具体地,模型中任意一个元素均可以基于待训练模型中对应位置的元素以及对应的调参增量进行更新,基于此完成当前轮待训练模型的全部模型参数的更新。
需要说明的是,步骤510~560是以服务器端第s轮模型迭代更新为例进行的示例性说明。对于服务器其他轮次的更新,如第1轮、第2轮,…第n轮,均可以按照入步骤510~560的步骤进行反复迭代更新,直至模型迭代更新结束为止。
在一些实施例中,各参与成员上传的第一运算值矩阵、第二运算值矩阵、第三运算值以及训练样本数量可以是密态的。在该场景的实施例中,在执行步骤530之前,服务器还需要对加密数据进行解密,进而基于解密的明文数据采用上述的方式进行模型更新。
在一些实施例中,各参与成员可以采用秘密分享的方式对第一运算值矩阵进行加密。具体地,各参与成员可以将获得的第一运算值矩阵进行拆分,得到多个(如k个)秘密分片,将k-1个秘密分片发送给其他参与成员,同时获得来自其他参与成员的秘密分片,进而基于自身保留的秘密分片与其他参与成员的秘密分片进行融合(如相加)得到密文形式的融合结果,将融合结果传输给服务器。服务器获取待所有参与成员上传密文形式的融合结果再次融合(如进行求和),进而得到明文数据下的第一运算值聚合矩阵。
在一些实施例中,各参与成员还可以采用同态加密的方式对第一运算值矩阵进行加密。具体地,由可信第三方或者是参与成员的一方生成一组秘钥对 <pk,sk>,这一组秘钥对由所有参与成员持有,但不被服务器所知悉。各训练成员上传的第一运算值矩阵均用这一组秘钥对进行加密(如使用其中的公钥进行同态加密),而后上传服务器,类似的,服务器从各训练成员接收其他同态加密的数据(如加密后的第二运算值矩阵、第三运算值以及训练样本数量等),并在密态下计算式执行步骤530~步骤560中的运算,得到密态下的更新后的模型参数,最后将密态的模型参数下发给各训练成员。训练成员利用私钥对密态的模型参数解密,得到更新后的模型参数。应当理解,在本实施例中,服务器端始终只保存有各轮迭代更新获取的密态下的模型参数。
在一些实施例中,还可以采用差分隐私的方式对第一运算值矩阵进行加密。具体地,各参与成员基于差分隐私理论,根据第一运算值矩阵的维度,随机生成与第一运算值矩阵同维的噪声矩阵,并用噪声矩阵对第一运算值矩阵进行加密。类似的,服务器可以从各训练成员接收其他加密的数据(如加密后的第二运算值矩阵、第三运算值以及训练样本数量等),并在密态下执行步骤530~步骤560中的运算,得到(近似的)更新后的模型参数。
本说明书实施例可能带来的有益效果包括但不限于:(1)采用RMSProp算法进行联邦学习,降低了因样本差异所导致的梯度偏差对模型更新的影响,提高了模型联合训练的收敛速度;(2)采用隐私保护的方式保护上传数据不被服务器获取,实现了训练成员数据的隐私保护。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (19)
1.一种基于联邦学习进行模型参数更新的方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
获取与其他参与方具有相同结构的待训练模型;
基于自身持有的训练样本及样本标签进行对所述待训练模型进行训练,获得梯度矩阵;
至少基于所述梯度矩阵以及第一超参数计算第一运算值矩阵;
基于所述梯度矩阵计算第二运算值矩阵;
将所述第一运算值矩阵和第二运算值矩阵上传给所述服务器,以便服务器更新服务器端的待训练模型的模型参数;
从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一轮迭代更新,或者基于此确定最终模型。
2.根据权利要求1所述的方法,还包括:
基于自身持有的训练样本及样本标签独立进行多轮模型训练以确定包括所述第一超参数在内的一个或多个超参数。
3.根据权利要求1所述的方法,所述第一运算值矩阵为所述训练成员在当前轮迭代的训练样本数量、所述第一超参数以及所述梯度矩阵的乘积;
所述第二运算值矩阵的元素为所述梯度矩阵中对应元素的平方值。
4.根据权利要求1所述的方法,所述一轮迭代更新还包括:
基于第二超参数和所述训练成员在当前轮迭代的训练样本数量计算第三运算值;
将所述第三运算值以及所述训练样本数量上传给服务器。
5.根据权利要求4所述的方法,所述第一运算值矩阵、第二运算值矩阵、第三运算值以及所述训练样本数量分别以密文的形式上传给服务器。
6.根据权利要求4所述的方法,所述第三运算值为第二超参数和当前轮迭代的训练样本数量的乘积。
7.根据权利要求4所述的方法,所述第一超参数为学习率,所述第二超参数为梯度累积系数。
8.一种基于联邦学习进行模型参数更新的系统,所述系统布置在参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:
待训练模型获取模块:用于获取与其他参与方具有相同结构的待训练模型;
梯度矩阵获取模块:用于基于自身持有的训练样本及样本标签进行对所述待训练模型进行训练,获得梯度矩阵;
第一运算值矩阵计算模块:用于至少基于所述梯度矩阵以及第一超参数计算第一运算值矩阵;
第二运算值矩阵计算模块:用于基于所述梯度矩阵计算第二运算值矩阵;
矩阵传输模块:用于将所述第一运算值矩阵和第二运算值矩阵上传给所述服务器,以便服务器更新服务器端的待训练模型的模型参数;
模型更新模块:用于从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一轮迭代更新,或者基于此确定最终模型。
9.一种基于联邦学习进行模型参数更新的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求1至7中任一项所述基于联邦学习进行模型参数更新的操作。
10.一种基于联邦学习进行模型参数更新的方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器;所述方法包括多轮模型参数迭代更新,其中一轮迭代更新包括:
获取当前轮迭代的全局梯度累积系数;
获取各训练成员上传的第一运算值矩阵和第二运算值矩阵;
基于各第一运算值矩阵得到第一运算值聚合矩阵;
基于各第二运算值矩阵和所述全局梯度累积系数更新第二运算值聚合矩阵;
基于所述第一运算值聚合矩阵以及所述第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量;
基于各个调参增量调整当前轮迭代的待训练模型的各模型参数。
11.根据权利要求10所述的方法,训练成员的第一运算值矩阵为该训练成员的当前轮迭代的训练样本数量、第一超参数以及梯度矩阵的乘积;
训练成员的第二运算值矩阵的元素为该训练成员的当前轮迭代的梯度矩阵中对应元素的平方值。
12.根据权利要求11所述的方法,其中,所述一轮迭代更新还包括:
接收各训练成员上传的当前轮迭代的训练样本数量以及第三运算值;
基于各确定训练成员上传的当前轮迭代的训练样本数量确定样本总数;
所述获取当前轮迭代的全局梯度累积系数,包括:
基于所述样本总数以及各训练成员的第三运算值计算全局梯度累积系数。
13.根据权利要求12所述的方法,训练成员的第三运算值为训练成员的第二超参数和当前轮迭代的训练样本数量计算得到,所述全局梯度累积系数为各训练成员的第三运算值之和除以所述样本总数。
14.根据权利要求13所述的方法,训练成员的第三运算值为训练成员的第二超参数和当前轮迭代的训练样本数量的乘积;
所述第一超参数为学习率,所述第二超参数为梯度累积系数。
15.根据权利要求12所述的方法,各训练成员上传给服务器的第一运算值矩阵、第二运算值矩阵、第三运算值以及训练样本数量分别以密文的形式传输。
16.根据权利要求10所述的方法,所述第一运算值聚合矩阵为各训练成员的第一运算值矩阵之和;
所述基于各第二运算值矩阵和所述全局梯度累积系数更新第二运算值聚合矩阵,包括:
计算各第二运算值矩阵的和矩阵;
基于所述全局梯度累积系数计算前一轮次迭代的第二运算值聚合矩阵与所述和矩阵的加权和,得到更新后的第二运算值聚合矩阵。
18.一种基于联邦学习进行模型参数更新的系统,所述系统布置在参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:
全局梯度累积系数获取模块:用于获取当前轮迭代的全局梯度累积系数;
运算值矩阵获取模块:用于获取各训练成员上传的第一运算值矩阵和第二运算值矩阵;
第一运算值聚合矩阵获取模块:用于基于各第一运算值矩阵得到第一运算值聚合矩阵;
第二运算值聚合矩阵更新模块:用于基于各第二运算值矩阵和所述全局梯度累积系数更新第二运算值聚合矩阵;
调参增量获取模块:用于基于所述第一运算值聚合矩阵以及所述第二运算值聚合矩阵确定与待训练模型的模型参数一一对应的多个调参增量;
模型参数更新模块:用于基于各个调参增量调整当前轮迭代的待训练模型的各模型参数。
19.一种基于联邦学习进行模型参数更新的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求10至17中任一项所述基于联邦学习进行模型参数更新的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589914.8A CN112288100B (zh) | 2020-12-29 | 2020-12-29 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589914.8A CN112288100B (zh) | 2020-12-29 | 2020-12-29 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112288100A true CN112288100A (zh) | 2021-01-29 |
CN112288100B CN112288100B (zh) | 2021-08-03 |
Family
ID=74426626
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589914.8A Active CN112288100B (zh) | 2020-12-29 | 2020-12-29 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112288100B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112799708A (zh) * | 2021-04-07 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 联合更新业务模型的方法及系统 |
CN112990476A (zh) * | 2021-02-08 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
CN112990475A (zh) * | 2021-02-05 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于多方安全计算的模型训练方法和系统 |
CN113033824A (zh) * | 2021-04-21 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 模型超参数确定方法、模型训练方法及系统 |
CN113033825A (zh) * | 2021-04-21 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的模型训练方法、系统及装置 |
CN113095505A (zh) * | 2021-03-25 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 多方协同更新模型的方法、装置及系统 |
CN113159327A (zh) * | 2021-03-25 | 2021-07-23 | 深圳前海微众银行股份有限公司 | 基于联邦学习系统的模型训练方法、装置、电子设备 |
CN113191504A (zh) * | 2021-05-21 | 2021-07-30 | 电子科技大学 | 一种面向计算资源异构的联邦学习训练加速方法 |
CN113239391A (zh) * | 2021-07-13 | 2021-08-10 | 深圳市洞见智慧科技有限公司 | 一种无第三方的逻辑回归联邦学习模型训练系统及方法 |
CN113379042A (zh) * | 2021-07-23 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的业务预测模型训练方法及装置 |
CN113378198A (zh) * | 2021-06-24 | 2021-09-10 | 深圳市洞见智慧科技有限公司 | 一种保护用户标识的模型的联邦训练系统、方法及装置 |
CN113642707A (zh) * | 2021-08-12 | 2021-11-12 | 深圳平安智汇企业信息管理有限公司 | 基于联邦学习的模型训练方法、装置、设备及存储介质 |
CN113722738A (zh) * | 2021-09-02 | 2021-11-30 | 脸萌有限公司 | 数据保护方法、装置、介质及电子设备 |
CN113821827A (zh) * | 2021-02-19 | 2021-12-21 | 支付宝(杭州)信息技术有限公司 | 保护多方数据隐私的联合建模方法及装置 |
CN114386336A (zh) * | 2022-03-22 | 2022-04-22 | 成都飞机工业(集团)有限责任公司 | 一种基于多方3d打印数据库联合训练的方法 |
CN114611720A (zh) * | 2022-03-14 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 联邦学习模型训练方法、电子设备及存储介质 |
CN114676838A (zh) * | 2022-04-12 | 2022-06-28 | 支付宝(杭州)信息技术有限公司 | 联合更新模型的方法及装置 |
CN114723069A (zh) * | 2022-04-15 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 参数更新方法、装置和电子设备 |
WO2022206498A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 一种基于联邦迁移学习的模型训练方法及计算节点 |
CN116150622A (zh) * | 2023-02-17 | 2023-05-23 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、装置、存储介质及电子设备 |
CN117671385A (zh) * | 2023-12-20 | 2024-03-08 | 北京斯年智驾科技有限公司 | 一种目标识别模型的训练方法、系统、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460528A (zh) * | 2020-04-01 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种基于Adam优化算法的多方联合训练方法及系统 |
CN111695696A (zh) * | 2020-06-12 | 2020-09-22 | 深圳前海微众银行股份有限公司 | 一种基于联邦学习的模型训练的方法及装置 |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
CN112100295A (zh) * | 2020-10-12 | 2020-12-18 | 平安科技(深圳)有限公司 | 基于联邦学习的用户数据分类方法、装置、设备及介质 |
CN112101555A (zh) * | 2020-11-13 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 多方联合训练模型的方法和装置 |
-
2020
- 2020-12-29 CN CN202011589914.8A patent/CN112288100B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460528A (zh) * | 2020-04-01 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种基于Adam优化算法的多方联合训练方法及系统 |
CN111695696A (zh) * | 2020-06-12 | 2020-09-22 | 深圳前海微众银行股份有限公司 | 一种基于联邦学习的模型训练的方法及装置 |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
CN112100295A (zh) * | 2020-10-12 | 2020-12-18 | 平安科技(深圳)有限公司 | 基于联邦学习的用户数据分类方法、装置、设备及介质 |
CN112101555A (zh) * | 2020-11-13 | 2020-12-18 | 支付宝(杭州)信息技术有限公司 | 多方联合训练模型的方法和装置 |
Non-Patent Citations (1)
Title |
---|
VUKASIN FELBAB 等: "Optimization in Federated Learning", 《HTTPS://PDFS.SEMANTICSCHOLAR.ORG/058C/9654E0F22D260AC43A79C5BD173AE8880E14.PDF》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112990475A (zh) * | 2021-02-05 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于多方安全计算的模型训练方法和系统 |
CN112990476A (zh) * | 2021-02-08 | 2021-06-18 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
CN113821827B (zh) * | 2021-02-19 | 2024-04-19 | 支付宝(杭州)信息技术有限公司 | 保护多方数据隐私的联合建模方法及装置 |
CN113821827A (zh) * | 2021-02-19 | 2021-12-21 | 支付宝(杭州)信息技术有限公司 | 保护多方数据隐私的联合建模方法及装置 |
CN113095505A (zh) * | 2021-03-25 | 2021-07-09 | 支付宝(杭州)信息技术有限公司 | 多方协同更新模型的方法、装置及系统 |
CN113159327A (zh) * | 2021-03-25 | 2021-07-23 | 深圳前海微众银行股份有限公司 | 基于联邦学习系统的模型训练方法、装置、电子设备 |
CN113159327B (zh) * | 2021-03-25 | 2024-04-09 | 深圳前海微众银行股份有限公司 | 基于联邦学习系统的模型训练方法、装置、电子设备 |
WO2022206498A1 (zh) * | 2021-03-31 | 2022-10-06 | 华为技术有限公司 | 一种基于联邦迁移学习的模型训练方法及计算节点 |
CN112799708A (zh) * | 2021-04-07 | 2021-05-14 | 支付宝(杭州)信息技术有限公司 | 联合更新业务模型的方法及系统 |
CN113033824A (zh) * | 2021-04-21 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 模型超参数确定方法、模型训练方法及系统 |
CN113033825B (zh) * | 2021-04-21 | 2024-05-28 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的模型训练方法、系统及装置 |
CN113033825A (zh) * | 2021-04-21 | 2021-06-25 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的模型训练方法、系统及装置 |
CN113191504B (zh) * | 2021-05-21 | 2022-06-28 | 电子科技大学 | 一种面向计算资源异构的联邦学习训练加速方法 |
CN113191504A (zh) * | 2021-05-21 | 2021-07-30 | 电子科技大学 | 一种面向计算资源异构的联邦学习训练加速方法 |
CN113378198A (zh) * | 2021-06-24 | 2021-09-10 | 深圳市洞见智慧科技有限公司 | 一种保护用户标识的模型的联邦训练系统、方法及装置 |
CN113239391A (zh) * | 2021-07-13 | 2021-08-10 | 深圳市洞见智慧科技有限公司 | 一种无第三方的逻辑回归联邦学习模型训练系统及方法 |
CN113379042B (zh) * | 2021-07-23 | 2022-05-17 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的业务预测模型训练方法及装置 |
CN113379042A (zh) * | 2021-07-23 | 2021-09-10 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的业务预测模型训练方法及装置 |
WO2023000794A1 (zh) * | 2021-07-23 | 2023-01-26 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的业务预测模型训练的方法及装置 |
CN113642707A (zh) * | 2021-08-12 | 2021-11-12 | 深圳平安智汇企业信息管理有限公司 | 基于联邦学习的模型训练方法、装置、设备及存储介质 |
CN113642707B (zh) * | 2021-08-12 | 2023-08-18 | 深圳平安智汇企业信息管理有限公司 | 基于联邦学习的模型训练方法、装置、设备及存储介质 |
CN113722738B (zh) * | 2021-09-02 | 2023-08-08 | 脸萌有限公司 | 数据保护方法、装置、介质及电子设备 |
CN113722738A (zh) * | 2021-09-02 | 2021-11-30 | 脸萌有限公司 | 数据保护方法、装置、介质及电子设备 |
CN114611720B (zh) * | 2022-03-14 | 2023-08-08 | 抖音视界有限公司 | 联邦学习模型训练方法、电子设备及存储介质 |
CN114611720A (zh) * | 2022-03-14 | 2022-06-10 | 北京字节跳动网络技术有限公司 | 联邦学习模型训练方法、电子设备及存储介质 |
CN114386336B (zh) * | 2022-03-22 | 2022-07-15 | 成都飞机工业(集团)有限责任公司 | 一种基于多方3d打印数据库联合训练的方法 |
CN114386336A (zh) * | 2022-03-22 | 2022-04-22 | 成都飞机工业(集团)有限责任公司 | 一种基于多方3d打印数据库联合训练的方法 |
CN114676838A (zh) * | 2022-04-12 | 2022-06-28 | 支付宝(杭州)信息技术有限公司 | 联合更新模型的方法及装置 |
CN114723069A (zh) * | 2022-04-15 | 2022-07-08 | 支付宝(杭州)信息技术有限公司 | 参数更新方法、装置和电子设备 |
CN116150622A (zh) * | 2023-02-17 | 2023-05-23 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、装置、存储介质及电子设备 |
CN116150622B (zh) * | 2023-02-17 | 2023-08-11 | 支付宝(杭州)信息技术有限公司 | 一种模型训练方法、装置、存储介质及电子设备 |
CN117671385A (zh) * | 2023-12-20 | 2024-03-08 | 北京斯年智驾科技有限公司 | 一种目标识别模型的训练方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112288100B (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112288100B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN111931950B (zh) | 一种基于联邦学习进行模型参数更新的方法及系统 | |
CN111125735B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
US11301571B2 (en) | Neural-network training using secure data processing | |
CN112396191B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
Bonte et al. | Privacy-preserving logistic regression training | |
Cock et al. | Fast, privacy preserving linear regression over distributed datasets based on pre-distributed data | |
CN113011587B (zh) | 一种隐私保护的模型训练方法和系统 | |
CN111460528B (zh) | 一种基于Adam优化算法的多方联合训练方法及系统 | |
US11368311B2 (en) | Batch-wise distributed preprocessing information verification | |
CN111143878B (zh) | 一种基于隐私数据进行模型训练的方法及系统 | |
CN112766514B (zh) | 一种联合训练机器学习模型的方法、系统及装置 | |
CN112990476B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN112949865A (zh) | 一种基于sigma协议的联邦学习贡献度评估方法 | |
Stoian et al. | Deep neural networks for encrypted inference with tfhe | |
Stripelis et al. | Secure federated learning for neuroimaging | |
Zheng et al. | Cryptography-Inspired Federated Learning for Generative Adversarial Networks and Meta Learning | |
US20200125724A1 (en) | Secret tampering detection system, secret tampering detection apparatus, secret tampering detection method, and program | |
Nekouei et al. | A model randomization approach to statistical parameter privacy | |
EP3806071B1 (en) | Secret collective approximation system, secret calculation device, secret collective approximation method, and program | |
Falcetta et al. | Privacy-preserving time series prediction with temporal convolutional neural networks | |
Lohana et al. | Efficient privacy-aware federated learning by elimination of downstream redundancy | |
Hong et al. | Homomorphic model selection for data analysis in an encrypted domain | |
Al-Janabi et al. | Secure Data Computation Using Deep Learning and Homomorphic Encryption: A Survey. | |
Mewada et al. | Artificial bee colony-based approach for privacy preservation of medical data |
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 |