基于个性化Transformer的联邦学习模型训练方法及联邦学习系统

文档序号:32949967发布日期:2023-01-14 13:02阅读:49来源:国知局
基于个性化Transformer的联邦学习模型训练方法及联邦学习系统
基于个性化transformer的联邦学习模型训练方法及联邦学习系统
技术领域
1.本发明涉及一种基于个性化transformer的联邦学习模型训练方法及联邦学习系统,属于人工智能领域。


背景技术:

2.联邦学习是一种以并行计算为基础的分布式机器学习,其结构由一个服务器和若干客户端组成。每个客户端使用自己的本地数据训练一个模型,并只将训练的模型发送回服务器,服务器将接收到的各模型进行聚合得到一个全局模型,在此过程中不会共享客户端本地数据。通过这种方式,联邦学习克服了数据隐私和通信开销方面的一系列问题。然而当客户端之间存在数据异构和系统异构时,单一的全局模型将难以应对与全局分布截然不同的局部分布情况。因此,能为各客户端提供个性化解决方案的个性化联邦学习作为联邦学习的一种扩展应运而生。
3.当前大多数联邦学习框架都基于卷积神经网络,它通常关注输入的高频局部区域,这种模式可能对数据异质性非常敏感。由于使用自注意力提取的特征具有全局性,transformer往往对非独立同分布的数据和分布偏移更加稳健。基于此,最近的一项工作提出将transformer作为联邦学习的网络体系结构,指出transformer比卷积神经网络能更有效地处理异构数据,但联邦学习算法在聚合过程中可能对自注意力机制造成的影响尚未被研究。
4.综上所述,当前联邦学习所面临的主要难题有:
5.(1)现有方法不能很好地处理客户端之间数据异构和系统异构的问题,且大都基于卷积神经网络,对于非独立同分布的数据较为敏感;
6.(2)现有方法对于图像和语言任务没有一个统一的联邦学习框架;
7.(3)现有方法在聚合过程中会对transformer的自注意力机制产生较大影响,缺少更适用于transformer结构的个性化联邦学习框架。


技术实现要素:

8.本发明的目的是:考虑transformer中自注意力的特性,保留客户端个性化特征,且能够更好地捕捉数据异质性并处理客户端之间的分布偏移问题。
9.为了达到上述目的,本发明的技术方案是公开了一种基于个性化transformer的联邦学习系统,包括一个服务器和若干客户端,其特征在于,根据不同的执行任务,每个客户端选择相应的transformer结构作为本地模型,将客户端i的模型参数θi分解为θi={wi,ξi},其中,wi为transformer中自注意力层的投影矩阵,ξi为transformer中除自注意力层外其余层的参数;
10.服务器储存有一个超网络以及与每个客户端对应的嵌入向量;
11.在联邦学习的第k个通信轮次中:
12.客户端i从服务器上下载第k-1个通信轮次更新聚合的参数利用位于服务器的超网络生成客户端i的投影矩阵wi,其中:为超网络的参数;zi为超网络的输入,是客户端i可学习的嵌入向量;
13.客户端i利用本地数据bi对初始化后的模型进行本地训练对初始化后的模型进行本地训练其中:为客户端i第k个通信轮次更新后的模型参数;α为学习率;为关于参数θi的梯度算子;表示为l(
·

·
)为交叉熵损失函数,f(θi;
·
)为客户端i的个性化模型,为训练样本的特征,为训练样本的标签;
14.将更新后的模型参数分解为其中,w
ik
为本地模型中自注意力层的投影矩阵,为本地模型中除自注意力层外其余层的参数;
15.将模型参数w
ik
保留在客户端i本地,用于储存客户端i的个性化信息;将参数差δwi=w
ik-w
ik-1
和上传到服务器,分别进行参数更新和聚合以获得其他客户端上的有利信息,得到第k个通信轮次的全局参数其中,n为客户端的数量,mi为客户端i的本地数据量,m为所有客户端的总体数据量。
16.优选地,对于服务器上的超网络参数以及客户端i的嵌入向量zi,通过以下两个式子分别进行更新:
[0017][0018][0019]
式中,β为学习率,为关于参数的梯度算子,为关于参数zi的梯度算子。
[0020]
优选地,所述超网络由三层全连接网络构成,其最后一层全连接网络对于transformer中的每个模块来说都是不同的。
[0021]
本发明的另一个技术方案是提供了一种基于个性化transformer的联邦学习模型训练方法,其特征在于,包括以下步骤:
[0022]
步骤一:在第k轮训练中,首先从所有客户端中随机挑选出a个客户端组成子集c
t
,对于集合c
t
中的客户端i,分两步初始化更新其模型参数中的客户端i,分两步初始化更新其模型参数其中:
[0023]wik,0
为transformer中自注意力层的投影矩阵,通过服务器上的超网络生成得到:其中,为第k-1轮更新的超网络参数,为第k-1轮更新的客户端i的嵌入向量;
[0024]
为transformer中除自注意力层外其余层的参数;
[0025]
从服务器上下载第k-1轮聚合得到的全局参数
[0026]
步骤二:对于初始化后的客户端i,利用随机梯度下降法本地训练其模型t轮,根据从本地数据中采样的训练批次bi,模型参数用进行更新,其中:为客户端i第k个通信轮次第t轮更新后的模型参数;α为学习率;为关于参数θi的梯度算子;表示为l(
·

·
)为交叉熵损失函数,f(θi;
·
)为客户端i的个性化模型,为训练样本的特征,为训练样本的标签;
[0027]
步骤三:本地训练完成后,计算客户端i本地训练前后参数wi的差δwi=w
ik,t-w
ik,0
,并将δwi和更新后的参数一并发送至服务器;
[0028]
步骤四:服务器对接收到的参数进行聚合,得到第k轮的全局参数其中,mi为客户端i的本地数据量,m为所有客户端的总体数据量;
[0029]
步骤五:对于服务器上的超网络参数以及客户端i的嵌入向量zi,通过以下两个式子分别进行更新:
[0030][0031][0032]
式中,β为学习率;
[0033]
步骤六:重复步骤一至步骤五直至达到所规定的训练迭代轮次。
[0034]
本发明为每个客户端训练并保留其独特的自注意力层参数,而模型中的其他网络层参数与其余客户端进行共享,以此让模型具有更好的处理数据异构的能力。除此之外,为了在客户端之间有效共享参数,同时保持个性化transformer模型的灵活性,本发明通过在服务器上训练一个超网络其中,为超网络的参数,z作为超网络的输入为相应客户端可学习的嵌入向量,其输出为自注意力层的投影矩阵以获得与该客户端相关的查询q=hwq,键k=hwk和值v=hwv,其中,h为输入的嵌入矩阵。这种超网络结构不仅减少了整个模型需要学习的参数数量,并且对于没有参与训练阶段的新客户端也可以提供具有良好性能的个性化模型。
[0035]
另一方面,得益于个性化的transformer结构,本发明还提供了一种同时适用于图像及语言任务的联邦学习系统,该系统包含一个中央服务器以及多个客户端。根据不同的执行任务,每个客户端选择相应的transformer结构作为本地模型,在第k个通信轮次中,根据本地数据训练模型,并将除自注意力层以外的参数ξi发送至服务器。在所述中央服务器中,储存有一个超网络以及与每个客户端对应的嵌入向量。该超网络由三层全连接网络构成,为了超网络的性能,其最后一层全连接网络对于transformer中的每个模块来说都是不同的。所述服务器在第k个通信轮次生成各客户端特定的自注意力层参数wi,并将各客户端
发送的参数ξi进行加权聚合得到全局参数
[0036]
与现有技术相比,本发明具有如下有益效果:
[0037]
(1)本发明第一个探索了自注意力机制在个性化联邦学习中的作用,能更有效地处理非独立同分布的数据;
[0038]
(2)本发明提出了一个全新的基于transformer的联邦学习框架,为每个客户端学习全新的自注意力机制,并共享其余参数,在保留个性化信息的同时提高了模型鲁棒性;
[0039]
(3)本发明为使用相同的联邦网络体系结构执行图像和语言任务提供了一个方便的环境,并在这两项任务中,本发明均能取得比其余个性化联邦学习方法更好的性能。
附图说明
[0040]
图1示意了基于个性化transformer的联邦学习模型框架;
[0041]
图2示意了每个客户端个性化transformer的模型框架;
[0042]
图3为基于个性化transformer的联邦学习模型流程图;
[0043]
图4为各算法微调模型中个性化参数后新客户端的精度。
具体实施方式
[0044]
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本技术所附权利要求书所限定的范围。
[0045]
本实施公开的一种基于个性化transformer的联邦学习方法包括以下步骤:
[0046]
步骤一:在初始化t=0开始阶段,给定一个中央服务器和n个客户端c={c1,c2,...,cn},接着从总数据集中按照分布(本发明使用参数α=0.3的狄利克雷分布)为每个客户端抽取本地数据集其中mi为数据集样本量的个数,并初始化每个客户端的本地模型f(θi;
·
)和嵌入向量zi以及服务器上超网络中的参数
[0047]
步骤二:对于集合c中的客户端i,在本地训练前需要对其本地数据进行预处理,包括数据打乱及归一化处理,然后将本地数据按照5:1的比例划分为训练集和测试集,训练集和测试集的数据分布需保持一致,并将两个数据集随机采样为n批次得到其中n为批次大小。
[0048]
步骤三:将客户端i的本地数据划分为n批次后,需要对其批次中的样本数据再次进行处理:对于序列数据,将其映射为嵌入矩阵;对于图像数据,将原始图片进行分块,并展平为一维向量,接着对每个向量做一个线性变换,压缩其维度为d,这样也得到了一个嵌入矩阵。为了加入序列及分块图片的位置信息,在每个向量中还需引入位置编码。
[0049]
步骤四:在第k轮训练中,首先从所有客户端中随机挑选出a个客户端组成子集c
t
,对于集合c
t
中的客户端i,分两步初始化更新其模型参数中的客户端i,分两步初始化更新其模型参数w
ik,0
通过
服务器上的超网络生成得到:其中为第k-1轮更新的超网络参数,为第k-1轮更新的相应客户端的嵌入向量;2)从服务器上下载第k-1轮聚合得到的全局参数到的全局参数
[0050]
步骤五:对于初始化后的客户端i,将步骤三中处理好的训练集批次输入到transformer结构的模型中,利用随机梯度下降法本地训练t轮,其模型参数可以用进行更新,其中:为客户端i第k个通信轮次第t轮更新后的模型参数;α为学习率;为关于参数θi的梯度算子;表示为l(
·

·
)为交叉熵损失函数,f(θi;
·
)为客户端i的个性化模型,为训练样本的特征,为训练样本的标签。
[0051]
步骤六:本地训练完成后,计算客户端i本地训练前后参数wi的差δwi=w
ik,t-w
ik,0
,并将δwi和更新后的参数一并发送至服务器。
[0052]
步骤七:服务器对接收到的子集c
t
上传的参数进行聚合,得到第k轮的全局参数mi为客户端i的本地数据量,m为所有客户端的总体数据量。
[0053]
步骤八:对于服务器上的超网络参数以及各客户端的嵌入向量zi,可以通过以下两个式子利用客户端上传的参数δwi进行更新,其中,β为学习率,为关于参数的梯度算子,为关于参数zi的梯度算子。
[0054]
步骤九:完成第k轮训练后,服务器将更新后的全局参数及超网络生成的参数w
ik
传送给所有客户端,利用各客户端的本地测试集进行测试,计算得到第k轮更新的个性化模型在各客户端上的测试准确率,从而计算得到全局的平均测试准确率,以此判断第k轮训练得到的个性化模型的性能。
[0055]
步骤十:重复步骤四至步骤九直至达到所规定的训练迭代轮次。
[0056]
步骤十一:训练结束后,将全局参数超网络参数及各客户端的嵌入向量(k为规定的训练迭代轮次)记录下来,可用于后续操纵。
[0057]
步骤十二:对于未参与训练过程的新客户端,可以直接利用步骤十一中记录的全局参数和超网络参数以及随机初始化的相应嵌入向量z,本地训练其个性化模型,经过几轮微调后即可得到较好的结果。我们将经过上述步骤得到的基于个性化transformer的联邦学习模型称作fedtp,并将其与当前一些较为流行的个性化联邦学习方法分别对图像数据集cifar-10和cifar-100在两种不同的数据分布(标签不平衡分布指每个客户端拥有固定数量标签的数据样本,狄利克雷分布指根据特定的狄利克雷分布给每个客户端分配一定比例的标签样本)以及拥有100个客户端的情况下的准确度作比较,其中各模型均训练
1500轮,每轮随机选取10%的客户端参与训练,实验结果见表一。从表中可以看出,fedtp在所有情况下都优于其他模型。
[0058]
表一:fedtp与其余模型在100个客户端情况下的精度
[0059][0060]
为了消除由模型结构差异带来的影响,我们将相同的transformer结构转移到其他个性化联邦学习方法中,进一步对其结果进行比较,实验结果如表二所示。为了区分这些模型与表一中的模型,我们在更改网络结构的模型后加上
“‑
t”。表二的结果表明,即使将其他模型的网络结构更改为与fedtp相同的transformer,我们的fedtp仍能取得最好的效果。
[0061]
表二:fedtp与其余基于transformer的模型在100个客户端情况下的精度
[0062][0063]
此外,我们分别针对pfedme、pfedhn、fedrod和fedtp测试了模型在数据集cifar-100上的泛化能力,其中80%的客户端用于训练,剩下20%的客户端在训练期间不可见。对于新加入的客户端,我们通过微调模型的个性化参数以及新客户端基于全局模型和个性化
参数得到的精度来比较各模型的泛化能力,结果如图4所示。从图4中可以看出,fedtp仅通过一步微调就能得到较好的效果,随着微调轮次数的增大,fedtp始终能取得比其他方法更好的结果,证实了fedtp具有良好的泛化性。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1