基于联邦学习的模型训练验证方法、装置、设备及介质与流程

文档序号:26754560发布日期:2021-09-25 03:34阅读:165来源:国知局
基于联邦学习的模型训练验证方法、装置、设备及介质与流程

1.本发明涉及人工智能技术领域,尤其涉及一种基于联邦学习的模型训练验证方法、装置、设备及介质。


背景技术:

2.现有的联邦学习大多假设参与方为半诚实的,即只按照协议流程进行模型训练而不会进行任何破坏行为。但这一假设在实际应用过程中显得过于理想。事实上,联邦学习的参与方可能有以下行为:
3.1、该参与方为偷懒节点,该节点可能传输从别人那里得到、自己在以前的训练回合所得到的虚假的、毫无意义的加密梯度信息给其他参与方。
4.2、该参与方可能为恶意节点或者是被恶意攻击者攻占的节点,该节点可能传输错误的加密梯度信息来干扰模型训练过程。
5.在实际应用中,由于联邦学习的参与方可能存在上述干扰行为,导致实际进行模型训练时,无法保证模型训练过程的安全性需求。


技术实现要素:

6.本发明实施例提供一种基于联邦学习的模型训练验证方法、装置、设备及介质,以解决目前基于联邦学习进行模型训练时,无法保证模型训练过程的安全性需求。
7.一种基于联邦学习的模型训练验证方法,应用于联邦学习系统中,所述联邦学习系统包括第一训练终端、第二训练终端以及可信终端;所述基于联邦学习的模型训练验证方法包括:
8.通过所述可信终端基于所述第二训练终端发送的待验证参数以及第二证明文件进行零知识证明,以验证所述第二训练终端的训练过程是否准确;其中,所述待验证参数包括第二中间加密参数以及第二加密模型参数;所述第二中间加密参数为所述第二训练终端基于对应的模型权重以及第二本地数据计算得到;
9.当验证通过时,通过所述可信终端将所述第二中间加密参数发送至所述第一训练终端,以使所述第一训练终端基于对应的第一本地数据以及所述第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件;
10.通过所述可信终端基于所述第一加密模型参数以及所述第一证明文件进行零知识证明,以验证所述第一训练终端的训练过程是否准确;
11.当验证通过时,通过所述可信终端根据所述第一加密模型参数以及第二加密模型参数,更新所述模型权重,以使所述第一训练终端以及所述第二训练终端根据更新后的模型权重进行模型训练;其中,所述第二加密模型参数为所述第二训练终端基于所述第二中间加密参数以及所述第二本地数据计算得到。
12.一种基于联邦学习的模型训练验证装置,包括:
13.第一训练验证模块,用于通过所述可信终端基于所述第二训练终端发送的待验证
参数以及第二证明文件进行零知识证明,以验证所述第二训练终端的训练过程是否准确;其中,所述待验证参数包括第二中间加密参数以及第二加密模型参数;所述第二中间加密参数为所述第二训练终端基于对应的模型权重以及第二本地数据计算得到;
14.第一训练终端训练模块,用于当验证通过时,通过所述可信终端将所述第二中间加密参数发送至所述第一训练终端,以使所述第一训练终端基于对应的第一本地数据以及所述第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件;
15.第二训练验证模块,用于通过所述可信终端基于所述第一加密模型参数以及所述第一证明文件进行零知识证明,以验证所述第一训练终端的训练过程是否准确;
16.模型更新模块,用于当验证通过时,通过所述可信终端根据所述第一加密模型参数以及第二加密模型参数,更新所述模型权重,以使所述第一训练终端以及所述第二训练终端根据更新后的模型权重进行模型训练;其中,所述第二加密模型参数为所述第二训练终端基于所述第二中间加密参数以及所述第二本地数据计算得到。
17.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于联邦学习的模型训练验证方法的步骤。
18.一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于联邦学习的模型训练验证方法的步骤。
19.上述基于联邦学习的模型训练验证方法、装置、设备及介质中,通过所述可信终端基于所述第二训练终端发送的待验证参数以及第二证明文件进行零知识证明,以验证所述第二训练终端的训练过程是否准确,当验证通过时,通过所述可信终端将所述第二中间加密参数发送至所述第一训练终端,以使所述第一训练终端基于对应的第一本地数据以及所述第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件,然后,通过所述可信终端基于所述第一加密模型参数以及所述第一证明文件进行零知识证明,以验证所述第一训练终端的训练过程是否准确,当验证通过时,通过所述可信终端根据所述第一加密模型参数以及第二加密模型参数,更新所述模型权重,以使所述第一训练终端以及所述第二训练终端根据更新后的模型权重进行模型训练,实现联邦学习全流程的零知识证明,验证训练过程中不同计算过程的准确性,从而实现对该联邦学习场景下攻击者的检测,保证联邦学习训练过程的安全性。
附图说明
20.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1是本发明一实施例中基于联邦学习的模型训练验证方法的一流程图;
22.图2是本发明一实施例中基于联邦学习的模型训练验证方法的一流程图;
23.图3是本发明一实施例中基于联邦学习的模型训练验证方法的一流程图;
24.图4是图3中步骤s302的一具体流程图;
25.图5是本发明一实施例中基于联邦学习的模型训练验证方法的一流程图;
26.图6是图1中步骤s104的一具体流程图;
27.图7是本发明一实施例中基于联邦学习的模型训练验证装置的一示意图;
28.图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
29.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.该基于联邦学习的模型训练验证方法可应用一种联邦学习系统中,该联邦学习系统包括第一训练终端、第二训练终端以及可信终端;不同的训练终端训练对应的本地局部模型;其中,第一训练终端即指本地既有训练样本(即第一本地训练数据)的特征数据,同时该训练样本也有对应的真实标注数据。第二训练终端即指本地仅有训练样本的特征数据,而该训练样本(即第二本地数据)未有对应的真实标注数据,即该训练样本未被标注。于本实施例中,该第一训练终端与第二训练终端具有相同的客户以及不同的客户特征。可信终端即为用于进行全局网络训练的受信任的第三方。需要说明的是,本方法可应用于不同种类的模型进行训练验证,以下说明以该方法应用于逻辑回归模型中并以全量数据进行训练为例进行说明。
31.具体地,为便于理解,此处针对文中涉及的参数标识说明:第一中间加密参数[u]、第二中间加密参数[w]、第一加密模型参数[z']、第二加密模型参数[z]、[
·
]表征同态加密,模型权重θ(包括第一训练终端对应的模型权重θ
a
和第二训练终端对应的模型权重θ
b
),第一本地数据(x
a
,y
a
),第二本地数据x
b
,第一承诺数据第二承诺数据全局梯度

l(θ)、r
a
表示第一训练终端生成的随机数、r
b
表示第二训练终端生成的随机数;π1表示第一证明文件,通过prove(pp1,x,a)生成、π2表示第二证明文件,通过prove(pp2,x,a)生成、π3表示第三证明文件,通过prove(pp2,x,a)生成、第一本地默克尔树(r
t,x
,r
t,y
)、第二本地默克尔树r
t,b
、第四证明文件(π
t,x
,π
t,y
)或π
b,x
通过prove(pp4,x,a)生成、a表示公开参数、x表示秘密参数、setup(1
λ
,c1)

pp1、setup(1
λ
,c2)

pp2、setup(1
λ
,c2)

pp3以及setup(1
λ
,c4)

pp4;c1,c2,c3,c4表示零知识证明电路。
[0032]
需要说明的是,本实施例中对于整个训练过程进行验证时,若验证不通过则可证明该训练终端为恶意节点,即返回验证失败的结果,并将当前处理节点返回至上一级训练终端处重新进行计算,并再次通过可信终端进行零知识证明验证,即只有当可信终端验证通过时,才会进行下一步训练,否则退回至上一步进行重新计算和验证,或者直接建模失败,以保证建模的有效性。
[0033]
在一实施例中,如图1所示,提供一种基于联邦学习的模型训练验证方法,具体包括如下步骤:
[0034]
s101:通过可信终端基于第二训练终端发送的待验证参数以及第二证明文件进行零知识证明,以验证第二训练终端的训练过程是否准确;其中,待验证参数包括第二中间加密参数以及第二加密模型参数;第二中间加密参数为第二训练终端基于对应的模型权重以及第二本地数据计算得到。
[0035]
其中,通过预先确定模型的梯度计算公式,并根据不同的训练终端的数据将该梯度计算公式分解为多个局部计算公式,以使对应的训练终端基于局部计算公式根据本地数据在同态加密机制下进行计算,以得到加密模型参数。
[0036]
需要说明的是,在零知识证明体系下,针对不同的局部计算公式以零知识证明电路进行描述,该零知识证明电路描述了场景中各个数据对象间的映射关系,通过零知识电路将场景中的公开参数和秘密参数的映射关系联系在一起,为参数构造了约束关系,只有满足电路约束关系的参数,才是符合具体场景的参数。
[0037]
在进行零知识证明时,被验证方(即发送方)在提供证据时,提供的是公开参数和秘密参数转化后的证明文件。验证方(即接收方)在验证时,验证证明文件和公开参数是否满足电路约束关系。若满足,则验证方可确信被验证方是拥有相应的秘密参数(即加密模型参数)的。其中,证明文件由被验证方在prove(证明)阶段生成。被验证方根据自己拥有的公开参数和秘密参数,计算零知识电路中的各个电路变量,再利用公开参数,将电路变量转化成证明文件。验证方可根据证明文件验证上述计算过程的正确性,进而可认为被验证方拥有相应的秘密参数信息,且不能通过证明文件反推被验证方的秘密参数。
[0038]
本实施例中采用bulletproofs作为零知识证明的实现方式,它允许用户以非交互式的方式提供证明,且该证明可以以很短的时间验证。通过采用bulletproofs作为零知识证明的实现方式,即无需可信的密钥生成阶段,实现零知识证明的任意陈述,可打破传统zk

