本发明属于安全聚合,尤其涉及一种联邦学习投毒攻击防御方法。
背景技术:
1、联邦学习是一种分布式机器学习方法,用于在保护数据隐私的前提下进行模型训练。在传统的集中式机器学习中,数据通常集中在中央服务器上进行训练,但涉及敏感数据时存在隐私和安全风险。联邦学习通过在本地设备上进行模型训练,仅共享模型参数而不共享原始数据,保护了用户隐私。
2、但是联邦学习也面临着诸多安全的问题,联邦学习涉及多个设备或参与者,在分布式环境中协同完成模型训练,这种分布性增加了攻击的风险,因为有可能存在恶意参与者。例如投毒攻击,极易出现在联邦学习中。投毒攻击方式主要有两类,(1)篡改训练数据,防止模型收敛,这称为数据投毒攻击;(2)构建恶意梯度或者恶意模型,参与全局模型聚合,这称为模型投毒攻击。恶意参与者可以通过传递虚假的模型更新,或者篡改训练数据,构建异常局部模型,进而干扰全局模型的训练,破坏模型的准确性。
3、现有的算法为了保证训练的收敛性和准确性,往往会简单地丢弃大部分的梯度信息。这可能导致部分梯度的重要性被忽视,而且一些恶意节点可能会伪装的非常巧妙难以识别和处理,从而影响最终模型的性能。例如krum算法,选择欧式距离近的梯度进行聚合,以排除恶意或异常的梯度。然而,这种过滤器方式可能会导致大量的梯度信息丢失,降低训练的准确性和收敛性。因此,在投毒攻击方式下,如何提高联邦学习的聚合效果,是本方案要解决的研究问题。
技术实现思路
1、为了解决现有技术中,投毒攻击的恶意节点难以检测,以及保证大量的梯度信息不丢失的情况,本文提供一种联邦学习投毒攻击防御方法。包括服务器和联邦学习客户端,具体步骤为:
2、s1:服务器初始化全局模型以及学习率η并将其广播给各客户端。
3、s2:客户端接收服务器的全局模型wt,使用本地的数据计算局部梯度和损失值,再将局部梯度和损失值上传到服务器。
4、2.1参与联邦学习的第i个客户端ci下载全局模型wt,作为第t次全局迭代中客户端的训练模型。
5、2.2参与联邦学习的第i个客户端ci根据自己的数据集di,使用全局模型wt,计算第t次全局迭代中第i个客户端的梯度和损失值fi(wt)。
6、2.3参与联邦学习的第i个客户端ci将梯度和损失值fi(wt)上传到服务器。
7、s3:根据梯度服务器使用局部离群因子算法剔除恶意参数簇,保留正常参数簇。
8、3.1求各个客户端梯度的单位化梯度,记第t次全局迭代中第i个客户端梯度的单位化梯度为计算过程如下:
9、第t次全局迭代中第i个客户端的梯度为对各个客户端的梯度进行单位化,第i个客户端的单位化梯度式中||·||2为l2范数。
10、3.2对于每个客户端,计算客户端单位化梯度与第l距离邻域内各个点的可达距离,记客户端单位化梯度为点o,记点o的第l距离邻域内客户端单位化梯度为点p,记点o到点p的第l可达距离为reachdistl(o,p),reachdistl(o,p)计算公式如下:
11、reachdistl(o,p)=max{dl(o),d(o,p)}
12、式中dl(o)为领域点o的第l距离,d(o,p)为领域点o到p的距离。
13、其中领域点o到p的距离领域点o的第l距离dl(o)定义为:dl(o)=d(o,p),满足:在集合中至少有不包括o在内的l个点p′,使得d(o,p′)≤d(o,p);在集合中至多有不包括o点在内的l-1个点p′,使得d(o,p′)<d(o,p)。
14、3.3对于每个客户端,计算客户端单位化梯度的第l局部可达密度,记客户端单位化梯度为点o,记点o的第l局部可达密度为lrdl(o),lrdl(o)计算公式如下:
15、
16、式中nl(o)是数据点o的第l距离邻域,指点o的第l距离内所有点的集合,包括第l距离上的点,|nl(o)|指nl(o)内数据点的个数,且|nl(o)|≥l。
17、3.4对于每个客户端,计算客户端单位化梯度的第l局部离群因子,记客户端单位化梯度为点o,记点o的局部离群因子为lofl(o),lofl(o)计算公式如下:
18、
19、3.5将局部离群因子由大到小排序,选择前10%个lofl(o)的点聚为恶意参数簇,其他的点聚为正常参数簇。或者如果lofl(o)小于等于1说明点o为密集点,lofl(o)大于1说明点o为稀疏点,将稀疏点聚为恶意参数簇,密集点聚为正常参数簇。
20、s4:全局梯度聚合,服务器再通过正常参数簇中的各个客户端上传的梯度和损失值fk(wt),执行得分计算,并计算第t+1轮的全局模型wt+1。
21、4.1对正常参数簇中各个客户端单位化梯度进行求和得到向量vt。
22、4.2计算正常参数簇中各个客户端梯度与求和向量vt之间的余弦距离,记第t次全局迭代中第k个客户端的梯度与求和向量vt之间的余弦距离为
23、4.3将进行归一化处理,记第t次全局迭代中第k个客户端的归一化结果为
24、4.4将正常参数簇中的各个客户端的损失值fk(wt)进行归一化处理,记第t次全局迭代中第k个客户端损失值归一化结果为fk(wt)′。
25、4.5计算正常参数簇中的各个客户端的得分情况,记第t次全局迭代中第k个客户端的得分为计算公式如下:
26、
27、4.6计算第t+1轮的全局模型wt+1,计算公式如下:
28、
29、式中为第t次全局迭代中第k个客户端的得分值,wt为第t次全局迭代中客户端的训练模型权重,η为客户端训练的学习率,为第t次全局迭代中第k个客户端的梯度。由上式可知,当客户端模型梯度向量与求和梯度向量之间的差异量越小,模型权重就越大,当损失值越小时,模型权重就越大,实现降低投毒攻击节点的权重,增加模型的鲁棒性。
30、s5、不断迭代步骤s2至步骤s4,直到学习模型满足所需的性能或达到最大迭代次数t。
31、本发明有益效果:
32、保真性:在没有攻击的情况下,本发明提出的算法的全局模型准确率和fedavg、krum等算法基本一致,均能取得较好的效果。提高联邦学习的聚合效果,能够准确的进行投毒攻击防御。
33、鲁棒性:在针对10%的参与方进行毒害的情况下,本发明提出的算法的全局模型准确率优于fedavg、krum等算法,在针对30%的参与方进行毒害的情况下,本文提出的算法的全局模型准确率优于fedavg算法,与krum算法基本一致。
1.一种联邦学习投毒攻击防御方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的联邦学习投毒攻击防御方法,其特征在于,所述步骤s2具体过程如下:
3.根据权利要求2所述的联邦学习投毒攻击防御方法,其特征在于,步骤s3具体过程如下:
4.根据权利要求3所述的联邦学习投毒攻击防御方法,其特征在于,步骤3.5还能够通过如下方式实现:
5.根据权利要求3或4所述的联邦学习投毒攻击防御方法,其特征在于,步骤s4具体过程如下:
