一种去中心化联邦学习方法技术

技术编号:36188906 阅读:46 留言:0更新日期:2022-12-31 20:59
本发明专利技术公开了一种去中心化联邦学习方法,初始化阶段以公共参数生成器生成公共参数分发给多个节点,多个节点协作生成和发布crs,解决陷门泄漏问题;本地阶段对本地训练的结果进行加密并生成一个本地证明,用于证明这个梯度是正确的,完成m个节点广播的梯度密文和本地证明,每个完成节点将它们的秘密划分成n部分,分别分配到OT表中对应的当前在线节点;聚合阶段在线节点在接收到数个梯度密文后计算当前的聚合结果,直到m个梯度密文被聚合后在线将合作恢复秘密用于验证聚合结果的正确性;更新阶段每个在线节点验证秘密是否正确,验证方程成立节点解密得到聚合的梯度明文并更新全局模型。本发明专利技术在不影响准确性的情况下同时提高了隐私保护和可信性。了隐私保护和可信性。

【技术实现步骤摘要】
一种去中心化联邦学习方法


[0001]本专利技术涉及一种去中心化联邦学习方法,属于机器学习


技术介绍

[0002]联邦学习(FL)是一种新兴的协作机器学习范式,它基于来自不同组织和个人的碎片化数据构建一个共享的全球模型。在FL中,每个节点在本地设备上训练模型,而不暴露任何原始数据,中央服务器聚合节点的所有梯度以获得全局模型。虽然联邦学习在一定程度上减少了泄露数据隐私的可能性,它仍然面临着从根本上防止隐私泄露的挑战。
[0002]联邦学习在隐私保护的缺陷:一些工作已经指出梯度,即局部训练的结果,可以被攻击者用来重建训练数据,并确定是否有一个特定的数据项存在训练集中。因此,提出了几种隐私保护方案来保护梯度明文。一些方案采用差分隐私,通过添加Laplacian噪声来保护梯度。然而,这些方案降低了模型的准确性,并需要一个可信的第三方。一些方案使用同态加密保护梯度,但其计算代价和通信代价都大大增加。其他方案采用安全的多方计算来保护梯度明文,因为MPC的计算消耗更少.但是,由于节点之间的多轮交互,它带来了巨大的通信开销。因此,如何平衡模型准确性、计算成本和通信开销是数据隐私保护的关键问题。
[0003]现有的联邦学习框架很少考虑节点不可信的情况:大部分可验证的联邦学习方案是验证聚合结果的正确性,因为聚合服务器可能会受到破坏或恶意攻击。大多数现有的工作验证校正通过证明、签名和区块链的聚合结果。然而,它们都依赖于参与节点提交的梯度的假设是正确的。这种强假设在现实中很难保证,因为恶意节点可能不执行正确的的训练过程,阻碍模型的收敛。然而,正确的梯度只有在训练过程的可靠执行后才能获得。据我们所知,只有少数研究探讨了这个问题。
[0004]现有的联邦学习聚合结构存在的问题:现有的大多数方案只适用于传统的联邦学习,即中心化的联邦学习,这会导致单点故障,以及由于中央服务而导致的带宽拥挤。最近,去中心化联邦学习被提出,通过充分利用节点到节点的通信或区块链技术来取代聚合服务器的作用来解决这些问题。但是,由于区块链的共识效率较低,基于区块链的联邦学习方案的系统性能非常低。现有的节点到节点去中心化联邦学习方案大多需要所有参与节点保持在线状态。
[0005]现有的联邦学习未考虑参与节点的可扩展性:现有联邦学习方案的不可扩展性导致了长延迟,因为必须预先选择所有的节点,并且聚合过程只能在所有选定的节点必须完成了他们的联邦学习任务后进行。更糟糕的是,如果在任务期间任何节点退出或服务器脱机,聚合进程将中断,无法获得最终的聚合结果。

技术实现思路

[0006]为解决现有技术中存在的上述问题,本专利技术的目的在于开发一个去中心化的可信的和保护隐私的联邦学习方法,在不影响准确性的情况下,提高了面对不可信节点威胁的隐私保护和可信性,同时适用于节点随时加入或退出的场景,主要包括:1)解决隐私泄露并
提高计算效率和减少通信开销等问题;2)解决节点不可信的问题,并在次基础上保证聚合结果的可信性;3)解决了联邦学习存在的单点失效的问题;4)实现了节点的可扩展性,即节点可以在任意阶段随时退出。
[0007]本专利技术的技术方案是:一种去中心化联邦学习方法,至少包括初始化阶段、本地阶段、聚合阶段和更新阶段;其中:初始化阶段,公共参数生成器生成公共参数,分发给多个节点,多个节点协作生成和发布 crs,以解决陷门泄漏问题,最初的全局模型θ0由去中心的联邦学习发起者发布;本地阶段,在去中心的联邦学习任务的每次迭代中,完成节点使用本地数据集训练新一轮的本地模型,对本地训练的结果进行加密,并生成一个本地证明,用于证明这个梯度是正确的,完成m个节点广播的梯度密文和本地证明,此外,第一个完整的节点维护一个OT 表,该表记录当前的n个在线节点,每个完成节点将它们的秘密划分成n部分,分别分配到 OT表中对应的当前在线节点;聚合阶段,在线节点在接收到数个梯度密文后,计算当前的聚合结果,直到m个梯度密文被聚合,而后在线将合作恢复秘密用于验证聚合结果的正确性;更新阶段,每个在线节点首先验证秘密是否正确,如果验证方程成立,节点解密得到聚合的梯度明文并更新全局模型。
[0008]进一步的,所述本地阶段的具体步骤如下:步骤一、PPG生成公共参数:公共参数生成器选择一个大素数p,生成一个p阶素数群其中p>2
λ
,λ是安全参数,并生成三个群G1,G2,G
T
满足e(G1,G2)

G
T
,接着选择两个常数序列a=(a1,a2,...,a
l+1
)和b=(b1,b2,...,b
l+1
),每个序列的常数没有交集并且再选择l+1正整数(h1,h2,...,h
l+1
),定义这些常数序列和正整数用于加密和解密节点的梯度,最后,PPG将参数公开;步骤二、节点生成crs:假设有ρ个节点协同生成crs,每个节点首先将本地证明的约束条件从一种NP语言转换为对应的关系,然后每个节点选择5个随机数x
i
,α
i
,β
i
,γ
i
,δ
i
∈Z
q
,计算如下:,计算如下:其中[]1表示G1组中的加密操作,[]2表示G2组中的加密操作,然后每个节点广播接收来自其他ρ

1节点的广播,并将所有节点的参数聚合如下:1节点的广播,并将所有节点的参数聚合如下:接着,每个节点计算crs=([σ1]1,[σ2]2)如下,其中,∈是陈述的数量,
最后,将crs=([σ1]1,[σ2]2)公开给所有节点。
[0009]进一步的,所述本地阶段,每个节点都会执行以下操作,以完成DFL任务:步骤一、本地模型训练:假设N
i
在第η轮训练中获得了全局模型θ
η
‑1,N
i
在数据集D
i
的子集上训练本地模型,得到梯度明文g
i
,假设所有节点都共享本地数据过滤算法Scr()过滤出错误数据,首先过滤D
i

,得到正确的数据集其中D
i

是D
i
的子集,然后N
i
利用θ
η
‑1和子集计算梯度g
i
,,步骤二、梯度加密:N
i
使用梯度加密算法GEnc对梯度明文g
i
进行加密,N
i
首先使用伪随机发生器PRG(b)通过随机种子b生成l+1维随机向量r
i
=(r1,r2,...,r
l+1
),接下来,N
i
用梯度g
i
作为系数,计算一个打包的随机数R
i
,R
i
≡(r1H1G1+r2H2G2+...+r
l+1
H
l+1
G
l+1
)mod H再将R...

【技术保护点】

【技术特征摘要】
1.一种去中心化联邦学习方法,其特征在于:至少包括初始化阶段、本地阶段、聚合阶段和更新阶段;其中:初始化阶段,公共参数生成器生成公共参数,分发给多个节点,多个节点协作生成和发布crs,以解决陷门泄漏问题,最初的全局模型θ0由去中心的联邦学习发起者发布;本地阶段,在去中心的联邦学习任务的每次迭代中,完成节点使用本地数据集训练新一轮的本地模型,对本地训练的结果进行加密,并生成一个本地证明,用于证明这个梯度是正确的,完成m个节点广播的梯度密文和本地证明,此外,第一个完整的节点维护一个OT表,该表记录当前的n个在线节点,每个完成节点将它们的秘密划分成n部分,分别分配到OT表中对应的当前在线节点;聚合阶段,在线节点在接收到数个梯度密文后,计算当前的聚合结果,直到m个梯度密文被聚合,而后在线将合作恢复秘密用于验证聚合结果的正确性;更新阶段,每个在线节点首先验证秘密是否正确,如果验证方程成立,节点解密得到聚合的梯度明文并更新全局模型。2.根据权利要求1所述的去中心化联邦学习方法,其特征在于:所述本地阶段的具体步骤如下:步骤一、PPG生成公共参数:公共参数生成器选择一个大素数p,生成一个p阶素数群其中p>2
λ
,λ是安全参数,并生成三个群G1,G2,G
T
满足e(G1,G2)

G
T
,接着选择两个常数序列a=(a1,a2,...,a
l+1
)和b=(b1,b2,...,b
l+1
),每个序列的常数没有交集并且再选择l+1正整数(h1,h2,...,h
l+1
),定义这些常数序列和正整数用于加密和解密节点的梯度,最后,PPG将参数公开;步骤二、节点生成crs:假设有ρ个节点协同生成crs,每个节点首先将本地证明的约束条件从一种NP语言转换为对应的关系,然后每个节点选择5个随机数x
i
,α
i
,β
i
,γ
i
,δ
i
∈Z
q
,计算如下:计算如下:其中[]1表示G1组中的加密操作,[]2表示G2组中的加密操作,然后每个节点广播接收来自其他ρ

1节点的广播,并将所有节点的参数聚合如下:1节点的广播,并将所有节点的参数聚合如下:接着,每个节点计算crs=([σ1]1,[σ2]2)如下,其中,∈是陈述的数量,)如下,其中,∈是陈述的数量,
最后,将crs=([σ1]1,[σ2]2)公开给所有节点。3.根据权利要求1所述的去中心化联邦学习方法,其特征在于:所述本地阶段,每个节点都会执行以下操作,以完成DFL任务:步骤一、本地模型训练:假设N
i
在第η轮训练中获得了全局模型θ
η
‑1,N
i
在数据集D
i
的子集上训练本地模型,得到梯度明文g
i
,假设所有节点都共享本地数据过滤算法Scr()过滤出错误数据,首先过滤D

i
,得到正确的数据集其中D

i
是D
i
的子集,然后N
i
利用θ
η
‑1和子集计算梯度g
i
,,步骤二、梯度加密:N
i
使用梯度加密算法GEnc对梯度明文g
i
进行加密,N
i
首先使用伪随机发生器PRG(b)通过随机种子b生成l+1维随机向量r
i
=(r1,r2,...,r
l+1
),接下来,N
i
用梯度g
i
作为系数,计算一个打包的随机数R
i
,R
i
≡(r1H1G1+r2H2G2+...+r
l+1
H
l+1
G
l+1
)mod H再将R
i
作为常数和梯度作为系数来构造了l阶多项式F
i
(x)如下,由于l阶多项式需要至少l+1个多项式值(x,y)才能恢复,因此N
i
将常数序列a=(a1,a2,...,a
l+1
)作为多项式F
i
(x)的输入,得到l+1多项式值F
i
(a1),F
i
(a2),...,F
i
(a
l+1
),考虑到通信开销,通过使用剩余定理(CRT)打包多项式值F
i
(a1),F
i
(a2)、...,F
i
(a
l+1
),如下所示:y≡(F
i
(a1)H1G1+F
i
(a2)H2G2+...+F
i
(a
l+1
)H
l+1
G
l+1
)mod H其中H
i
=H/h
i
和使用CRT的同态性质来随机化多项式值如下:y=CRT(F
i
(a1),...,F
i
(a
l+1
))+Ri=CRT(F
i
(a1),...,
i
(aF
l+1
))+CRT(r1,...,r
l+1
)=(F
i
(a1)+r1)H1G1+...+(F
i
(a
l+1
)+r
l+1
)H
l+1
G
l+1
然后N
i
利用秘密共享...

【专利技术属性】
技术研发人员:王玲玲赵雪芹王琳陆忠锴张首勋
申请(专利权)人:青岛科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1