snkar等零知识证明需要依赖于可信的密钥启动的局限性。具体地,bulletproofs零知识证明体系包含以下三个过程:
[0039]
1、setup(1
λ
,c)

pp。其中,λ为正整数安全参数,c为零知识证明电路,pp表示公共参数,即用于验证或证明的密钥,这一过程仅在系统初始化过程中运行一次。于本实施例中,包括c1,c2,c3,c4四个零知识证明电路。其中,c1表征第一训练终端计算第一中间加密参数[u]的计算过程;c2表征第二训练终端进行模型训练的训练过程;c3表征第一训练终端计算第一加密模型参数的计算过程;c4表征第一训练终端或第二训练终端对其本地数据进行数据承诺的计算过程。
[0040]
2、prove(pp,x,a)

π。其中,a为公开参数,即不需要隐私保护的输入数据;x为秘密参数,即需要隐私保护的输入数据。该过程中会产生证明文件π用于验证方进行验证。
[0041]
3、verify(pp,a,π)

b。其中,b为布尔值变量,表征是否验证正确。该过程通过公共输入a和被验证方传递而来的π,验证计算过程是否正确。
[0042]
其中,通过可信终端对接收到的待验证参数进行零知识证明,以验证第二训练终端的训练过程是否准确;其中,待验证参数包括第二中间加密参数[w]以及第二加密模型参数(即梯度数据);第二中间加密参数[w]为第二训练终端基于对应的模型权重θ
b
以及第二本地数据x
b
计算得到,即第二训练终端通过如下公式计算其中,[u]为第一训练终端根据对应的模型权重θ
a
以及第一本地数据x
a
计算得到,且通过可信终端零知识验证后发送的加密模型参数,即第一中间加密参数。[m]为可信终端生成的随机掩码并通过同态加密密钥(即公钥)加密后得到的加密值。该第二加密模型参数[z]即为第二训练终端对应的局部模型梯度,可通过如下公式计算[z]=x
b
[w]。该模型权重θ
b
为可信终端发送的初始模型权重或更新后的模型群权重。该模型权重θ
a
为可信终端发送的初始模型权重或
更新后的模型权重。
[0043]
具体地,通过可信终端设置公开参数以根据verify(pp2,a,π2)验证第二训练终端的训练过程是否准确。其中,pp2通过setup(1
λ
,c2)生成;c2表示零知识证明电路描述的计算过程,包括[z]=x
b
[w],[w],表示第二训练终端通过对第二本地数据x
b
进行pedersen承诺计算得到的第二承诺数据,r
b
表示第二训练终端生成的随机数;π2表示第二证明文件。
[0044]
s102:当验证通过时,通过可信终端将第二中间加密参数发送至第一训练终端,以使第一训练终端基于对应的第一本地数据以及第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件。
[0045]
具体地,当verify(pp2,a,π2)输出的布尔变量值为0,即验证通过,当验证通过时,即认为第二终端的训练过程准确,则该可信终端将第二中间加密参数发送至第一训练终端,以使第一训练终端基于对应的第一本地数据x
a
以及第二中间加密参数[w]进行模型训练,得到第一加密模型参数[z'],并生成第一证明文件。其中,第一加密模型参数为第一训练终端对应的局部模型梯度,可通过如下公式计算[z']=x
a
[w]。
[0046]
s103:通过可信终端基于第一加密模型参数以及第一证明文件进行零知识证明,以验证第一训练终端的训练过程是否准确。
[0047]
具体地,通过可信终端设置公开参数以根据verify(pp1,a,π1)验证第二训练终端的训练过程是否准确。其中,pp1通过setup(1
λ
,c1)生成;c1表示零知识证明电路描述的计算过程,包括电路描述的计算过程,包括表示第一训练终端通过对第一本地数据x
a
进行pedersen承诺计算得到的第一承诺数据,r
a
表示第一训练终端生成的随机数;π1表示第一证明文件。
[0048]
s104:当验证通过时,通过可信终端根据第一加密模型参数以及第二加密模型参数,更新模型权重,以使第一训练终端以及第二训练终端根据更新后的模型权重进行模型训练;其中,第二加密模型参数为第二训练终端基于第二中间加密参数以及第二本地数据计算得到。
[0049]
具体地,可信终端通过对第一加密模型参数[z’]以及第二加密模型参数[z]进行矩阵拼接,并通过同态加密密钥对中私钥进行解密,以得到全局梯度

