发明内容
为了克服现有技术的缺陷,本发明所要解决的技术问题是:如何结合自注意力机制与联邦学习,以更好地处理非独立同分布的数据,并满足各个客户端的个性化需求。
为解决上述技术问题,本发明提供一种基于局部自注意力机制的个性化联邦聚合算法,包含如下步骤:
S1:中央服务器将预训练好的全局模型分发给多个客户端;
S2:多个客户端根据本地数据集分别对所得模型进行训练;
S3:多个客户端将本地训练得到的模型参数分别加密,上传至中央服务器;
S4:中央服务器对所有模型的梯度进行聚合,生成全局模型参数;
S5:中央服务器将聚合后的全局模型参数分别加密,传回至多个客户端;
步骤S2还包括:训练完成后,多个客户端分别将自己的模型与之前预训练好的全局模型进行比较,计算模型之间的距离差异;
步骤S2还包括:在计算出模型之间距离差异的度量后,结合测试集精度的影响因子和样本量的影响,建立个性化聚合权值的综合计算公式,计算出最终的本地客户端的个性化权重系数;
所述个性化聚合权值的综合计算公式为:
其中,“Dismatric”表示模型距离矩阵,Dismatric[i,n]表示第i个本地模型与预训练好的全局模型之间的差异;使用指数函数e推导出常数系数,之后进行归一化,然后乘以超参数;其中α,β,γ分别表示各自的超参数,acc表示本地测试集准确率,n表示客户端样本数量,m表示每轮随机选择参与本地训练的客户端数量,round表示轮次;
应用核PCA主成分分析对归一化数据进行降维,选择径向基函数作为核,将数据降维到二维,捕捉数据中的非线性关系。
优选地,基于简化后的数据计算本地客户端与预训练后的全局模型之间的欧几里得距离。
优选地,在步骤S1中,所述预训练好的全局模型,是使用带自注意力机制的卷积网络训练后的全局模型。
优选地,在步骤S1中,预训练所使用的数据集包括MNIST数据集和SVHN数据集,都采用Dirichlet分布对数据集进行分区划分。
优选地,在步骤S2中,选择SGD随机梯度下降作为优化策略。
优选地,在步骤S5中,采用个性化权重动态分配策略,根据样本量占比和测试集准确率重新计算。
进一步优选地,通过考虑客户端模型与预训练后的全局模型之间的参数距离差异,以及本地客户端对全局模型的贡献,对权重进行动态分配,实现个性化聚合。
与现有技术相比,本发明具有如下有益效果:
1.本发明采用多头自注意力机制增强的局部网络模型,增强了局部模型的个性化,以实现对每个客户端数据的独特特征的高效捕获,并利用加权平均聚合方法,根据客户端模型参数与全局模型之间的差异以及其对全局模型的贡献,动态分配权重,以减轻数据分布不均匀的不利影响,从而实现对非独立同分布数据的高效处理;
2.本发明在MNIST(Modified National Institute of Standards andTechnology)数据集上的准确率相比联邦平均算法(FedAvg)的95.53%,提升了3.23%,能够达到98.76%;在SVHN(Street View House Number)数据集上的提升尤为明显,从75.29%(FedAvg)提升到了85.63%;
3.本发明关注于非独立同分布数据环境中的模型训练与聚合,减少了训练过程中的振荡,增强了模型的鲁棒性(Robustness,承受故障和干扰的能力)和适应性,提高了准确率,同时确保了数据隐私性;不仅为联邦学习中处理非独立同分布数据提供了一种新的见解,还通过实验验证了该算法的有效性;可以很大程度地克服数据异构带来的挑战,有效地抑制训练过程中的显著震荡;
4.本发明利用Dirichlet分布模拟的非独立同分布数据分区构建的数据集,将局部模型的自注意力机制与个性化聚合策略相结合进行了实验;实验结果表明,该方法在降低泛化误差的同时,显著提高了MNIST和SVHN数据集的测试精度;
5.本发明将自注意力机制与卷积神经网络相结合,用于局部模型训练,深入挖掘数据特征与本地客户独特性之间的相关性;在模型聚合过程中,权重系数由本地客户端模型与全局模型的相似度以及对全局模型的贡献度来确定。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,请结合图1和图2所示,其中,图1为本发明的基于局部自注意力机制的个性化联邦聚合算法的步骤流程图,图2为本发明的基于局部自注意力机制的个性化联邦聚合算法的整体架构图;所述个性化联邦聚合算法包含如下步骤:
S1:中央服务器将预训练好的全局模型分发给多个客户端;
S2:多个客户端根据本地数据集分别对所得模型进行训练;
S3:多个客户端将本地训练得到的模型参数分别加密,上传至中央服务器;
S4:中央服务器对所有模型的梯度进行聚合,生成全局模型参数;
S5:中央服务器将聚合后的全局模型参数分别加密,传回至多个客户端。
在图2中,W0表示预训练全局模型参数,W1、W2至Wn表示第一、第二至第n本地客户端模型参数,λ1、λ2至λn表示第一、第二至第n本地客户端个性化权重。
联邦学习的架构分为两种,一种是中心化联邦(客户端/服务器)架构,一种是去中心化联邦(对等计算)架构,后者更为常见。本发明通过在数据所有者之间联合训练模型,解决了分布式数据共享的问题,实现了在不共享原始数据的情况下构建全局模型的目标。与传统的集中式学习方法相比,联邦学习保留每个数据所有者的数据,只共享模型的更新,大大降低了隐私泄露的风险。因此,本发明特别适用于移动设备和物联网等分布式数据环境。
自注意力机制下,输入序列的每个元素与该序列中的所有其他元素进行交互,以确定其之间的关系强度,通过权重来表示这些关系,其中权重决定了序列中每个元素对当前元素的重要性,并基于上述权重生成一个新的、经过注意处理的序列。
多头自注意力机制是单一自注意力机制的延伸。不是只计算一组注意力权重,而是同时计算多组权重,每组权重称为“头”。这些“头”可能关注不同的信息或关系。多头自注意力机制中的所有的“头”最终会被合并以产生一个统一的输出。这允许模型同时捕获多种类型的信息和关系,从而产生更丰富的输出表示。
具体地,
在步骤S1中,所述预训练好的全局模型,指的是使用带自注意力机制的卷积网络训练一定轮次后的全局模型;请参照图3所示,其为基于自注意力机制的卷积神经网络模型。在图3中,I表示初始输入特征图,I’表示经过一轮卷积池化后的特征图,I”表示经过两轮卷积池化后的特征图,View表示展平操作,X_Flattend表示展平后的向量,Q_lin表示一个线性自注意力层Query,K_lin表示一个线性自注意力层Key,V_lin表示一个线性自注意力层Value,softmax表示归一化,y’表示特征图。首先是经历两轮卷积池化层,接下来是注意力层,与使用单独的一个注意力池化不同,本神经网络使用三组不同的线性投影来变换查询、键和值;然后,这三组变换后的查询、键和值将并行地进行注意力池化;最后,将这三个注意力池化的输出拼接在一起,并且通过另一个可以学习的线性投影进行变换,最后是经过全连接层,以产生最终输出。通过这种方式,网络可以在多个注意头上学习不同的特征表示,最终输出这个向量将包含来自不同注意头的特征信息。
由此,不同的本地客户端在正式训练时,有一个比较明确的初始权重影响因子,利于最终全局模型的构建。预训练所使用的数据集包括MNIST数据集和SVHN数据集,都采用Dirichlet分布对数据集进行分区划分。预训练是深度学习中一种常用的技术,其目的是在数据集上初步训练模型,从而为后续的微调或特定任务训练提供初始化的权重。
所述全局模型采用基于多头自注意力机制的卷积神经网络,通过将自注意力机制与传统的卷积运算相结合,因此,本发明中的全局模型既能够捕获局部特征(通过卷积计算实现),又能够识别远程依赖关系(通过自注意力机制实现);这种组合增强了网络对复杂视觉任务的表示能力,关键在于将QKV(Query,Key,V value)关注范式应用到图像处理中;由此,本发明通过多头自注意力机制更准确地捕获图像特征,随后使用注意权值来增强信息,优化分类性能。
进一步具体地,以SVHN数据集为例,从使用5×5内核的卷积操作开始;假设输入图像有3个通道(通常表示RGB颜色通道),第一个卷积层将这3个通道转换为6个通道,然后,应用ReLU(整流线性单元)激活函数。使用卷积后的ReLU激活函数便于模型更好地捕获和学习图像中存在的特征,这是因为ReLU引入了非线性,允许网络学习更复杂的函数。在此之后,应用2×2最大池化层,在保留重要特征的同时减少了特征映射的大小;第二个卷积层将6个通道转换为16个通道,并再次应用ReLU激活函数;接下来应用另一个2×2最大池化层。
卷积操作有助于保持输入形状,识别图像像素在高度和宽度维度上的相关性;通过卷积,本发明中的网络模型捕获图像的局部特征,如边缘和纹理。自注意力机制则允许模型感知全局上下文,这在像SVHN这样的复杂数据集中尤为重要。这是由于数字、背景或其他数字之间可能存在复杂关系的缘故。
多头自注意力机制使网络模型能够跨多个表示空间并行捕获特征,从而识别各种依赖关系和上下文信息。考虑到图像背景和数字之间相互作用的复杂性,上下文理解是至关重要的。自注意力机制则有助于网络模型掌握上下文,从而提高分类精度。
在步骤S2中,本发明选择SGD随机梯度下降作为优化策略;
进一步具体地,在实验环境中,客户端选取策略是:每轮随机从10个客户端中选择5个参与本地训练,选取比例为0.5;每轮本地训练次数为3个epoch(周期/迭代轮次);
在本发明中,训练所使用的数据集包括MNIST数据集和SVHN数据集,都采用狄利克雷(Dirichlet)分布模拟非独立同分布数据分区。为了验证本发明的基于局部自注意力机制的个性化联邦聚合算法在非独立同分布条件下划分的标准数据集上的有效性,发明人在MNIST数据集和SVHN数据集上进行了实验。其中,
MNIST数据集来自美国国家标准与技术研究所,它由手写数字图像组成,涵盖从数字0到9的10个类别;每张图像大小为28×28像素,灰度(即,使用黑色调表示物体,不同的饱和度的黑色来显示图像),由60,000个训练样本和10,000个测试样本组成。
SVHN数据集是一个具有真实应用场景的数据集,源自谷歌街景图像。与MNIST不同,SVHN数据集中的图像是彩色的,它们的大小和复杂性更接近现实场景中的图像。该数据集包含门牌上的数字,涵盖从0到9的10个类别,包括73,257个训练样本和26,032个测试样本。具有高度的图像多样性,包括颜色、字体、大小和方向的变化,以及潜在的噪声和障碍物。
在数据集分区方面,本发明采用了一种模拟非独立的、同分布的数据集分区的方法来模拟联邦学习环境中的数据异构性;通过使用这种非独立同分布分区方法,可以更真实地模拟数据分布不均匀的现象。
采用非独立同分布分区方法的优点是可以通过调节超参数β来灵活地改变不平衡程度;超参数β越小,分区越不平衡,其中,超参数β设为0.5。
首先,进行参数初始化,定义每个分区的最小数据量为min require size(简称为min),数据集中的类别数为K;根据数据集的特点,适当调整K和min需求大小;重复步骤,直到每个分区中的数据量达到最小要求大小;
然后,对类别K的数据索引进行随机洗牌:1)使用Dirichlet分布确定每个分区中数据的比例;2)调整这些比例,使每个分区的数据量适中,不超过总数据量的一定比例;3)按照确定的比例分配数据,然后更新每个分区的数据索引;4)调整“最小大小”为当前最小分区数据量,使其满足最小要求大小。
最后,对每个分区的数据索引进行随机洗牌,保证数据分布的随机性。
在本发明中,训练完成后,多个客户端分别将自己的模型与之前预训练好的全局模型进行比较,计算模型之间的距离差异;客户端的贡献主要取决于样本数量的大小和局部测试集的准确性,由此可以计算出最终的多个客户端的个性化权重系数。
请再参照图4所示,其为本发明的基于局部自注意力机制的个性化联邦聚合算法在MNIST数据集上的准确率曲线。其中,曲线①示为引入了独立同分布、FedAvg算法(联邦平均算法),曲线②示为非独立同分布、FedAvg算法,曲线③示为非独立同分布、S-FedAvg算法(联邦个性化聚合算法)。
联邦平均算法是分布式机器学习中的一项关键技术,它允许多方协同训练机器学习模型,同时确保数据隐私;该方法的核心思想是让数据持有者使用随机梯度下降(SGD)对模型进行局部优化,而中央服务器负责对模型进行聚合。
联邦个性化聚合算法首先采用联邦平均算法将各客户端模型的参数聚合到全局模型中进行平均;聚合完成后,将此全局模型分发到每个客户端,并重复此过程,直到模型稳定或达到指定的通信轮数;此时保存的全局模型是预训练好的全局模型。接下来,将这个预训练好的全局模型用于后续的训练,使其能够在实际训练中快速识别对全局模型有利的局部客户端,从而加速模型的收敛。每个客户将被分配一个特定的权重系数。对全局模型的收敛有害或有显著偏差的客户将被分配较小的权重值。
首先将预训练好的全局模型发送给每个客户端;然后,每个客户端根据该模型在本地进行训练。训练完成后,每个客户端将自己的模型与之前预训练好的全局模型进行比较,计算模型之间的距离。局部客户端的贡献主要取决于样本数量的大小和局部测试集的准确性。这样,就可以在计算出模型间距离差的度量后,结合测试集精度的影响因子和样本量的影响,建立个性化聚合权值的综合计算公式,计算出最终的本地客户端的个性化权重系数。
所述个性化聚合权值的综合计算公式为:
其中,“Dismatric”表示模型距离矩阵,Dismatric[i,n]表示第i个本地模型与预训练好的全局模型之间的差异;使用指数函数e推导出常数系数,以便更好地量化;之后,进行归一化,然后乘以超参数。其中α,β,γ分别表示各自的超参数,acc表示本地测试聚准确率,n表示客户端样本数量。由此,本发明在计算出模型间距离后,结合测试集准确率和样本量的影响,建立个性化聚合系数的综合计算公式。
实验结果表明:非独立同分布、S-FedAvg算法在MNIST测试集上的准确率相比同条件下基准的联邦平均算法,提升了3.23%的准确率,达到了98.76%;此外,在SVHN测试集上提升了惊人的11.24%,达到了86.53%,这得益于多头注意力能够更好地处理复杂背景信息。
对比实验(Comparative Experiment)和消融实验(Ablation Experiment)结果表示,在SVHN测试集上,在单独使用基于自注意力机制的神经网络,准确率可以提升到85.63%,单独保留个性化聚合算法,也能够做到有效的提升,使得准确率达到85.34%。可以看出,两个模块结合使用可以相得益彰,进一步提升准确率。
在本发明中,模型距离计算策略具体如下:
1)将输入模型组的参数平面化,以便每个模型的参数可以被视为一个向量;
2)将扁平模型参数转换为NumPy数组格式;
3)应用核(kernel)PCA主成分分析对归一化数据进行降维;选择径向基函数(RBF)作为核,将数据降维到二维,捕捉数据中的非线性关系;
4)基于简化后的数据计算本地客户端与预训练后的全局模型之间的欧几里得距离;
5)在距离矩阵中,元素[i,j]表示模型i与模型j之间的距离差。
在步骤S5中,优选采用个性化权重动态分配策略;由于每轮选取客户端的策略是随机的,导致每个客户端的样本量因素发生了变化,因此,会根据样本量占比和测试集准确率重新计算。通过考虑客户端模型与预训练后的全局模型之间的参数距离差异,以及本地客户端对全局模型的贡献,对权重进行动态分配,以实现个性化聚合。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。