本发明属于联邦学习隐私安全,具体涉及一种针对拜占庭攻击的车联网联邦学习防御方法,可以有效防御车联网场景下联邦学习过程中可能遇到的恶意攻击,从而提升全局模型的模型精度,保证自动驾驶车辆的行驶安全。
背景技术:
1、随着自动驾驶技术的迅猛发展,联邦学习(fl)由于其分布式、隐私保护等特点被越来越多地部署到车联网场景中。自动驾驶车辆利用本地数据训练服务器端下发的模型,在本地模型训练的过程中,一些潜在的恶意用户就会利用拜占庭攻击恶意更改本地模型更新参数。被攻击的本地恶意模型上传至服务器端进行聚合时,便会严重影响全局模型的准确性和收敛性,从而造成巨大的安全隐患。因此,车联网场景下联邦学习对拜占庭攻击的防御是至关重要的。
2、现有的解决方案可分为基于防御的算法和基于检测的算法。基于防御的算法的基本思想是服务器端在所有的局部模型中通过一定的规则找出最优局部模型,将此最优局部模型作为全局模型,或者通过一定规则找出所有局部模型的最优聚合方式;由于基于防御的算法并不区分恶意客户端和良好客户端,这将导致一些恶意客户端仍然有可能参与到全局模型的聚合当中。基于检测的算法的基本思想是将恶意客户端和良好客户端区分开来,并在模型聚合期间移除恶意客户端,从而消除恶意客户端对全局模型的严重影响。
3、peva blanchard等人在文献《peva blanchard,rachid guerraoui,and etal.machine learning with adversaries:byzantine tolerant gradient descent.innips,pages 119–129,2017.》中提出一种基于防御的算法krum,其基本思想是在若干局部模型中选择一个与其他模型均相似的模型作为全局模型。具体而言,将自身模型梯度与其他客户端模型梯度的欧式距离之和作为该梯度的得分,然后选取得分最低者,即将与大多数梯度都相似的梯度作为聚合梯度。
4、yin等人在文献《dong yin,yudong chen,and et al.byzantine-robustdistributed learning:towards optimal statistical rates.arxiv preprint arxiv:1803.01498,2018.》中提出一种新的基于防御的算法trimmedmean,该算法聚合了本地模型梯度的每个维度,对于给定的维度,它对所有梯度的同一维的值进行排序,通过删除若干个最大值和最小值,并计算其余值的平均值作为其这一维的聚合。由于其在聚合的过程中删除了一些异常客户端的局部模型参数,在一定程度上降低了恶意攻击的影响。
5、wang等人在文献《y.wang,y.xia and y.zhan,"elite:defending federatedlearning against byzantine attacks based on information entropy,"2021chinaautomation congress(cac),beijing,china,2021,pp.6049-6054,doi:10.1109/cac53003.2021.9727486.》中根据信息熵提出一种基于检测的算法elite,其思想是利用信息熵来衡量局部模型对全局模型的分心程度,即客户端的信息增益越大,则其对全局模型的负面影响也就越大,据此就可以判断此用户为恶意用户。
6、zheng等人在文献《x.zheng,q.dong and a.fu,"wmdefense:using watermark todefense byzantine attacks in federated learning,"ieee infocom 2022-ieeeconference on computer communications workshops(infocom wkshps),new york,ny,usa,2022,pp.1-6,doi:10.1109/infocomwkshps54753.2022.9798217.》中提出一种基于模型水印的检测算法,其核心思想是在正式全局迭代开始之前,服务器端会向各个客户端发送一个包含水印的小型图片数据集和一个简易模型,各个客户端先用这个小型数据集训练简易模型,将之上传至服务器端,服务器端根据水印的衰退程度来区分恶意客户端和良好客户端。
7、现有抵抗拜占庭攻击的算法存在以下几个问题:(1)防御能力有限;现有算法虽然能在一定程度上防御拜占庭攻击,但远远达不到模型收敛要求,而车联网场景中如果模型不收敛,将对乘客和道路上各种交通参与者造成极大的安全隐患;(2)适用场景有限;现有算法仅适用于独立同分布(i.i.d.)数据,而在车联网场景中,每辆自动驾驶车辆的本地数据大多数情况是非独立同分布的;(3)现有算法必须要在知道恶意客户端数量的前提下才能正常工作,但是在现实情况下不可能提前知道恶意客户端的数量。
技术实现思路
1、为了解决现有技术中存在的上述问题,本发明提供了一种针对拜占庭攻击的车联网联邦学习防御方法。本发明要解决的技术问题通过以下技术方案实现:
2、本发明提供了一种针对拜占庭攻击的车联网联邦学习防御方法,包括:
3、s1:从m个客户端中随机挑选k个客户端参与全局迭代,服务器端为选中的所述k个客户端下发初始全局模型;
4、s2:选中的所述k个客户端在本地训练所述初始全局模型,并将训练完成后更新的模型参数上传至所述服务器端;
5、s3:服务器端获取所有k个客户端中每个客户端的本地模型对全局模型的基尼增益;
6、s4:根据每个客户端的本地模型对全局模型的基尼增益检测恶意客户端的数量和编号;
7、s5:服务器端得到恶意客户端数量和编号后将所有恶意客户端筛除,聚合剩余良好客户端的本地模型得到全局模型;
8、s6:从m个客户端中去除所有恶意客户端后再次随机挑选k个客户端,重复步骤s1至s5,直至筛出所有恶意客户端。
9、在本发明的一个实施例中,所述s3包括:
10、s3.1:将所述k个客户端本地模型的最后一层全连接层的第i个参数等分为l个区间,并获取等分区间的长度;
11、s3.2:获取所述k个客户端本地模型的最后一层全连接层的第i个参数落入第j个等分区间内的概率;
12、s3.3:根据所述概率获取k个客户端本地模型的最后一层全连接层的第i个参数的基尼不纯度gi:
13、
14、其中,pj表示k个客户端本地模型的最后一层全连接层的第i个参数落入第j个区间内的概率;
15、s3.4:对k个客户端本地模型的最后一层全连接层的所有n个参数的基尼不纯度进行累加,得到全局模型的整体基尼不纯度:
16、
17、其中,g表示全局模型的整体基尼不纯度,i≤n;
18、s3.5:根据全局模型的整体基尼不纯度获得每个客户端对全局模型的整体基尼不纯度的基尼增益:
19、δgk=g-gx/k
20、其中,gx/k表示去除第k个客户端后剩余k-1个客户端的整体基尼不纯度,δgk表示第k个客户端对全局模型的整体基尼不纯度的基尼增益。
21、在本发明的一个实施例中,在所述s3.1中,所述等分区间的长度d的表达式为:
22、
23、其中,y=[y1,y2,...,yi,...,yn],y表示所有k个客户端的本地模型最后一层全连接层的n个参数集合,yi表示所有k个客户端的本地模型最后一层全连接层的第i个参数集合,yi=[yi1,yi2,...,yik,...,yik],yik表示第k个客户端的本地模型最后一层全连接层的第i个参数,max(yi)表示参数集合yi中的最大值,min(yi)表示参数集合yi中的最小值。
24、在本发明的一个实施例中,所述s4包括:
25、s4.1:将所有客户端的基尼增益δgk组成集合δg=[δg1,δg2,...,δgk,...,δgk],并对集合δg中每个客户端的基尼增益进行由大到小排序得到集合δsg;
26、s4.2:对集合δ中相邻两个客户端之间的基尼增益作差并取绝对值,得到相邻客户端之间的基尼增益差值集合δs=[δs1,δs2,...,δsk,...,δsk-1],其中:
27、δsk=|δsgk+1-δsgk|
28、其中,δsgk表示集合δsg中第k个值,δsgk+1表示集合δsg中第k+1个值;
29、s4.3:根据所述基尼增益差值集合δs判断所有k个客户端中是否存在恶意客户端;
30、s4.4:获取恶意客户端的数量及编号。
31、在本发明的一个实施例中,所述s4.3包括:
32、设定判断阈值u,当基尼增益差值峰值max(δsk)大于u时,则判定所述k个客户端中存在恶意客户端,且基尼增益差值δsk在恶意客户端与良好客户端的分界处差值达到峰值,在所述峰值之前的位置处均为恶意客户端,所述峰值之后的位置处均为良好客户端;当基尼增益差值峰值max(δsk)小于u时,判定所述k个客户端中不存在恶意客户端。
33、在本发明的一个实施例中,所述s4.4包括:
34、当基尼增益差值峰值max(δk)大于u存在恶意客户端时,检测恶意客户端的数量为:
35、a=argmax(δk)
36、其中,argmax(δk)为基尼增益差值峰值在基尼增益差值集合δs中所对应的索引,a为检测出的恶意客户端数量。
37、确定每个恶意客户端对应的编号。
38、本发明的另一方面提供了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序用于执行上述实施例中所述针对拜占庭攻击的车联网联邦学习防御方法的步骤。
39、本发明的另一方面提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述实施例中所述针对拜占庭攻击的车联网联邦学习防御方法的步骤。
40、与现有技术相比,本发明的有益效果有:
41、1、本发明提出一个基于基尼不纯度的车联网场景下针对拜占庭攻击的fl防御方法,能够高效地检测出所有的恶意自动驾驶车辆。与现有方法相比,本发明不仅适用于非独立同分布数据,而且可以在不知道恶意客户端数量的前提下检测出所有的恶意客户端,从而大大提升全局自动驾驶模型的准确性和收敛性。
42、2、本发明的方法适用于非独立同分布数据,且有很好地拜占庭攻击防御效果。现有的算法仅适用于独立同分布数据,然而对于车联网场景,每辆自动驾驶车辆的数据在大多数情况下是非独立同分布的。而且现有的算法,尤其是基于防御的算法对于全局模型准确性和收敛性的提升是非常有限的,不能达到预期要求。本发明不仅适用于非独立同分布数据,而且对全局模型的准确性和收敛性都有显著的提升。
43、3、本发明的方法可以在随机挑选客户端和随机恶意客户端数量的情况下检测出恶意客户端。现有算法必须要在固定客户端且知道恶意客户端数量的前提下才能正常工作,但是在现实情况中不可能提前知道恶意客户端的数量,并且客户端是随机挑选的。而本发明很好地解决了这个问题,显著提升了车联网场景中全局模型的模型精度,从而保障了自动驾驶车辆乘客和其他交通参与者的安全。
44、以下将结合附图及实施例对本发明做进一步详细说明。