l(θ),并通过如下公式θ=θ

η(

l(θ)+γθ),更新模型权重θ(包括第一训练终端对应的模型权重θ
a
和第二训练终端对应的模型权重θ
b
)。其中,η为学习率,γ为正则化矩阵。
[0050]
然后,将更新后的模型权重发送给对应的训练终端,即将模型权重θ
a
发送给第一训练终端,将模型权重θ
b
发送给第二训练终端,以使第一训练终端根据θ
a
更新本地局部模型,使第二训练终端根据θ
b
更新本地局部模型。
[0051]
本实施例中,通过可信终端基于第二训练终端发送的待验证参数以及第二证明文件进行零知识证明,以验证第二训练终端的训练过程是否准确,当验证通过时,通过可信终端将第二中间加密参数发送至第一训练终端,以使第一训练终端基于对应的第一本地数据以及第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件,然
后,通过可信终端基于第一加密模型参数以及第一证明文件进行零知识证明,以验证第一训练终端的训练过程是否准确,当验证通过时,通过可信终端根据第一加密模型参数以及第二加密模型参数,更新模型权重,以使第一训练终端以及第二训练终端根据更新后的模型权重进行模型训练,实现联邦学习全流程的零知识证明,验证训练过程中不同计算过程的准确性,从而实现对该联邦学习场景下攻击者的检测,保证联邦学习训练过程的安全性。
[0052]
在一实施例中,如图2所示,该基于联邦学习的模型训练验证方法还包括如下步骤:
[0053]
s201:通过第一训练终端基于模型权重以及对应的第一本地数据,计算第一中间加密参数,并生成第三证明文件。
[0054]
具体地,通过第一训练终端根据对应的模型权重θ
a
以及第一本地数据x
a
计算得到,其计算公式为其中,y
a
表示真实标注数据。然后,第一训练终端通过设置x=(x
a
,y
a
),并通过prove(pp3,x,a)生成第三证明文件π3;其中,pp3通过setup(1
λ
,c3)生成;c3表示零知识证明电路描述的计算过程,包括其中,r
a
与r'
a
可相同或不同,此处不做限定。第一承诺数据表示第一训练终端通过对第一本地数据(x
a
,y
a
)进行pedersen承诺计算得到,r
a
表示第一训练终端生成的随机数。
[0055]
s202:通过可信终端基于第三证明文件以及第一中间加密参数进行零知识证明,以验证第一训练终端的计算过程是否准确。
[0056]
具体地,通过可信终端设置公开参数以根据verify(pp3,a,π3)验证第二训练终端的训练过程是否准确。若验证准确,则认为第一训练终端为善意节点;若验证失败,则认为第一训练终端为恶意节点。
[0057]
s203:当验证通过时,通过可信终端将第一中间加密参数发送至第二训练终端,以使第二训练终端基于对应的模型权重、第二本地数据以及第一中间加密参数,计算待验证参数,并生成第二证明文件。
[0058]
具体地,通过第二训练终端根据对应的模型权重θ
b
以及第一本地数据x
b
计算得到,其计算公式为[z]=x
b
[w]。其中,第二训练终端通过设置x=(x
b
),并通过prove(pp2,x,a)生成第二证明文件π2。
[0059]
s204:通过可信终端对接收到的第二中间加密参数进行零知识证明,以验证第二训练终端的训练过程是否准确;其中,第二中间加密参数为第二训练终端基于对应的模型权重以及第二本地数据计算得到。
[0060]
具体地,步骤s204与步骤s101是执行过程一致,为避免重复,此处不再赘述。
[0061]
s205:当验证通过时,通过可信终端将第二中间加密参数发送至第一训练终端,以使第一训练终端基于对应的第一本地数据以及第二中间加密参数进行模型训练,得到第一加密模型参数。
[0062]
具体地,步骤s204与步骤s102是执行过程一致,为避免重复,此处不再赘述。
[0063]
s206:通过可信终端对接收到的第一加密模型参数进行零知识证明,以验证第一训练终端的训练过程是否准确。
[0064]
具体地,步骤s204与步骤s103是执行过程一致,为避免重复,此处不再赘述。
[0065]
s207:当验证通过时,通过可信终端根据第一加密模型参数以及第二加密模型参数,更新模型权重,以使第一训练终端以及第二训练终端根据更新后的模型权重进行模型训练;其中,第二加密模型参数为第二训练终端基于第二中间加密参数以及第二本地数据计算得到。
[0066]
具体地,步骤s204与步骤s104是执行过程一致,为避免重复,此处不再赘述。
[0067]
在一实施例中,如图3所示,该基于联邦学习的模型训练验证方法还包括如下步骤:
[0068]
s301:通过可信终端接收第一训练终端构造的第一本地默克尔树以及第二训练终端构造的第二本地默克尔树;或者,
[0069]
s302:通过可信终端根据接收到的第一训练终端发送的第一承诺数据构造第一默克尔树,以及根据接收到的第二训练终端发送的第二承诺数据构造第二默克尔树。
[0070]
具体地,通过采用默克尔树(merkle)树作为数据承诺模块所使用的数据结构,即针对承诺后的数据构建merkle树减少证明的开销。其中,merkle树是一种特殊的二叉树,它的父亲节点是两个子孩子节点的哈希值,其根节点r
t
相当于所有数据的一种总结。
[0071]
于本实施例中,在验证承诺后的数据(或)是否属于合法集合时,可以直接验证merkle树中是否存在一条路径,其叶子节点为该数据且其根节点为r
t
,通过基于merkle树验证数据合法性,可有效避免传统通过将待验证的承诺数据与所有已存储的承诺数据进行比对来实现零知识证明的验证,有效降低验证的复杂度。
[0072]
其中,通过第一训练终端构造第一本地默克尔树包括,通过第一训练终端根据第一承诺数据构造默克尔树r
t,x
,以及通过第一训练终端根据第一承诺数据构造默克尔树r
t,y

