CN112396191B - 一种基于联邦学习进行模型参数更新的方法、系统及装置 - Google Patents
一种基于联邦学习进行模型参数更新的方法、系统及装置 Download PDFInfo
- Publication number
- CN112396191B CN112396191B CN202011593534.1A CN202011593534A CN112396191B CN 112396191 B CN112396191 B CN 112396191B CN 202011593534 A CN202011593534 A CN 202011593534A CN 112396191 B CN112396191 B CN 112396191B
- Authority
- CN
- China
- Prior art keywords
- sparse
- layer
- matrix
- model
- moment
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 239000011159 matrix material Substances 0.000 claims abstract description 381
- 238000012549 training Methods 0.000 claims abstract description 285
- 239000013598 vector Substances 0.000 claims description 97
- 230000005540 biological transmission Effects 0.000 claims description 33
- 238000000605 extraction Methods 0.000 claims description 26
- 230000036961 partial effect Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 26
- 238000003860 storage Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 230000004048 modification Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004927 fusion Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000011478 gradient descent method Methods 0.000 description 4
- 230000000644 propagated effect Effects 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 210000002569 neuron Anatomy 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000007418 data mining Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 239000010977 jade Substances 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
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
- 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)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Algebra (AREA)
- Databases & Information Systems (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)可以在多参与方或多计算结点之间开展高效率的机器学习。联邦学习可以使得多方数据在训练样本不出本地的情况下进行模型训练,只传递训练好的模型或者是梯度信息,这使得各方持有的训练样本的隐私性得到了保护。
在一些实施例中,可以使用梯度下降法(又称SGD算法)进行联邦学习模型训练。梯度下降法采用单个样本或部分样本依次进行训练,基于损失函数计算得到的梯度进行模型更新。然而,采用梯度下降法进行模型更新时,由于各参与方训练样本的差异性,会给模型训练带来很多噪声。具体而言,这会使得梯度并不是每次迭代都向着整体最优化方向,从而导致损失函数收敛速度低,模型训练效率不高,训练时间长。
在本说明书的一些实施例中,可以采用Adam算法进行联邦学习模型训练。Adam算法是一种利用一阶矩矩阵和二阶矩矩阵更新模型参数的算法,下式1~3所示为Adam算法所使用公式,式中,本别表示第s轮模型参数更新涉及的一阶矩矩阵、二阶矩矩阵、梯度以及模型参数;本别表示第s-1轮计算的一阶矩矩阵、二阶矩矩阵以及模型参数,为超参数。
式1和式2分别表示了一阶矩矩阵、二阶矩矩阵的更新过程。显然,第s轮一阶矩矩阵是基于梯度以及上一轮计算的一阶矩矩阵进行累加得到的;第s轮二阶矩矩阵基于梯度的平方以及上一轮计算的二阶矩矩阵进行累加得到的。如式3所示,Adam算法在更新模型参数时,采用一阶矩矩阵除以二阶矩矩阵的方式计算增量矩阵,再基于增量矩阵乘以学习率以进行模型更新。可以理解,当梯度受训练样本分布的影响偏差较大时,在计算增量矩阵时用累积的一阶矩矩阵除以累积的二阶矩矩阵的平方根,可以使得更新幅度变小,从而降低了梯度偏差较大对模型更新带来的影响,提高了训练收敛的速度。
然而,采用Adam算法时,服务器更新模型参数需要各训练成员上传计算的一阶矩矩阵和二阶矩矩阵。这使得Adam算法训练过程中数据传输量远大于梯度下降法,从而导致通讯传输的压力较大。
在本说明书的一些实施例中,模型进行每一轮迭代更新的过程中,各训练成员在基于梯度矩阵更新一阶矩矩阵和二阶矩矩阵后,分别从一阶矩矩阵和二阶矩矩阵中提取部分元素,组成稀疏一阶矩子矩阵和稀疏二阶矩子矩阵;服务器基于稀疏一阶矩子矩阵和稀疏二阶矩子矩阵逐层更新模型参数,以通过减少传输元素的方式降低通讯压力。
进一步地,在本说明书的一些实施例中,训练成员还可以基于稀疏一阶矩子矩阵和/或稀疏二阶矩子矩阵生成稀疏矩阵值,并将稀疏矩阵值上传给服务器;服务器基于稀疏矩阵值筛选出稀疏矩阵值较大的训练成员,并让这些训练成员传输稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。通过这样的设置,整个训练过程中仅需要筛选出的部分训练成员传输稀疏一阶矩子矩阵和稀疏二阶矩子矩阵,这能大幅度地降低训练过程的总传输量,有效保证了训练效率。
图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可以基于自身持有的训练样本对待训练模型进行训练,并基于训练得到的模型数据矩阵生成梯度矩阵。又例如,第二方120的处理设备120-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-2可以用于存储模型参数;也可以存储指示第一方和第二方执行操作的相关指令。在一些实施例中,存储设备可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
网络140可以促进信息和/或数据的交换。在一些实施例中,模型训练的系统100(例如,第一方110、第二方120和第三方130)的一个或以上部件可以经由网络140向所述系统100中的其他有数据传输需求的部件发送信息和/或数据。例如,第二方120的处理设备120-1可以经由网络140从第三方130中获得更新后的模型参数。又例如,第一方110的处理设备110-1可以通过网络140从第三方130的存储设备110-2中获取权重系数等。在一些实施例中,网络140可以为任意形式的有线或无线网络,或其任意组合。
图2是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图。
在一些实施例中,系统200布置在参与方中的任一训练成员上,其中,所述参与方包括多个训练成员以及服务器,所述系统可以包括待训练模型获取模块210,梯度矩阵获取模块220,一阶矩/二阶矩矩阵更新模块230,矩阵传输模块240,模型更新模块250。
待训练模型获取模块210,用于获取与其他参与方具有相同结构的待训练模型,所述待训练模型包括多个网络层;
梯度矩阵获取模块220,用于基于自身持有的训练样本及样本标签对所述待训练模型进行训练,获得梯度矩阵;
一阶矩/二阶矩矩阵更新模块230,用于基于所述梯度矩阵更新一阶矩矩阵和二阶矩矩阵,其中,所述一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的多个层子矩阵,每个层子矩阵的元素与对应网络层中的模型参数一一对应;
矩阵传输模块240,用于与服务器交互,逐层传输所述一阶矩矩阵和所述二阶矩矩阵中至少部分层子矩阵中的至少部分元素给所述服务器,以便服务器逐层更新模型参数。
模型更新模块250,用于从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一次训练,或者基于此确定最终模型。
在一些实施例中,矩阵传输模块240还用于:分别从一阶矩矩阵和二阶矩矩阵的该层子矩阵中提取部分元素,获得稀疏一阶矩子矩阵和稀疏二阶矩子矩阵;基于稀疏一阶矩子矩阵和/或稀疏二阶矩子矩阵生成稀疏矩阵值;将所述稀疏矩阵值上传给服务器;基于服务器的指示确定是否参与服务器端待训练模型的当前网络层更新,若参与,则向服务器上传更新参数,所述更新参数携带有稀疏一阶矩子矩阵与稀疏二阶矩子矩阵以便服务器更新待训练模型的当前网络层的模型参数。
在一些实施例中,矩阵传输模块240还用于:基于提取比例保留所述一阶矩矩阵的所述该层子矩阵中绝对值大小靠前的若干个元素,其余元素设为0,获得稀疏一阶矩子矩阵;基于所述稀疏一阶矩子矩阵中所述较大的若干个元素的位置,保留所述二阶矩矩阵的所述该层子矩阵中的同位置元素,其余元素设为0,获得稀疏二阶矩子矩阵;或者包括:基于提取比例保留所述二阶矩矩阵的所述该层子矩阵中绝对值大小靠前的若干个元素,其余元素设为0,获得稀疏二阶矩子矩阵;基于所述稀疏二阶矩子矩阵中所述绝对值大小靠前的若干个元素的位置,保留所述一阶矩矩阵的所述该层子矩阵中的同位置元素,其余元素设为0,获得稀疏一阶矩子矩阵;或者包括:基于提取比例保留所述一阶矩矩阵的所述该层子矩阵中绝对值大小靠前的若干个元素,其余元素设为0,获得稀疏一阶矩子矩阵;基于提取比例保留所述二阶矩矩阵的所述该层子矩阵中绝对值大小靠前的若干个元素,其余元素设为0,获得稀疏二阶矩子矩阵。
在一些实施例中,所述稀疏矩阵值反应稀疏一阶矩子矩阵中各元素绝对值之和、稀疏二阶矩子矩阵中各元素绝对值之和或者稀疏一阶矩子矩阵与稀疏二阶矩子矩阵中各元素绝对值之和。
在一些实施例中,矩阵传输模块240还用于:当接收到服务器发送的权重系数时,确定参与服务器端待训练模型的当前网络层更新;其中,更新参数携带加权稀疏一阶矩子矩阵与加权稀疏二阶矩子矩阵,加权稀疏一阶矩子矩阵为所述权重系数与稀疏一阶矩子矩阵的乘积,加权稀疏二阶矩子矩阵为所述权重系数与稀疏二阶矩子矩阵的乘积。
在一些实施例中,所述更新参数包括密态的加权稀疏一阶矩子矩阵与密态的加权稀疏二阶矩子矩阵。
在一些实施例中,所述一阶矩矩阵的元素为前一轮迭代的一阶矩矩阵对应元素与所述梯度矩阵对应元素的加权和,所述二阶矩矩阵的元素为前一轮迭代的二阶矩矩阵对应元素与所述梯度矩阵对应元素的平方的加权和。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
接下来,结合具体流程对本说明书技术方案进行详细阐述。本说明书中的变量名称、公式仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理和机器学习原理,可以对下述过程、变量名称、公式做各种非实质性的变换,例如调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
在本说明书中,约定按以下方式表示:
对于联邦学习模型训练,包括参与方,参与方包括至少一个服务器和k个训练成员,训练成员是指参与联邦学习模型训练的数据持有者。服务器将待训练模型下发给多个训练成员,多个训练成员基于接收的待训练模型和自身持有的训练样本及样本标签展开计算并训练,以得到训练后(如经过一个batch的训练样本训练后,一个batch的训练样本可以包括多条训练样本,仅作为示例,100条)的梯度矩阵。然后多个训练成员再基于梯度矩阵更新一阶矩矩阵和二阶矩矩阵。
在本说明书中,约定待训练模型有n个网络层,网络层可以是机器学习模型中具有相对独立的数据处理功能的模型组件。以神经网络模型作为示例,网络层可以包括但不限于输入层、卷积层、池化层、输出层等,每个网络层具有一排或多排神经元。不难理解,待训练模型的模型参数可以是一个规模较大的矩阵,而每一个网络层的模型参数对应该矩阵中的各个子矩阵,不妨称为层子矩阵。应当理解,针对某些网络层只有一排神经元的情形,层子矩阵可以是一维向量。向量可以看作特殊的矩阵。在一些实施例中,也可以不基于数据处理功能对模型进行网络层划分,而是直接将每一排神经元分别视为一层网络层,逐层进行模型参数更新。训练成员对应的一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的n个层子矩阵(如一阶矩矩阵和二阶矩矩阵中的行或者列),其中每个层子矩阵的元素与对应网络层中的模型参数一一对应。在进行模型更新时,多个训练成员逐层将所述一阶矩矩阵和所述二阶矩矩阵中至少部分层子矩阵中的至少部分元素上传给所述服务器,使得服务器可以基于上传的部分元素逐层更新待训练模型,进而完成一轮模型参数的迭代更新。之后服务器可以将更新后的模型参数下发给各训练成员,训练成员利用自身持有的训练数据再次进行模型训练,如此经过多轮迭代,最终各参与方可以获得训练好的模型。
在本说明书中,如无特殊说明,参数的上角标均表示迭代轮次,下角标表示训练成员。对于联邦学习模型训练的模型,各训练成员的第s轮迭代对应的模型为Ws,训练成员f在训练过程中对应的梯度矩阵为,对应的一阶矩矩阵为,二阶矩矩阵为。关于梯度、一阶矩矩阵为以及二阶矩矩阵为的详细说明可以参见图3的相关说明。
对任一变量X,〈X〉表示对X加密。当X是一个矩阵时,表示对矩阵的每个元素加密。如无进一步说明,加密可指任何加密方法。
图3是根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性流程图。在一些实施例中,流程300可以由任一训练成员执行。例如,流程300可以进一步由设置于训练成员处的系统200实现。在如图3所示的一个或多个实施例中,以训练成员f为例对第s轮模型迭代过程进行示例性说明。训练成员f可以是训练成员集合{1,2,3…k}中的任意一个。
步骤310,获取与其他参与方具有相同结构的待训练模型。在一些实施例中,步骤310由待训练模型获取模块210执行。
待训练模型获取模块210可以从服务器端获得待训练模型Ws(上标s表示第s轮迭代)。此时,各训练成员以及服务器可以拥有模型参数相同的待训练模型Ws。需要说明的是,在进行第一轮迭代更新时,待训练模型获取模块210可以从服务器端获得初始模型W0或者基于与其他参与方约定或共识确定的模型结构,自行生成(如随机初始化模型参数)与其他参与方结构相同的初始模型W0。本说明书中的初始化模型或待训练模型可以包括多个网络层,每个网络层中具有多个待训练的参数(如神经网络中各层的权重等)。具体地,初始化模型和待训练模型可以用矩阵的形式进行表示,矩阵中的每个元素对应于一个待训练的参数;此时,模型所对应的网络层可以理解为矩阵中的某行或某列对应的元素。
在一些实施例中,待训练模型获取模块210还可以从服务器获取或者与其他参与方约定的与模型训练相关的超参数。对训练成员f而言(训练成员f可以是训练成员集合{1,2,3…k}中的任意一个),可以通过待训练模型获取模块210获取提取比例系数,以便训练成员f可在后续步骤中基于提取比例系数生成稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。在一些实施例中,训练成员f还可以通过待训练模型获取模块210获取一阶矩系数,二阶矩系数,用以计算训练成员f对应的一阶矩矩阵和二阶矩矩阵。
在一些实施例中,各个训练成员超参数可以是相同的。在一些其他实施例中,各个训练成员的超参数也可以是各异性设置的。例如,训练成员1,2,3…k所对应的提取比例系数可以相同或不同地设置。又例如,对于不同的训练成员,一阶矩系数以及二阶矩系数可以设置为不同的值或者相同的值。有关一阶矩系数,二阶矩系数的相应描述可参见步骤330的描述,在此不再赘述。
步骤320,基于自身持有的训练样本及样本标签对所述待训练模型进行训练,获得梯度矩阵。
在一些实施例中,步骤320可以由梯度矩阵获取模块220执行。
首先,假设当前轮迭代(s轮)训练成员f可以获取训练样本集中batch_size条样本数据。其中,batch_size是指训练成员每次迭代中用于进行模型训练的训练样本数量。在一些实施例中,可以为100,200,300等。不难理解,不同训练成员的batch_size可以相同,也可以不同;或者同一训练成员在不同迭代轮次中的batch_size可以相同,也可以不同。
在一些实施例中,对于任一训练样本,训练成员f可以基于待训练模型Ws对训练样本中的特征数据进行处理,进行前向传播,得到预测标签。之后,根据计算得到的预测标签,以及训练成员f持有的训练数据中的标签之间的误差,计算得到损失函数,进而利用反向传播算法得到梯度矩阵。其中,反向传播是指误差通过输出层,向隐层、输入层逐层反传,依次确定各层的模型参数的修正值(或梯度)。其中,梯度矩阵包含训练得到的多个梯度元素,梯度矩阵的梯度元素与模型参数一一对应,每个梯度元素反映模型参数的修正方向(增加或减小)以及修正量。
步骤330,基于所述梯度矩阵更新一阶矩矩阵和二阶矩矩阵。
在一些实施例中,步骤330由一阶矩/二阶矩矩阵更新模块执行。
训练成员f可以基于步骤320中计算得到的梯度矩阵更新第s轮迭代对应的一阶矩矩阵和二阶矩矩阵,其中,下角标f表示训练成员f,上角标s表示第s轮迭代。训练成员f对应的第s轮迭代的一阶矩矩阵和二阶矩矩阵具体如下式4~5进行计算
具体地,训练成员f所得的一阶矩矩阵和二阶矩矩阵中的每个元素都可以理解为前一轮迭代的矩阵元素与所述梯度矩阵对应元素计算结果的加权和。例如,式(4)中,可以将和理解为加权系数,则训练成员f的一阶矩矩阵中的中的每一元素为前一轮迭代的一阶矩矩阵对应元素与所述梯度矩阵对应元素的加权和。又例如,式(5)中,和可以理解为不同项所对应的权重系数,则训练成员f的二阶矩矩阵的中的每一元素为前一轮迭代的二阶矩矩阵对应元素与梯度矩阵对应元素平方的加权和。
进一步地,由于梯度矩阵的梯度元素与模型参数一一对应,且每个梯度元素均反映模型参数的修正方向(增加或减小)以及修正量。因此,一阶矩矩阵和二阶矩矩阵中的每一个元素实际上也是与待训练模型中的模型参数一一对应的。换言之,一阶矩矩阵和二阶矩矩阵中可以分别包括与网络层一一对应的多个层子矩阵(如矩阵的行或者是列),每个层子矩阵包括多个元素(矩阵元素),每个层子矩阵的元素也可以是与待训练模型对应网络层中的模型参数一一对应的。
在一些实施例中,训练成员f所对应的一阶矩系数和二阶矩系数也可以基于训练成员f所持有的训练样本集进行预训练,从而获得调试好的一阶矩系数和二阶矩系数。具体地,可以将训练样本集分为训练集和测试集,采用搜索算法获取多个一阶矩系数和二阶矩系数,基于训练集以及获取的多个一阶矩系数和二阶矩系进行训练后得到多个训练好的模型,进而基于测试集对多个模型进行评价。在一些实施例中,可以基于测试集对获取对应模型的性能评价指标(如错误率、精度、查准率、查全率、AUC、ROC等),而后选择模型性能评价指标最优的模型对应的一阶矩系数和二阶矩系数作为调试获得的超参数。显然,由于各个训练成员所持有的训练样本不同,各个训练成员经过预训练所获得的一阶矩系数和二阶矩系数是不同的。采用预训练的方式获得调试好的一阶矩系数和二阶矩系数,可以使得各训练成员得到更适配于本地样本集的调试好的超参数,从而得到更准确的一阶矩矩阵和二阶矩矩阵。
需要说明的是,各个训练成员还可以通过预训练确定与模型训练相关的其他超参数,如学习率等。预训练过程中所采用的参数搜索算法可以包括但不限于暴力搜索、网格搜索、贝叶斯搜索等参数搜索算法。本领域技术人员可以基于此对本说明书的技术方案进各种修改和改进。该类修改和改进仍然在本说明书的保护范围内。
步骤340,与服务器交互,逐层传输所述一阶矩矩阵和所述二阶矩矩阵中至少部分层子矩阵中的至少部分元素给所述服务器,以便服务器逐层更新模型参数。
在本说明书的一个或多个实施例中,以表示训练成员f对应的一阶矩矩阵的第j层层子矩阵,以表示训练成员f对应的二阶矩矩阵的第j层层子矩阵,服务器基于此更新第s轮迭代第j层网络层对应的模型参数。其中,参数j表示模型参数1,2,3…N中的任意一层。
具体地,对一阶矩矩阵或二阶矩矩阵中每一层子矩阵,可以包括如下子步骤(以第s轮迭代第j层网络层为例进行示例性说明):
步骤341,分别从一阶矩矩阵和二阶矩矩阵的该层子矩阵中提取部分元素,获得稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。
在一些实施例中,提取比例系数可以基于步骤310获取。矩阵传输模块240可以基于获取到的提取比例系数随机提取部分元素,从而获得稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。例如,矩阵传输模块240可以基于提取比例系数保留一阶矩矩阵的第j层层子矩阵中随机选取的若干个元素,其余元素设为0,获得稀疏一阶矩子矩阵;进而基于稀疏一阶矩子矩阵中若干个元素的位置,保留二阶矩矩阵的第j层层子矩阵中的同位置元素,其余元素设为0,获得稀疏二阶矩子矩阵。又例如,矩阵传输模块240还可以基于提取比例系数保留二阶矩矩阵的第j层层子矩阵中随机选取的若干个元素,其余元素设为0,获得稀疏二阶矩子矩阵;进而基于稀疏二阶矩子矩阵中若干个元素的位置,保留一阶矩矩阵的第j层层子矩阵中的同位置元素,其余元素设为0,获得稀疏一阶矩子矩阵。其中,保留的元素个数可是层子矩阵的元素总数与提取比例系数的乘积。
在一些实施例中,矩阵传输模块240还可以基于获取到的提取比例系数提取元素绝对值较大的部分元素,从而获得稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。可以理解,元素绝对值越大,对第j层网络层对应的模型参数的影响越大,那么这些元素对于模型参数的更新更重要,应当优先上传。
在一些实施例中,矩阵传输模块240可以基于提取比例系数保留一阶矩矩阵的第j层层子矩阵中绝对值较大的若干个元素,其余元素设为0,获得稀疏一阶矩子矩阵;进而基于稀疏一阶矩子矩阵中所述绝对值较大的若干个元素的位置,保留二阶矩矩阵的第j层层子矩阵中的同位置元素,其余元素设为0,获得稀疏二阶矩子矩阵。例如,矩阵传输模块240可以将一阶矩矩阵的第j层层子矩阵中的元素按绝对值大小顺序排列,基于提取比例系数确定排序靠前的若干个元素,在第j层层子矩阵中保留前述若干个元素,其余元素设为0。其中,保留的元素个数可是层子矩阵的元素总数与提取比例系数的乘积。
在一些实施例中,矩阵传输模块240还可以基于提取比例系数保留二阶矩矩阵的第j层层子矩阵中绝对值较大的若干个元素,其余元素设为0,获得稀疏二阶矩子矩阵;进而基于稀疏二阶矩子矩阵中所述绝对值较大的若干个元素的位置,保留一阶矩矩阵的第j层层子矩阵中的同位置元素,其余元素设为0,获得稀疏一阶矩子矩阵。
在一些实施例中,矩阵传输模块240可以基于提取比例系数保留一阶矩矩阵的第j层层子矩阵中绝对值较大的若干个元素,其余元素设为0,获得稀疏一阶矩子矩阵;基于提取比例系数保留二阶矩矩阵的第j层层子矩阵中绝对值较大的若干个元素,其余元素设为0,获得稀疏二阶矩子矩阵。其中,两个提取比例系数和可以是相同的提取比例系数,也可以是不相同的提取比例系数,在此不做限制。
在一些实施例中,训练成员的提取比例系数可以由服务器确定并下传或者由训练成员自身进行确定。在一些实施例中,不同训练成员的提取比例系数可以不同,也可以相同地设置,本说明书在此不做限制。
通过这样的设置,使得训练成员f在每次迭代训练中得到的稀疏一阶矩子矩阵和稀疏二阶矩子矩阵中的元素数量会随着迭代次数增加而逐次减小。这样既能保证模型收敛的稳定性,又能在模型经过多次迭代更新稳定之后减少后续上传给服务器的元素数量,从而大幅地降低传输量。不难理解,提取比例系数还可以按照其他方式设置以实现提取比例系数与迭代次数负相关,本说明书对此不做限制。
步骤342,基于稀疏一阶矩子矩阵和/或稀疏二阶矩子矩阵生成稀疏矩阵值。
在一些实施例中,矩阵传输模块240还可以基于稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵生成稀疏矩阵值。具体地,可以基于稀疏一阶矩子矩阵中各个元素的绝对值以及稀疏二阶矩子矩阵中各个元素的绝对值进行求和,得到稀疏矩阵值。
步骤343,将所述稀疏矩阵值上传给服务器;
步骤344,基于服务器的指示确定是否参与服务器端待训练模型的当前网络层更新,若参与,则向服务器上传更新参数,所述更新参数携带有稀疏一阶矩子矩阵与稀疏二阶矩子矩阵以便服务器更新待训练模型的当前网络层的模型参数。
假设训练成员f接到服务器的指示确定其参与服务器端当前网络层的更新(表示服务器端第s轮迭代待训练模型的第j层网络层对应的参数)。则训练成员f基于矩阵传输模块240将更新参数上传至服务器。在一些实施例中,更新参数可以包括步骤341中所获得的稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵。服务器基于各个训练成员所上传的更新参数更新当前网络层。
在一些实施例中,服务器确定训练成员是否参与当前网络层更新的同时,还会将权重系数下发给各参与当前网络层训练的训练成员。仍以训练成员f为例(假定训练成员f确定参与服务器端待训练模型的当前网络层更新)。在该场景的实施例中,训练成员f还接收到了服务器发送的权重系数(中第一角标代表训练成员f,第二角标代表j层网络层更新)。则训练成员f将权重系数和稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵分别相乘,得到加权稀疏一阶矩子矩阵与加权稀疏二阶矩子矩阵。进一步地,训练成员f将加权稀疏一阶矩子矩阵与加权稀疏二阶矩子矩阵作为更新参数上传给服务器,以使得服务器基于各个训练成员所上传的更新参数更新当前网络层。有关服务器更新当前网络层的相关说明可参见图5的描述,此处不再赘述。
在一些实施例中,训练成员f所传输的更新参数可以是密态的。以训练成员f上传的更新参数包括稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵为例。在该场景的实施例中,训练成员可以对稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵加密,得到密文形式的稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵。在一些实施例中,训练成员f对更新参数进行加密可以包括但不限于秘密分享、同态加密以及差分加密等方式。服务器接收到密态的更新参数后进行解密,进而更新前网络层。有关各个训练成员所传输的更新参数可以是密态时服务器更新当前网络层的更多说明可参见图5的相应描述,此处不再赘述。
需要说明的是,步骤341~344是以训练成员f中第j层层子矩阵为例进行的示例性说明。对于训练成员f的其他层层子矩阵如1,2,..,n等层子矩阵,可以获取相对应的稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵进而按步骤341~344类似地处理,以使得训练成员逐层将1,2,…n层对应的更新参数上传,以使得服务器可基于此逐层更新模型参数。当训练成员f所有层子矩阵均执行完步骤341~344后,即完成一轮完整的模型参数迭代更新过程,进而执行步骤350;否则,返回步骤341直至训练成员f的所有层子矩阵均完成步骤341~344为止。
需要说明的是,更新参数的逐层上传是以层(即网络层)为单位,一层一层上传层子矩阵对应的更新参数,但是对不同层对应的更新参数上传的顺序不做限制。例如,更新参数的上传顺序可以是依照层子矩阵1,2,..,n的顺序依次进行。又例如,可以先完成奇数层层子矩阵对应的更新参数的上传,再完成偶数层层子矩阵对应的更新参数的上传。再例如,可以先完成中间几层(如第10~18层)层子矩阵对应的更新参数的上传,再完成其余层层子矩阵对应的更新参数的上传。相应的,在服务器端,服务器也是以层为单位,一层一层进行模型参数更新,但是更新层序不做限制。例如,可以依次更新第1,2,3,…,n层的网络层,也可以按照其他顺序,如先更新奇数层的网络层模型参数,再更新偶数层的网络层模型参数。
步骤350,从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一次训练,或者基于此确定最终模型。
在一些实施例中,步骤350可以由模型更新模块250实现。
在一些实施例中,模型更新模块250可以判断是否需要继续进行下一次迭代(即是否进行s+1轮迭代)。判断的标准可以是迭代次数是否已经达到预设迭代次数、更新后的模型是否满足预设的性能指标阈值等又或者是否收到来自服务器的终止训练的指示。若确定需要进行下一次迭代,训练成员则可基于当前次迭代过程中从服务器获取的更新后的模型进行下一次迭代。换句话说,训练成员将在下一次迭代中将当前次迭代中从服务器获取的更新后的模型作为待训练模型。若确定不需要进行下一次迭代,训练成员则可将当前次迭代过程中从服务器获取的更新后的模型作为最终模型。
需要说明的是,步骤310~350是以训练成员f为例对第s轮模型迭代过程进行示例性说明。对于模型的任意其他迭代轮次,如第一轮、第二轮、…、第n轮,训练成员f均可使用如步骤310~350中的相同的方式进行实现,在此不再赘述。进一步地,上述一个或多个实施例中,训练成员f可以是训练成员{1,2,3…k}中的任意一个,其余训练成员可以采用如步骤310~350类似的方法执行。
图4是根据本说明书一些实施例所示的一个基于联邦学习进行模型参数更新的系统框图。在一些实施例中,系统400布置在参与方中的服务器上,其中,所述参与方包括多个训练成员以及服务器,所述系统400可以包括模型参数更新模块410。模型参数更新模块410可以用于:与各训练成员交互,指示各训练成员逐层传输其当前轮的一阶矩矩阵和二阶矩矩阵中至少部分层子矩阵中的至少部分元素,以便逐层更新模型参数;其中,所述一阶矩矩阵和二阶矩矩阵分别基于训练成员当前轮本地模型训练得到的梯度矩阵确定,所述一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的多个层子矩阵,每个层子矩阵的元素与对应网络层中的模型参数一一对应。
模型参数更新模块410进一步包括以下单元以完成任一轮迭代更新:
稀疏矩阵值获取单元411,用于获取各训练成员上传的稀疏矩阵值;
参与成员选择单元412,用于将各稀疏矩阵值进行降序排列,获取排序靠前的多个稀疏矩阵值对应的训练成员作为当前网络层更新的参与成员;
更新指示单元413,用于指示各参与成员参与当前网络层更新;
更新参数获取单元414,用于获取各参与成员上传的更新参数,所述更新参数携带有当前网络层对应的稀疏一阶矩子矩阵与稀疏二阶矩子矩阵;
当前网络层参数更新单元415,用于基于各参与成员的更新参数更新待训练模型的当前网络层的模型参数;
在一些实施例中,更新指示单元413还用于:计算各训练成员的稀疏矩阵值的和值;基于各参与成员的稀疏矩阵值与所述和值的比例,确定各参与成员的权重系数;将各权重系数下发给对应的参与成员,以指示各参与成员参与当前网络层更新。
在一些实施例中,更新参数携带对应参与成员的加权稀疏一阶矩子矩阵与加权稀疏二阶矩子矩阵,加权稀疏一阶矩子矩阵为该参与成员的权重系数与稀疏一阶矩子矩阵的乘积,加权稀疏二阶矩子矩阵为所述权重系数与稀疏二阶矩子矩阵的乘积。
在一些实施例中,当前网络层参数更新单元415还用于:计算各参与成员的加权稀疏一阶矩子矩阵的第一和矩阵;计算各参与成员的加权稀疏二阶矩子矩阵的第二和矩阵;基于所述第一和矩阵与所述第二和矩阵确定与当前网络层的模型参数一一对应的多个调参增量;基于各个调参增量调整当前网络层的各模型参数。
在一些实施例中,当更新参数包括密态的加权稀疏一阶矩子矩阵与密态的加权稀疏二阶矩子矩阵时,当前网络层参数更新单元415还用于:解密密态的加权稀疏一阶矩子矩阵与密态的加权稀疏二阶矩子矩阵。
应当理解,本说明书一个或多个实施中的所述系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于处理设备及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。
接下来,结合具体流程对本说明书技术方案进行详细阐述。本说明书中的变量名称、公式仅为更好地理解本说明书所述的方法。在应用本说明书时,基于常见的运算原理和机器学习原理,可以对下述过程、变量名称、公式做各种非实质性的变换,例如调换行或列的次序、在矩阵乘法时变换为等价形式、以其他计算形式来表示同一计算等。
图5是根据本说明书的一些实施例所示的基于联邦学习进行模型参数更新的示例性流程图。在一些实施例中,流程500可以由服务器多次执行,以完成模型参数的多次迭代更新。例如,流程500可以进一步由设置于服务器处的系统400实现。又例如,流程500可以进一步由模型参数更新模块410执行。
在如图5所示的一个或多个实施例中,以第s轮模型迭代过程中第j层网络层更新为例进行示例性说明。
步骤510,获取各训练成员上传的稀疏矩阵值。
在一些实施例中,步骤510可以由稀疏矩阵值获取单元411执行。
稀疏矩阵值获取单元411可以获取各训练成员上传的稀疏矩阵值。具体地,稀疏矩阵值获取单元411可以从训练成员1,2,…,f,…k处稀疏矩阵值获取单元411可以获取(其中,第一角标对应于训练成员,第二角标对应于第j层网络层更新,上标对应模型迭代轮次)。关于稀疏矩阵值的更多描述可以参见图3及其相关描述,此处不再赘述。
步骤520,将各稀疏矩阵值进行降序排列,获取排序靠前的多个稀疏矩阵值对应的训练成员作为当前网络层更新的参与成员。
在一些实施例中,步骤510可以由参与成员选择单元412执行。
具体地,将训练成员1,2,…,f,…k处获得的稀疏矩阵值按大小降序进行排列,获取排序靠前的h个稀疏矩阵值对应的训练成员作为第j层网络层更新对应的参与成员(其中h为小于等于k的正整数)。换言之,参与成员选择单元412可以选择稀疏矩阵值较大的若干训练成员作为第j层网络层更新对应的参与成员。
可以理解,训练成员的稀疏矩阵值越大,证明其对应的稀疏一阶矩子矩阵和/或稀疏二阶矩子矩阵中对应的各元素绝对值越大,其对当前网络层进行迭代更新时的影响越大,那么这些训练成员对于当前网络层的更新更重要。因此,选择这些训练成员作为当前网络层更新的参与成员,有助于提高模型训练速度。
在本说明书的一个或多个实施例中,假定第j层网络层参与成员集合H={1,…,6,…,i,…r},其中i可以是第j层网络层参与成员中的任意一个。
步骤530,指示各参与成员参与当前网络层更新。
在一些实施例中,步骤530可以由更新指示单元413执行。
在一些实施例中,更新指示单元413可以将确定训练成员参与当前网络层更新(即模型第s轮第j层网络层更新)的指示信息下发给各个参与成员(如下发给训练成员1,…,6,…,i,…r),告知各参与成员参与当前网络层的更新。
在一些实施例中,更新指示单元413还会将各参与成员对应的权重系数下发给各参与成员,以指示各参与成员参与当前网络层更新。在一些实施例中,服务器可以基于步骤510中获取到的训练成员1,…,6,…,i,…r上传的稀疏矩阵值进行求和,确定各训练成员的稀疏矩阵值的和值(如下式6所示)。进一步地,更新指示单元413基于各参与成员的稀疏矩阵值与所述和值的比例,确定各参与成员的权重系数(如下式7所示)。具体地,权重系数基于下述式(6)、(7)进行计算:
对于参与成员i(参与成员i可以是步骤520确定的参与成员集合H={1,…,6,…,i,…r}中的任意一个),其权重系数可用进行表示(中第一角标代表训练成员f,第二角标代表j层网络层更新);其具体可通过下式(7)进行计算:
可以理解,参与成员的稀疏矩阵值越大,其对应的稀疏一阶矩子矩阵和/或稀疏二阶矩子矩阵中对应的各元素绝对值越大,当其参与当前网络层更新时的影响越大,因此,如式(7)的方式可以使得稀疏矩阵值较大的参与成员获得较大的权重系数,占据更大的权重比例,进而提高模型的收敛速度。
在一些实施例中,还可以基于参与成员的样本数与训练样本总数的比值确定权重系数。具体地,各参与成员可以将训练样本数量上传给服务器,服务器计算训练样本总数n;对于任意的参与成员i,可以将其参与训练的样本数与训练样本总数n的比值作为权重系数。在一些替代性实施例中,还可以基于训练成员的运算次数等具体地设置权重系数。类似这样的变化,依然在本说明书的保护范围内。
步骤540,获取各参与成员上传的更新参数。
在一些实施例中,步骤540可以由更新参数获取单元414执行。
在一些实施例中,更新参数获取单元414获取到的更新参数可以是各参与成员所计算的稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。具体地,更新参数获取单元414可以获取参与成员集合H={1,…,6,…,i,…r}上传的稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵。
在一些实施例中,若步骤530中服务器将各参与成员对应的权重系数下发,则更新参数获取单元414获取到的更新参数可以是各参与成员所计算的加权稀疏一阶矩子矩阵和加权稀疏二阶矩子矩阵。加权稀疏一阶矩子矩阵为该参与成员的权重系数与稀疏一阶矩子矩阵的乘积,加权稀疏二阶矩子矩阵为所述权重系数与稀疏二阶矩子矩阵的乘积。具体地,更新参数获取单元414可以获取参与成员集合H={1,…,6,…,i,…r}上传的加权稀疏一阶矩子矩阵以及加权稀疏二阶矩子矩阵。
步骤550,基于各参与成员的更新参数更新待训练模型的当前网络层的模型参数。
在一些实施例中,步骤550可以由当前网络层参数更新单元515执行。
在一些实施例中,更新参数获取单元414获取到的更新参数可以是各参与成员所计算的稀疏一阶矩子矩阵和稀疏二阶矩子矩阵。在该场景的实施例中,网络层参数更新单元515可以计算各参与成员的稀疏一阶矩子矩阵的第一和矩阵(如下式8所示);计算各参与成员的稀疏二阶矩子矩阵的第二和矩阵(如下式9所示);并基于所述第一和矩阵与所述第二和矩阵确定与当前网络层的模型参数一一对应的多个调参增量(如下式10所示);基于各个调参增量调整当前网络层的各模型参数(如下式11所示)。
其中, 、 、、分别表示当前网络层(第s轮迭代第j层网络层)对应的第一和矩阵、第二和矩阵、调参增量矩阵和对应更新的模型参数;表示第一和矩阵中的某元素,表示第二和矩阵中与对应的元素,是上一轮(s-1轮)迭代对应的第j层网络层模型参数;是学习率,一般取值在0~1之间;是一个非0的常数,用以保证式(10)的分母不为零,如取值。
在一些实施例中,更新参数获取单元414获取到的更新参数可以是各参与成员所计算的加权稀疏一阶矩子矩阵和加权稀疏二阶矩子矩阵。在该场景的实施例中,网络层参数更新单元515可以计算各参与成员的加权稀疏一阶矩子矩阵的第一和矩阵(如下式12所示);计算各参与成员的加权稀疏二阶矩子矩阵的第二和矩阵(如下式13所示)。
进一步地,基于式(12)、(13)所计算的第一和矩阵与第二和矩阵确定与当前网络层的模型参数一一对应的多个调参增量(如上式10所示);并基于各个调参增量调整当前网络层的各模型参数(如上式11所示)。
在一些实施例中,各参与成员上传的更新参数可以是密态的。在该场景的实施例中,在执行步骤550之前,当前网络层参数更新单元515需要先对更新参数进行解密,进而基于解密的更新参数按式(8)~(13)的方式进行当前网络层的更新。
下面,以各参与成员上传的更新参数包括加权稀疏一阶矩子矩阵以及稀疏二阶矩子矩阵为例进行示例性说明。在该场景的实施例中,步骤540处,服务器获取到的参与成员集合H={1,…,6,…,i,…r}上传更新参数包括密态加权稀疏一阶矩以及密态加权稀疏二阶矩。
在一些实施例中,各参与成员可以采用秘密分享的方式对更新参数进行加密。具体地,各参与成员可以将获得的加权稀疏一阶矩子矩阵和加权稀疏二阶矩子矩阵进行拆分,得到多个(如r个)秘密分片,将r-1个秘密分片发送给其他参与成员,同时获得来自其他参与成员的秘密分片,进而基于自身保留的秘密分片与其他参与成员的秘密分片进行融合(如相加)得到密文形式的融合结果,将融合结果传输给服务器。服务器获取待所有参与成员上传密文形式的融合结果再次融合(如进行求和),进而得到明文数据下的第一和矩阵和第二和矩阵。
在一些实施例中,各参与成员还可以采用同态加密的方式对更新参数进行加密。具体地,由可信第三方或者是参与成员的一方生成一组秘钥对 <pk,sk>,这一组秘钥对由所有参与成员持有,但不被服务器所知悉。各训练成员上传的更新参数均用这一组公钥对进行同态加密(如全同态加密),而后上传服务器,服务器基于密态的更新参数求和得到密态的第一和矩阵和密态的第二和矩阵,并基于公式10、11计算得到密态下的模型参数,最后将密态的当前层的模型参数下发给各参与成员,参与成员利用私钥对密态的当前层模型参数解密,得到更新后的当前层模型参数。应当理解,在本实施例中,服务器端始终只保存有各轮迭代更新获取的密态下的模型参数。
在一些实施例中,还可以采用差分隐私的方式对更新参数进行加密。具体地,各参与成员基于差分隐私理论,生成与更新参数同维的噪声矩阵。进一步地,用噪声矩阵中与更新参数元素位置相同的噪声值对各元素进行加密(如将不同的噪声值分别叠加到加权稀疏一阶矩子矩阵和加权稀疏二阶矩子矩阵的各个元素中);服务器基于密态的更新参数求和,得到(近似的)第一和矩阵和(近似的)第二和矩阵,服务器进一步基于公式10、11计算得到更新后的当前层模型参数,最后将更新后的当前层模型参数下发给各参与成员。
各参与成员采用加密的方式上传更新参数,可以有效保证各参与成员明文状态的更新参数不被服务器所知悉,从而有效地保证了各参与成员数据的安全性。
步骤510~550是以第s轮迭代第j层网络层更新为例进行的示例性说明。类似地,可以对第s轮迭代中其他网络层1,2,…,n采用相同的方式进行网络层模型的逐层更新。具体地,可以基于步骤510~550筛选出每个网络层对应的参与成员集合,并要求其上传更新参数;基于各训练成员上传的更新参数得到对应网络层的第一和矩阵、第二和矩阵,以得到对应网络层的调参增量从而更新对应网络层模型,直至逐层完成所有的网络层的更新,至此完成一轮完整的模型参数的迭代更新过程。
在一些实施例中,网络层模型的逐层更新是指以层为单位,一层一层更新网络层模型,但是对各网络层模型参数的更新序不做限制。换言之,可以按照各种顺序完成某轮迭代中网络层模型参数。例如,网络层模型参数的更新顺序可以是依照网络层的层数顺序依次进行(如,可以依据网络层的层数顺序1,2,…,n的方式进行逐层更新)。又例如,可以先完成奇数层网络层模型参数的更新,再完成偶数层网络层模型参数的更新。再例如,可以先完成中间几层(如第10~18层)网络层的更新,再完成其余层层网络层的更新等。
进一步地,本领域技术人员可以在知悉本说明书原理的基础上对本说明书的方案进行变换。例如,可以在获得某几层调参增量(或者某几层对应的第一和矩阵、第二和矩阵)后,对网络层模型参数进行同时更新(如,可以在获得1~10层调参增量后,对1~10层对应的网络层模型参数进行同时更新)。又例如,可以在获得所有网络层对应的调参增量(或者所有网络层对应的第一和矩阵、第二和矩阵)后,对所有网络层对应的模型参数进行同时更新。类似这样的变化,依然在本说明书的保护范围内。
本说明书实施例可能带来的有益效果包括但不限于:(1)采用Adam算法进行联邦学习,降低了因样本差异所导致的梯度偏差对模型更新的影响,提高了模型联合训练的收敛速度;(2)基于稀疏矩阵值筛选出稀疏矩阵值较大的部分训练成员,使得整个训练过程中仅需要筛选出的部分训练成员传输稀疏一阶矩子矩阵和稀疏二阶矩子矩阵,大幅度地降低训练过程的总传输量,有效保证了训练效率;(3)各个训练成员经过预训练所获得调试好的一阶矩系数和二阶矩系数,可以使得各训练成员得到更适配于本地样本集超参数,进一步提高模型的准确性。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、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 (15)
1.一种基于联邦学习进行模型参数更新的方法,所述方法由参与方中的任一训练成员实现,其中,所述参与方包括多个训练成员以及服务器,所述方法包括对模型参数进行多轮迭代更新,其中一轮迭代更新包括:
获取与其他参与方具有相同结构的待训练模型,所述待训练模型包括多个网络层;
基于自身持有的训练样本及样本标签对所述待训练模型进行训练,获得梯度矩阵;
基于所述梯度矩阵更新一阶矩矩阵和二阶矩矩阵,其中,所述一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的多个层向量,每个层向量的元素与对应网络层中的模型参数一一对应;
与服务器交互,逐层传输所述一阶矩矩阵和所述二阶矩矩阵中至少部分层向量中的至少部分元素给所述服务器,以便服务器逐层更新模型参数;
从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一次训练,或者基于此确定最终模型;
其中,与服务器交互,逐层传输所述一阶矩矩阵和所述二阶矩矩阵中至少部分层向量中的至少部分元素给所述服务器,以便服务器逐层更新模型参数,包括对一阶矩矩阵或二阶矩矩阵中每一层向量:
分别从一阶矩矩阵和二阶矩矩阵的该层向量中提取部分元素,获得稀疏一阶矩向量和稀疏二阶矩向量;
基于稀疏一阶矩向量和/或稀疏二阶矩向量生成稀疏向量值;
将所述稀疏向量值上传给服务器,以便服务器将各稀疏矩阵值进行降序排列,获取排序靠前的多个稀疏矩阵值对应的训练成员作为当前网络层更新的参与成员;
基于服务器的指示确定是否参与服务器端待训练模型的当前网络层更新,若参与,则向服务器上传更新参数,所述更新参数携带有稀疏一阶矩向量与稀疏二阶矩向量以便服务器更新待训练模型的当前网络层的模型参数。
2.根据权利要求1所述的方法,所述分别从一阶矩矩阵和二阶矩矩阵的该层向量中提取部分元素,获得稀疏一阶矩向量和稀疏二阶矩向量,包括:
基于提取比例保留所述一阶矩矩阵的所述该层向量中较大的若干个元素,其余元素设为0,获得稀疏一阶矩向量;
基于所述稀疏一阶矩向量中所述较大的若干个元素的位置,保留所述二阶矩矩阵的所述该层向量中的同位置元素,其余元素设为0,获得稀疏二阶矩向量;
或者包括:
基于提取比例保留所述二阶矩矩阵的所述该层向量中较大的若干个元素,其余元素设为0,获得稀疏二阶矩向量;
基于所述稀疏二阶矩向量中所述较大的若干个元素的位置,保留所述一阶矩矩阵的所述该层向量中的同位置元素,其余元素设为0,获得稀疏一阶矩向量;
或者包括:
基于提取比例保留所述一阶矩矩阵的所述该层向量中较大的若干个元素,其余元素设为0,获得稀疏一阶矩向量;
基于提取比例保留所述二阶矩矩阵的所述该层向量中较大的若干个元素,其余元素设为0,获得稀疏二阶矩向量。
3.根据权利要求1所述的方法,所述稀疏向量值反应稀疏一阶矩向量中各元素绝对值之和、稀疏二阶矩向量中各元素绝对值之和或者稀疏一阶矩向量与稀疏二阶矩向量中各元素绝对值之和。
4.根据权利要求1所述的方法,所述基于服务器的指示确定是否参与服务器端待训练模型的当前网络层更新,包括:
当接收到服务器发送的权重系数时,确定参与服务器端待训练模型的当前网络层更新;其中,更新参数携带加权稀疏一阶矩向量与加权稀疏二阶矩向量,加权稀疏一阶矩向量为所述权重系数与稀疏一阶矩向量的乘积,加权稀疏二阶矩向量为所述权重系数与稀疏二阶矩向量的乘积。
5.根据权利要求4所述的方法,所述更新参数包括密态的加权稀疏一阶矩向量与密态的加权稀疏二阶矩向量。
6.根据权利要求1所述的方法,所述一阶矩矩阵的元素为前一轮迭代的一阶矩矩阵对应元素与所述梯度矩阵对应元素的加权和,所述二阶矩矩阵的元素为前一轮迭代的二阶矩矩阵对应元素与所述梯度矩阵对应元素的平方的加权和。
7.一种基于联邦学习进行模型参数更新的系统,所述系统布置在参与方中的任一训练成员处,其中,所述参与方包括多个训练成员以及服务器,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:
待训练模型获取模块:用于获取与其他参与方具有相同结构的待训练模型,所述待训练模型包括多个网络层;
梯度矩阵获取模块:用于基于自身持有的训练样本及样本标签对所述待训练模型进行训练,获得梯度矩阵;
一阶矩/二阶矩矩阵更新模块:用于基于所述梯度矩阵更新一阶矩矩阵和二阶矩矩阵,其中,所述一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的多个层向量,每个层向量的元素与对应网络层中的模型参数一一对应;
矩阵传输模块:用于与服务器交互,逐层传输所述一阶矩矩阵和所述二阶矩矩阵中至少部分层向量中的至少部分元素给所述服务器,以便服务器逐层更新模型参数;其中,对一阶矩矩阵或二阶矩矩阵中每一层向量,所述矩阵传输模块还用于:分别从一阶矩矩阵和二阶矩矩阵的该层向量中提取部分元素,获得稀疏一阶矩向量和稀疏二阶矩向量;基于稀疏一阶矩向量和/或稀疏二阶矩向量生成稀疏向量值;将所述稀疏向量值上传给服务器,以便服务器将各稀疏矩阵值进行降序排列,获取排序靠前的多个稀疏矩阵值对应的训练成员作为当前网络层更新的参与成员;基于服务器的指示确定是否参与服务器端待训练模型的当前网络层更新,若参与,则向服务器上传更新参数,所述更新参数携带有稀疏一阶矩向量与稀疏二阶矩向量以便服务器更新待训练模型的当前网络层的模型参数;
模型更新模块,用于从所述服务器获取更新后的模型参数以将其作为待训练模型进行下一次训练,或者基于此确定最终模型。
8.一种基于联邦学习进行模型参数更新的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求1至7中任一项所述基于联邦学习进行模型参数更新的操作。
9.一种基于联邦学习进行模型参数更新的方法,所述方法由参与方中的服务器实现,其中,所述参与方包括多个训练成员以及服务器;所述方法包括对待训练模型的模型参数进行多轮迭代更新,所述待训练模型包括多个网络层,其中一轮迭代更新包括:
与各训练成员交互,指示各训练成员逐层传输其当前轮的一阶矩矩阵和二阶矩矩阵中至少部分层向量中的至少部分元素,以便逐层更新模型参数;所述一阶矩矩阵和二阶矩矩阵分别基于训练成员当前轮本地模型训练得到的梯度矩阵确定,所述一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的多个层向量,每个层向量的元素与对应网络层中的模型参数一一对应;
所述与各训练成员交互,指示各训练成员逐层传输其当前轮的一阶矩矩阵和二阶矩矩阵中至少部分层向量中的至少部分元素,以便逐层更新模型参数包括对每一网络层更新,包括:
获取各训练成员上传的稀疏向量值;
将各稀疏向量值进行降序排列,获取排序靠前的多个稀疏向量值对应的训练成员作为当前网络层更新的参与成员;
指示各参与成员参与当前网络层更新;
获取各参与成员上传的更新参数,所述更新参数携带有当前网络层对应的稀疏一阶矩向量与稀疏二阶矩向量;所述稀疏一阶矩向量和所述稀疏二阶矩向量分别从一阶矩矩阵和二阶矩矩阵的该层向量中提取部分元素获得;
基于各参与成员的更新参数更新待训练模型的当前网络层的模型参数。
10.根据权利要求9所述的方法,所述指示各参与成员参与当前网络层更新,包括:
计算各训练成员的稀疏向量值的和值;
基于各参与成员的稀疏向量值与所述和值的比例,确定各参与成员的权重系数;
将各权重系数下发给对应的参与成员,以指示各参与成员参与当前网络层更新。
11.根据权利要求10所述的方法,所述更新参数携带对应参与成员的加权稀疏一阶矩向量与加权稀疏二阶矩向量,加权稀疏一阶矩向量为该参与成员的权重系数与稀疏一阶矩向量的乘积,加权稀疏二阶矩向量为所述权重系数与稀疏二阶矩向量的乘积。
12.根据权利要求11所述的方法,所述基于各参与成员的更新参数更新待训练模型的当前网络层的模型参数,包括:
计算各参与成员的加权稀疏一阶矩向量的第一和向量;
计算各参与成员的加权稀疏二阶矩向量的第二和向量;
基于所述第一和向量与所述第二和向量确定与当前网络层的模型参数一一对应的多个调参增量;
基于各个调参增量调整当前网络层的各模型参数。
13.根据权利要求11所述的方法,所述更新参数包括密态的加权稀疏一阶矩向量与密态的加权稀疏二阶矩向量;
在基于各参与成员的更新参数更新待训练模型的当前网络层的模型参数,还包括解密密态的加权稀疏一阶矩向量与密态的加权稀疏二阶矩向量。
14.一种基于联邦学习进行模型参数更新的系统,所述系统布置在参与方中的服务器处,其中,所述参与方包括多个训练成员以及服务器,所述系统用于对模型参数进行多轮迭代更新;所述系统包括:
模型参数更新模块:与各训练成员交互,指示各训练成员逐层传输其当前轮的一阶矩矩阵和二阶矩矩阵中至少部分层向量中的至少部分元素,以便逐层更新模型参数;其进一步包括以下单元以完成任一轮迭代更新:
稀疏向量值获取单元,用于获取各训练成员上传的稀疏向量值;
参与成员选择单元,用于将各稀疏向量值进行降序排列,获取排序靠前的多个稀疏向量值对应的训练成员作为当前网络层更新的参与成员;
更新指示单元,用于指示各参与成员参与当前网络层更新;
更新参数获取单元,用于获取各参与成员上传的更新参数,所述更新参数携带有当前网络层对应的稀疏一阶矩向量与稀疏二阶矩向量;
当前网络层参数更新单元,用于基于各参与成员的更新参数更新待训练模型的当前网络层的模型参数;
其中,所述一阶矩矩阵和二阶矩矩阵分别基于训练成员当前轮本地模型训练得到的梯度矩阵确定,所述一阶矩矩阵和二阶矩矩阵分别包括与待训练模型网络层一一对应的多个层向量,每个层向量的元素与对应网络层中的模型参数一一对应。
15.一种基于联邦学习进行模型参数更新的装置,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述处理器用于执行所述指令,以实现如权利要求9至13中任一项所述基于联邦学习进行模型参数更新的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011593534.1A CN112396191B (zh) | 2020-12-29 | 2020-12-29 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011593534.1A CN112396191B (zh) | 2020-12-29 | 2020-12-29 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112396191A CN112396191A (zh) | 2021-02-23 |
CN112396191B true CN112396191B (zh) | 2021-05-11 |
Family
ID=74625508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011593534.1A Active CN112396191B (zh) | 2020-12-29 | 2020-12-29 | 一种基于联邦学习进行模型参数更新的方法、系统及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112396191B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113128700A (zh) * | 2021-03-23 | 2021-07-16 | 同盾控股有限公司 | 安全多方计算的联邦模型训练加速的方法和系统 |
CN113011587B (zh) * | 2021-03-24 | 2022-05-10 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的模型训练方法和系统 |
CN112799708B (zh) * | 2021-04-07 | 2021-07-13 | 支付宝(杭州)信息技术有限公司 | 联合更新业务模型的方法及系统 |
CN113807538B (zh) * | 2021-04-09 | 2024-02-06 | 京东科技控股股份有限公司 | 联邦学习方法、装置、电子设备及存储介质 |
CN113516253B (zh) * | 2021-07-02 | 2022-04-05 | 深圳市洞见智慧科技有限公司 | 一种联邦学习中数据加密优化方法及装置 |
CN113722760A (zh) * | 2021-09-06 | 2021-11-30 | 支付宝(杭州)信息技术有限公司 | 一种隐私保护的模型训练方法和系统 |
CN114676849B (zh) * | 2022-03-24 | 2024-09-17 | 支付宝(杭州)信息技术有限公司 | 基于联邦学习进行模型参数更新的方法及系统 |
CN114841361A (zh) * | 2022-03-26 | 2022-08-02 | 华为技术有限公司 | 一种模型训练方法及其相关设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460528A (zh) * | 2020-04-01 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种基于Adam优化算法的多方联合训练方法及系统 |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167695B (zh) * | 2018-10-26 | 2021-12-28 | 深圳前海微众银行股份有限公司 | 基于联邦学习的联盟网络构建方法、设备及可读存储介质 |
CN109492420B (zh) * | 2018-12-28 | 2021-07-20 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、终端、系统及介质 |
-
2020
- 2020-12-29 CN CN202011593534.1A patent/CN112396191B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111460528A (zh) * | 2020-04-01 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种基于Adam优化算法的多方联合训练方法及系统 |
CN111931950A (zh) * | 2020-09-28 | 2020-11-13 | 支付宝(杭州)信息技术有限公司 | 一种基于联邦学习进行模型参数更新的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112396191A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112396191B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN112288100B (zh) | 一种基于联邦学习进行模型参数更新的方法、系统及装置 | |
CN111931950B (zh) | 一种基于联邦学习进行模型参数更新的方法及系统 | |
Ashmore et al. | Machine learning calabi–yau metrics | |
US11250308B2 (en) | Apparatus and method for generating prediction model based on artificial neural network | |
WO2018227800A1 (zh) | 一种神经网络训练方法及装置 | |
CN113011587B (zh) | 一种隐私保护的模型训练方法和系统 | |
Mehrkanoon et al. | Approximate solutions to ordinary differential equations using least squares support vector machines | |
US11423325B2 (en) | Regression for metric dataset | |
CN110880036A (zh) | 神经网络压缩方法、装置、计算机设备及存储介质 | |
CN114600106A (zh) | 嵌入的在线联邦学习 | |
Hong et al. | Preservation of quadratic invariants of stochastic differential equations via Runge–Kutta methods | |
CN105335619A (zh) | 适用于高计算代价数值计算模型参数反分析的协同优化法 | |
CN110874636A (zh) | 一种神经网络模型压缩方法、装置和计算机设备 | |
CN106485348A (zh) | 一种交易数据的预测方法及装置 | |
CN112330048A (zh) | 评分卡模型训练方法、装置、存储介质及电子装置 | |
Zhao et al. | Inverse analysis of geomechanical parameters by the artificial bee colony algorithm and multi-output support vector machine | |
Perrier et al. | Quantum geometric machine learning for quantum circuits and control | |
CN106355191A (zh) | 一种深度生成网络随机训练算法及装置 | |
CN113379039B (zh) | 一种模型训练的方法、系统及装置 | |
Kek et al. | An integrated optimal control algorithm for discrete-time nonlinear stochastic system | |
CN108694232B (zh) | 一种基于信任关系特征学习的社会化推荐方法 | |
Dulny et al. | NeuralPDE: modelling dynamical systems from data | |
Yacoubi | A mathematical method for control problems on cellular automata models | |
Duarte et al. | Dealing with missing information in data envelopment analysis by means of low-rank matrix completion |
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 |