本發(fā)明屬于聯(lián)邦學(xué)習(xí),具體涉及一種針對高密度標(biāo)簽翻轉(zhuǎn)攻擊的聯(lián)邦學(xué)習(xí)防御方法。
背景技術(shù):
1、在人工智能時代背景下,數(shù)據(jù)已成為推動科技進(jìn)步和社會發(fā)展的關(guān)鍵因素。傳統(tǒng)的集中式數(shù)據(jù)處理方式面臨著嚴(yán)重的隱私泄露、通信效率低下等一系列挑戰(zhàn),設(shè)備間的不信任使得數(shù)據(jù)孤島矛盾日益突出。聯(lián)邦學(xué)習(xí)能夠保證在數(shù)據(jù)不出本地的前提下,各用戶共同訓(xùn)練出有效的機(jī)器學(xué)習(xí)模型,實(shí)現(xiàn)知識共享而數(shù)據(jù)不共享,較好地解決了數(shù)據(jù)孤島和隱私保護(hù)問題。
2、然而,由于聯(lián)邦學(xué)習(xí)各用戶節(jié)點(diǎn)在安全防御能力上的差異,使得聯(lián)邦學(xué)習(xí)在實(shí)際應(yīng)用中面臨諸多安全問題和攻擊威脅,其中較為典型的是由惡意用戶節(jié)點(diǎn)發(fā)起的標(biāo)簽翻轉(zhuǎn)攻擊。
3、標(biāo)簽翻轉(zhuǎn)攻擊是在確保數(shù)據(jù)特征屬性不變的情況下,攻擊者通過篡改本地數(shù)據(jù)的標(biāo)簽讓模型學(xué)習(xí)到錯誤的信息,是從數(shù)據(jù)源進(jìn)行投毒的一種攻擊方式。例如,將原本標(biāo)記為“狗”的圖像錯誤地標(biāo)記為“貓”,從而誤導(dǎo)模型訓(xùn)練。標(biāo)簽翻轉(zhuǎn)攻擊制造的臟數(shù)據(jù)通過參與本地模型訓(xùn)練生成錯誤的模型參數(shù),在聯(lián)邦聚合過程中,將錯誤的模型參數(shù)上傳至中央服務(wù)器,降低全局模型的準(zhǔn)確率和魯棒性。
4、為了防御標(biāo)簽翻轉(zhuǎn)攻擊對聯(lián)邦學(xué)習(xí)的危害,目前已有多種防御機(jī)制。但現(xiàn)有算法往往只針對低密度的攻擊,對于較高密度標(biāo)簽翻轉(zhuǎn)攻擊的缺乏研究。例如:拜占庭容錯機(jī)器學(xué)習(xí)算法(krum算法)最高只能防御40%的標(biāo)簽翻轉(zhuǎn)攻擊,且在攻擊比例達(dá)到40%時,模型穩(wěn)定性差,魯棒性下降明顯。因此,如何提高在高密度標(biāo)簽翻轉(zhuǎn)攻擊下聯(lián)邦學(xué)習(xí)的準(zhǔn)確率,是目前尚待解決的一個重要問題。
技術(shù)實(shí)現(xiàn)思路
1、為解決現(xiàn)有技術(shù)對高密度標(biāo)簽翻轉(zhuǎn)攻擊難以檢測和防御的情況,本發(fā)明提供一種針對高密度標(biāo)簽翻轉(zhuǎn)攻擊的聯(lián)邦學(xué)習(xí)防御方法,具體包括下列步驟:
2、s1.建立中心化聯(lián)邦架構(gòu),其中包括一個中央服務(wù)器和m個用戶節(jié)點(diǎn),中央服務(wù)器初始化全局模型參數(shù)為w0;
3、選用卷積神經(jīng)網(wǎng)絡(luò)cnn模型進(jìn)行實(shí)施;
4、s2.中央服務(wù)器選擇參與訓(xùn)練的本地用戶,并將全局模型廣播給參與訓(xùn)練的本地用戶;
5、具體如下:
6、s21.假設(shè)聯(lián)邦學(xué)習(xí)共進(jìn)行t輪模型更新,在每輪訓(xùn)練t中,中央服務(wù)器隨機(jī)選取m=max(α·m,1)個用戶參與訓(xùn)練,其中m表示用戶節(jié)點(diǎn)總數(shù),α∈[0,1]表示每次的選取比例,“·”表示相乘;
7、s22.中央服務(wù)器將全局模型分發(fā)給選中的m個用戶;
8、s3.用戶本地模型訓(xùn)練,計(jì)算并提取最后一層神經(jīng)元離群梯度,上傳至中央服務(wù)器;
9、具體如下:
10、s31.每個用戶節(jié)點(diǎn)w(w∈m)接收中央服務(wù)器下發(fā)的全局模型wt,采用隨機(jī)梯度下降sgd算法在本地數(shù)據(jù)集dw上進(jìn)行e輪模型訓(xùn)練,得到本地模型參數(shù)wtw;
11、s32.每個用戶完成訓(xùn)練后,計(jì)算自身最后一層神經(jīng)元梯度大小其中,表示第t輪訓(xùn)練時,第w個用戶節(jié)點(diǎn)輸出層的第i個神經(jīng)元的梯度,||·||2為l2范數(shù);
12、s33.每個用戶對最后一層神經(jīng)元梯度大小進(jìn)行排序;
13、s34.每個用戶依據(jù)排序后的神經(jīng)元梯度大小提取大的離群梯度,記作并上傳到中央服務(wù)器;
14、s4.中央服務(wù)器采用無監(jiān)督學(xué)習(xí)對所有用戶的離群梯度進(jìn)行聚類分析,利用余弦相似度比較簇密度大小找到疑似惡意節(jié)點(diǎn);
15、具體如下:
16、s41.中央服務(wù)器接受來自各用戶的離群梯度,構(gòu)成離群梯度集合l表示最后一層神經(jīng)元總數(shù);
17、s42.中央服務(wù)器用k-means算法對離群梯度集合outgradients進(jìn)行無監(jiān)督學(xué)習(xí)聚類分析,設(shè)置簇中心k=2,得到cluster1和cluster2兩個簇;
18、s43.中央服務(wù)器用余弦相似度分別計(jì)算cluster1和cluster2兩個簇的簇密度大小clud1和clud2,計(jì)算公式為:clud[i]=mean(cossim[i]),mean(.)為均值函數(shù),cossim[i]表示每個簇中各梯度之間的余弦相似度,計(jì)算公式為:
19、
20、clud[i]表示不同簇的簇密度大小,是對余弦相似度cossim[i]取均值得到的結(jié)果;
21、s44.中央服務(wù)器比較簇密度clud1和clud2的大小,區(qū)分惡意梯度所在簇cluster_malicious和誠實(shí)梯度所在簇cluster_honest;簇密度越大,是惡意用戶節(jié)點(diǎn)梯度更新所在簇的可能性大;簇密度越小,是誠實(shí)用戶節(jié)點(diǎn)梯度更新所在簇的可能性大;中央服務(wù)器通過比較簇密度大小找到惡意梯度所在簇cluster_malicious,進(jìn)而依據(jù)惡意梯度所在簇索引找到疑似受標(biāo)簽翻轉(zhuǎn)攻擊的中毒用戶;
22、s5.中央服務(wù)器對參與訓(xùn)練的用戶節(jié)點(diǎn)按步驟s51和s52規(guī)則進(jìn)行賦權(quán),完成一次聯(lián)邦聚合;
23、s51.稱受到標(biāo)簽翻轉(zhuǎn)攻擊的用戶為中毒用戶,沒有受到標(biāo)簽翻轉(zhuǎn)攻擊的用戶為誠實(shí)用戶,誠實(shí)用戶和中毒用戶的總數(shù)為m;中央服務(wù)器對誠實(shí)用戶節(jié)點(diǎn)賦予聚合權(quán)重為δhonest=1,對s4中檢測出的疑似中毒用戶賦予小權(quán)重;
24、s52.中央服務(wù)器按照各節(jié)點(diǎn)賦權(quán)進(jìn)行加權(quán)平均,利用下式完成聯(lián)邦聚合,更新全局模型參數(shù),計(jì)算公式為:
25、
26、其中,δw∈{δhonest,δmalicious},表示第w個用戶節(jié)點(diǎn)的權(quán)重值,wtw表示第t輪訓(xùn)練中第w個用戶節(jié)點(diǎn)的模型參數(shù);
27、s6.中央服務(wù)器下發(fā)更新后的全局模型參數(shù)wt,系統(tǒng)重復(fù)步驟s2至s5,進(jìn)行迭代訓(xùn)練,直至完成t輪訓(xùn)練。
28、在本發(fā)明一個具體實(shí)施例的步驟s1中,卷積神經(jīng)網(wǎng)絡(luò)cnn模型共設(shè)m=50個用戶節(jié)點(diǎn)。
29、在本發(fā)明一個實(shí)施例的步驟s22中,聯(lián)邦學(xué)習(xí)過程開始訓(xùn)練時,由中央服務(wù)器生成初始的全局模型參數(shù)w0下發(fā)給參與訓(xùn)練的用戶,用戶完成本地訓(xùn)練后上傳本地模型參數(shù)wtw,由中央服務(wù)器聚合所有的本地模型參數(shù),按照步驟s5定義的規(guī)則更新后生成新的全局模型參數(shù)wt。
30、在本發(fā)明另一個具體實(shí)施例的步驟s34中,每個用戶依據(jù)排序后的神經(jīng)元梯度大小提取中前三分之一的離群梯度。
31、在本發(fā)明另一個實(shí)施例的步驟s44中,采用的具體索引方法如下:
32、假設(shè)惡意梯度所在簇cluster_malicious中的梯度元素為即:其中p∈m,表示在所有參與聯(lián)邦學(xué)習(xí)的m個用戶中,第p個用戶是中毒用戶,從而完成索引,找到疑似受標(biāo)簽翻轉(zhuǎn)攻擊的中毒用戶。
33、在本發(fā)明又一個具體實(shí)施例的步驟s51中,賦予δmalicious=0.5。
34、本發(fā)明提出一種針對高密度標(biāo)簽翻轉(zhuǎn)攻擊的聯(lián)邦學(xué)習(xí)防御方法,與現(xiàn)有方法相比,具有以下優(yōu)點(diǎn):
35、(1)有效性:在低密度標(biāo)簽翻轉(zhuǎn)攻擊下,本發(fā)明方法和聯(lián)邦平均算法(federatedaveraging,fedavg)、中位數(shù)算法(median)的準(zhǔn)確率基本一致,說明本算法能夠有效完成聯(lián)邦學(xué)習(xí),防止模型受到標(biāo)簽翻轉(zhuǎn)攻擊。
36、(2)準(zhǔn)確性:在低密度標(biāo)簽翻轉(zhuǎn)攻擊下,本發(fā)明方法的準(zhǔn)確率優(yōu)于median算法;在30%以上的高密度攻擊下,本發(fā)明明顯優(yōu)于fedavg和median算法。
37、(3)魯棒性:在高密度標(biāo)簽翻轉(zhuǎn)攻擊下,fedavg、median算法訓(xùn)練波動性很大,訓(xùn)練很不穩(wěn)定,但本發(fā)明方法仍能保持較好的穩(wěn)定性。