[0073]
本实施例中,对于默克尔树的构造可包括两种方式,一种通过可信终端接收第一训练终端构造的第一本地默克尔树(r
t,x
,r
t,y
)以及第二训练终端构造的第二本地默克尔树r
t,b
;或者通过可信终端根据接收到的第一训练终端发送的第一承诺数据构造第一默克尔树(r
t,x
,r
t,y
),以及根据接收到的第二训练终端发送的第二承诺数据构造第二默克尔树r
t,b
,并且第一训练终端或第二训练终端以与可信终端通过相同的构造规则构造对应的默克尔树。需要说明的是,本实施例中的默克尔树构造过程可通过现有可实现的任意一种构造方式实现,此处不再详述。
[0074]
在一实施例中,步骤s103为,基于第一默克尔树、第一加密模型参数以及第一证明文件,验证第一训练终端的训练过程是否准确。
[0075]
本实施例中,在验证第一训练终端的训练过程是否准确时,首先需要确定承诺数据是否合法,故需要验证公共输入参数中的第一承诺数据是否在可信终端所存储的第一默克尔树中,若第一默克尔树中存在一条路径其叶子节点为该第一承诺数据且其根节点为
r
t,x
或r
t,y
,则证明该承诺数据合法有效,进而根据第一证明文件验证第一训练终端的训练过程是否准确。
[0076]
步骤s103具体为,基于第二默克尔树、第二中间加密参数以及第二证明文件,验证第二训练终端的训练过程是否准确。
[0077]
本实施例中,在验证第二训练终端的训练过程是否准确时,首先需要确定承诺数据是否合法,故需要验证公共输入参数中的第二承诺数据是否在可信终端所存储的第二默克尔树中,若第二默克尔树中存在一条路径其叶子节点为该第一承诺数据且其根节点为r
t,b
,则证明该第二承诺数据合法有效,进而根据第二证明文件验证第一训练终端的训练过程是否准确。
[0078]
在一实施例中,如图4所示,步骤s302具体包括如下步骤:
[0079]
s401:通过第一训练终端对第一本地数据进行承诺,得到第一承诺数据,以通过可信终端对第一承诺数据进行零知识证明,验证第一承诺数据是否准确。
[0080]
s402:若准确,则通过可信终端根据第一承诺数据构造第一默克尔树。
[0081]
具体地,第一训练终端对第一本地数据(x
a
,y
a
)进行数据承诺,即通过生成第一承诺数据然后第一训练终端通过设置x=(x
a
,r
a
),a=(),并通过prove(pp4,x,a)生成第四证明文件(π
t,x
,π
t,y
),并将π
a,x
,π
a,y
发送给可信终端,以使可信终端对第一承诺数据进行零知识证明,即设置a=(),verify(pp4,a,π
a,x
)以及verify(pp4,a,π
a,y
)验证第一训练终端的第一承诺数据是否正确。其中,pp1通过setup(1
λ
,c4)生成,c4表征第一训练终端对第一本地数据进行数据承诺的计算过程。当验证通过时,可信终端根据第一承诺数据构造第一默克尔树(r
a,x
,r
a,y
),即将作为叶子节点构造默克尔树r
t,x
,将作为叶子节点构造默克尔树r
t,y

[0082]
s403:通过第二训练终端对第二本地数据进行承诺,得到第二承诺数据,并对第二承诺数据进行零知识证明,以验证第二承诺数据是否准确。
[0083]
s404:若准确,则通过可信终端根据第一承诺数据构造第二默克尔树。
[0084]
具体地,第二训练终端对第二本地数据(x
b
)进行数据承诺,即通过生成第二承诺数据然后第一训练终端通过设置x=(x
b
,r
b
),a=(),并通过prove(pp4,x,a)生成第四证明文件π
b,x
,并将π
b,x
,发送给可信终端,以使可信终端对第二承诺数据进行零知识证明,即设置a=(),verify(pp4,a,π
b,x
)验证第二训练终端的第二承诺数据是否正确。其中,pp1通过setup(1
λ
,c4)生成,c4表征第二训练终端对第二本地数据进行数据承诺的计算过程。当验证通过时,可信终端根据第一承诺数据构造第二默克尔树(r
b,x
),即将作为叶子节点构造第二默克尔树r
b,x

[0085]
在一实施例中,如图5所示,该基于联邦学习的模型训练验证方法还包括如下步骤:
[0086]
s501:通过可信终端生成同态加密密钥对,并采用同态加密密钥对中的公钥对随机掩码进行加密,得到加密值。
[0087]
具体地,在步骤s401

s404之后,通过在初始运行一次setup(1
λ
,c)

pp函数,以生成后续训练过程所需的setup(1
λ
,c1)

pp1、setup(1
λ
,c2)

pp2、setup(1
λ
,c2)

pp3以及setup(1
λ
,c4)

pp4,然后,通过可信终端生成同态加密密钥对,采用同态加密密钥对中的公钥对随机掩码进行加密,得到加密值[m],并将加密值[m]以及公钥发送给第一训练终端和第二训练终端;然后,进行基于联邦学习的模型训练验证过程,即步骤s502

s508。
[0088]
s502:通过第一训练终端基于模型权重以及对应的第一本地数据,计算第一中间加密参数,并生成第三证明文件。
[0089]
具体地,步骤s502的执行过程与步骤s201一致,为避免重复,此处不再赘述。
[0090]
s503:通过可信终端基于第三证明文件以及第一中间加密参数进行零知识证明,以验证第一训练终端的计算过程是否准确。
[0091]
具体地,步骤s503的执行过程与步骤s202一致,为避免重复,此处不再赘述。
[0092]
s504:当验证通过时,通过可信终端将第一中间加密参数发送至第二训练终端,以使第二训练终端基于对应的模型权重、第二本地数据、第一中间加密参数以及加密值,计算待验证参数。
[0093]
具体地,步骤s504的执行过程与步骤s203一致,为避免重复,此处不再赘述。
[0094]
s505:通过可信终端基于第二训练终端发送的待验证参数以及第二证明文件进行零知识证明,以验证第二训练终端的训练过程是否准确。
[0095]
具体地,步骤s505的执行过程与步骤s101一致,为避免重复,此处不再赘述。
[0096]
s506:当验证通过时,通过可信终端将第二中间加密参数发送至第一训练终端,以使第一训练终端基于对应的第一本地数据以及第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件。
[0097]
具体地,步骤s506的执行过程与步骤s102一致,为避免重复,此处不再赘述。
[0098]
s507:通过可信终端基于第一加密模型参数以及第一证明文件进行零知识证明,以验证第一训练终端的训练过程是否准确。
[0099]
具体地,步骤s507与步骤s103的执行过程一致,为避免重复,此处不再赘述。
[0100]
s508:当验证通过时,通过可信终端根据第一加密模型参数以及第二加密模型参数,更新模型权重,以使第一训练终端以及第二训练终端根据更新后的模型权重进行模型训练。
[0101]
具体地,步骤s508与步骤s104的执行过程一致,为避免重复,此处不再赘述。
[0102]
在一实施例中,如图6所示,步骤s104中,即通过可信终端根据第一加密模型参数以及第二加密模型参数,更新模型权重具体包括如下步骤:
[0103]
s601:对第一加密模型参数以及第二加密模型参数进行拼接,得到全局梯度。
[0104]
s602:通过同态加密密钥对中的私钥对加密全局梯度进行解密,得到解密后的全局梯度。
[0105]
s603:根据全局梯度,更新模型权重。
[0106]
具体地,第一加密模型参数[z’]以及第二加密模型参数[z]的矩阵行大小一致,可信终端通过对第一加密模型参数[z’]以及第二加密模型参数[z]按照矩阵行进行矩阵拼接,得到加密全局梯度,并通过同态加密密钥对中私钥进行解密,以得到解密后的全局梯度

l(θ),并通过如下公式θ=θ

η(

l(θ)+γθ),更新模型权重θ(包括第一训练终端对应的
模型权重θ
a
和第二训练终端对应的模型权重θ
b
)。其中,η为学习率,γ为正则化矩阵。
[0107]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0108]
在一实施例中,提供一种基于联邦学习的模型训练验证装置,该基于联邦学习的模型训练验证装置与上述实施例中基于联邦学习的模型训练验证方法一一对应。如图7所示,该基于联邦学习的模型训练验证装置包括第一训练验证模块10、第一训练终端训练模块20、第二训练验证模块30以及模型更新模块40。各功能模块详细说明如下:
[0109]
第一训练验证模块10,用于通过可信终端基于第二训练终端发送的待验证参数以及第二证明文件进行零知识证明,以验证第二训练终端的训练过程是否准确;其中,待验证参数包括第二中间加密参数以及第二加密模型参数;第二中间加密参数为第二训练终端基于对应的模型权重以及第二本地数据计算得到。
[0110]
第一训练终端训练模块20,用于当验证通过时,通过可信终端将第二中间加密参数发送至第一训练终端,以使第一训练终端基于对应的第一本地数据以及第二中间加密参数进行模型训练,得到第一加密模型参数,并生成第一证明文件。
[0111]
第二训练验证模块30,用于通过可信终端基于第一加密模型参数以及第一证明文件进行零知识证明,以验证第一训练终端的训练过程是否准确。
[0112]
模型更新模块40,用于当验证通过时,通过可信终端根据第一加密模型参数以及第二加密模型参数,更新模型权重,以使第一训练终端以及第二训练终端根据更新后的模型权重进行模型训练;其中,第二加密模型参数为第二训练终端基于第二中间加密参数以及第二本地数据计算得到。
[0113]
具体地,该基于联邦学习的模型训练验证装置还包括第一训练终端计算模块、第三训练验证模块以及第二训练终端训练模块。
[0114]
第一训练终端计算模块,用于通过第一训练终端基于模型权重以及对应的第一本地数据,计算第一中间加密参数,并生成第三证明文件。
[0115]
第三训练验证模块,用于通过可信终端基于第三证明文件以及第一中间加密参数进行零知识证明,以验证第一训练终端的计算过程是否准确。
[0116]
第二训练终端训练模块,用于当验证通过时,通过可信终端将第一中间加密参数发送至第二训练终端,以使第二训练终端基于对应的模型权重、第二本地数据以及第一中间加密参数,计算待验证参数,并生成第二证明文件。
[0117]
具体地,该基于联邦学习的模型训练验证装置还包括第一构造模块以及第二构造模块。
[0118]
第一构造模块,用于通过可信终端接收第一训练终端构造的第一本地默克尔树以及第二训练终端构造的第二本地默克尔树;或者,
[0119]
第二构造模块,用于通过可信终端根据接收到的第一训练终端发送的第一承诺数据构造第一默克尔树,以及根据接收到的第二训练终端发送的第二承诺数据构造第二默克尔树。
[0120]
具体地,第二训练验证模块具体为,基于第一默克尔树、第一加密模型参数以及第一证明文件,验证第一训练终端的训练过程是否准确;第一训练验证模块具体为,基于第一
默克尔树、第一加密模型参数以及所述第一证明文件,验证所述第一训练终端的训练过程是否准确。
[0121]
具体地,第二构造模块包括第一承诺数据验证单元、第一默克尔树构造单元、第二承诺数据验证单元以及第二默克尔树构造单元。
[0122]
第一承诺数据验证单元,用于通过所述第一训练终端对所述第一本地数据进行承诺,得到第一承诺数据,以通过所述可信终端对所述第一承诺数据进行零知识证明,验证所述第一承诺数据是否准确。
[0123]
第一默克尔树构造单元,用于若准确,则通过所述可信终端根据所述第一承诺数据构造第一默克尔树。
[0124]
第二承诺数据验证单元,用于通过所述第二训练终端对所述第二本地数据进行承诺,得到第二承诺数据,并对所述第二承诺数据进行零知识证明,以验证所述第二承诺数据是否准确。
[0125]
第二默克尔树构造单元,用于若准确,则通过所述可信终端根据所述第一承诺数据构造第二默克尔树。
[0126]
具体地,该基于联邦学习的模型训练验证装置还包括加密模块,用于通过所述可信终端生成同态加密密钥对,并采用所述同态加密密钥对中的公钥对随机掩码进行加密,得到加密值。
[0127]
第一训练终端计算模块具体为通过所述第一训练终端基于所述模型权重、第一本地数据以及所述加密值,计算第一中间加密参数。
[0128]
第二训练终端训练模块具体为,通过所述第二训练终端基于对应的模型权重、第二本地数据、所述第一中间加密参数以及所述加密值,计算所述待验证参数。
[0129]
具体地,模型更新模块包括拼接单元、解密单元以及模型更新单元。
[0130]
拼接单元,用于对所述第一加密模型参数以及所述第二加密模型参数进行拼接,得到加密全局梯度;
[0131]
解密单元,用于通过所述同态加密密钥对中的私钥对所述加密全局梯度进行解密,得到解密后的全局梯度;
[0132]
模型更新单元,用于根据所述全局梯度,更新所述模型权重。
[0133]
关于基于联邦学习的模型训练验证装置的具体限定可以参见上文中对于基于联邦学习的模型训练验证方法的限定,在此不再赘述。上述基于联邦学习的模型训练验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0134]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行基于联邦学习的模型训练验证方法过程中生成或获取的数据,如本地局部模型。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程
序被处理器执行时以实现一种基于联邦学习的模型训练验证方法。
[0135]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的基于联邦学习的模型训练验证方法的步骤,例如图1所示的步骤s101

s104,或者图2至图6中所示的步骤。或者,处理器执行计算机程序时实现基于联邦学习的模型训练验证装置这一实施例中的各模块/单元的功能,例如图7所示的各模块/单元的功能,为避免重复,这里不再赘述。
[0136]
在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中基于联邦学习的模型训练验证方法的步骤,例如图1所示的步骤s101

s104,或者图2至图6中所示的步骤,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述基于联邦学习的模型训练验证装置这一实施例中的各模块/单元的功能,例如图7所示的各模块/单元的功能,为避免重复,这里不再赘述。
[0137]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0138]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0139]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1