張志遠,周 暉
(南通大學(xué) 信息科學(xué)技術(shù)學(xué)院,江蘇 南通 226019)
有別于傳統(tǒng)的分布式學(xué)習(xí)框架,聯(lián)邦學(xué)習(xí)可以在本地訓(xùn)練的過程中保護數(shù)據(jù)隱私,但是它也面臨諸多安全問題和隱私威脅[1]。例如拜占庭攻擊[2]極易出現(xiàn)在聯(lián)邦學(xué)習(xí)中,這是由于本地數(shù)據(jù)不對外公開,從而便于惡意參與者篡改訓(xùn)練數(shù)據(jù),構(gòu)建異常局部模型,進而干擾全局模型[3]的訓(xùn)練,或者上傳隨機噪聲來影響全局模型的收斂性[4],甚至在全局模型中留下一個后門[5-7]。為了抵抗上述攻擊威脅,Blanchard等[8]提出Krum算法,依賴梯度過濾器,選擇得分最低的梯度作為聚合結(jié)果。Xie等[9]提出3種類似的基于中值的方法:幾何中值、邊界中值、中值周圍均值。中值方法還有一些更復(fù)雜的修改,如坐標(biāo)中值[10]、批量歸一化中值[11]、拜占庭中值[12]。然而上述算法為了保證訓(xùn)練的收斂性和準(zhǔn)確性,都是試圖消除這些離散參數(shù),簡單地丟棄了大部分梯度,丟失了大量的梯度信息。因此Xie等[13]提出Zeno算法,選擇驗證集上損失較小的梯度來更新全局模型,但是它高度依賴于一個能夠準(zhǔn)確區(qū)分正常梯度和異常梯度的驗證集。Xia等[14]提出FABA算法,通過調(diào)整超參數(shù)的選擇來輕松控制性能。Li等[15]提出在服務(wù)器上使用一個預(yù)先訓(xùn)練好的自動編碼器模型來檢測源自客戶端的異常模型權(quán)重更新,從而檢測出異??蛻舳?。但上述方案主要針對局部模型的攻擊,忽視了針對權(quán)重的攻擊面。
在聯(lián)邦學(xué)習(xí)中,模型權(quán)重是服務(wù)器依據(jù)每個用戶的本地訓(xùn)練數(shù)據(jù)集的大小確定的。一方面來說,服務(wù)器為了激勵更多的用戶參與聯(lián)邦學(xué)習(xí),以獲得更優(yōu)異的學(xué)習(xí)效果,往往會給與用戶相應(yīng)的一些獎勵,而訓(xùn)練數(shù)據(jù)集大的用戶可能會得到更多的獎勵,于是用戶可能會在訓(xùn)練數(shù)據(jù)集的大小上撒謊,從而可以獲得更多的收益。而另一方面,用戶也可能會在不被發(fā)現(xiàn)的情況下,故意在更小的數(shù)據(jù)集上訓(xùn)練,以節(jié)省計算資源。惡意攻擊者往往會操縱權(quán)值分配策略,使模型的收斂性受到干擾,且在實踐中實施起來并不復(fù)雜。因此,我們順勢提出一種能夠抵御權(quán)重攻擊的防御方案。在本工作中,我們重點關(guān)注攻擊者旨在增加低質(zhì)量本地模型的影響的場景。
為解決以上問題,本文主要的研究工作如下。
構(gòu)造基于局部離群因子算法的異常檢測模型,提出一種基于局部密度的異常檢測算法(density-based anomaly detection,DBAD),所提算法由兩部分構(gòu)成:①檢測異常模型;②給聯(lián)邦學(xué)習(xí)系統(tǒng)中的每個客戶端分配信用分數(shù),即計算出局部異常模型產(chǎn)生的異常分數(shù),然后利用異常分數(shù)在聚合的過程中通過具體參數(shù)動態(tài)調(diào)整每一個局部模型的權(quán)重,從而使得異常更新對全局模型收斂性的影響降到最低。
(1)
(2)
中央服務(wù)器對各用戶傳來的模型進行聚合后,將新聚合的全局模型wt+1分配給各選定用戶進行下一輪的訓(xùn)練直到全局模型的收斂。為了更便于研究聯(lián)邦學(xué)習(xí)的安全性,我們假設(shè)客戶端的數(shù)量K很小,使得中央服務(wù)器可以在每一輪訓(xùn)練中選擇所有的用戶進行模型更新。
權(quán)重攻擊的架構(gòu)如圖1所示。根據(jù)攻擊者和正??蛻舳说木植磕P偷姆植继卣?,我們將“異?!倍x為比周圍最近的p個點更密集的點。
圖1 權(quán)重攻擊架構(gòu)
局部離群因子檢測算法是一種經(jīng)典的基于密度的高精度離群點檢測方法,是一種無監(jiān)督的異常檢測方法,通過計算給定數(shù)據(jù)點相對于鄰近局部密度的偏差來判斷是否為異常值,若存在數(shù)據(jù)點密度遠低于其鄰近的樣本點密度,則該數(shù)據(jù)點為異常值。它的密度與局部可達的LOF因子有關(guān)。局部可達密度越小,該點成為異常值的概率越大,反之局部可達密度越大,該點成為異常值的概率越小。LOF算法會給數(shù)據(jù)集中的每個點計算一個離群因子LOF,如果LOF遠大于1,則認為是離群因子,若接近于1,則認為是正常點。具體局部離群因子LOF定義請參見文獻[16]。
如果局部離群因子LOF在1的附近,說明點P的局部可達密度近似于點P鄰域內(nèi)的其它點的局部可達密度,可以推斷點P與這些點P鄰域內(nèi)的點屬于一簇,不是異常點;如果LOF大于1或者小于1,說明點P的局部可達密度小于或者大于點P鄰域內(nèi)的其它點的局部可達密度,可以推斷點P與這些點P鄰域內(nèi)的點不屬于同一簇,可能是異常點。
首先,對于每個局部模型wi, 計算最接近的p個局部模型到wi的平均距離
(3)
式中:i→j表示wj屬于wi的p個最近鄰。
然后,計算局部模型wi的異常評分
(4)
由上式可以看出,如果wi異常概率越高,得到的平均距離a_di就越小,其異常評分a_si就越高,因此會分配一個較大的異常評分。而對于一個正常的模型,結(jié)果就正好相反。
(5)
算法1:基于密度的異常檢測算法(DBAD)
中央服務(wù)器:
for 每一輪訓(xùn)練輪次t=1,2,…, do
for 每一個用戶k=1,2,…,Kdo
end for
for 每一個用戶k=1,2,…,Kdo
end for
for 每一個用戶k=1,2,…,Kdo
end for
end for
客戶k=1,2,…,K:
for 每一輪局部迭代 do
for 用戶分割中的每一個批次b
end for
end for
假設(shè)K個客戶端參與聯(lián)邦學(xué)習(xí),考慮以下分布式優(yōu)化模型
(6)
(7)
(8)
將等式(8)代入等式(1),我們可以發(fā)現(xiàn)
(9)
將等式(8)代入等式(2),我們可以得到
(10)
(11)
(12)
實驗首先選擇MINST和CIFAR-10數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)。MNIST數(shù)據(jù)集包含60 000張訓(xùn)練和10 000張測試手寫體數(shù)字的灰度圖像,尺寸大小為28×28。CIFAR-10數(shù)據(jù)集包含5萬張訓(xùn)練和1萬張測試的三通道彩色圖像,尺寸大小為32×32。
本文在Python 3.8和TensorFlow 2.3.1環(huán)境下對算法進行了實驗仿真。本文采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)作為聯(lián)邦學(xué)習(xí)的訓(xùn)練模型,并為MNIST數(shù)據(jù)集構(gòu)建了一個和在文獻[17]中結(jié)構(gòu)相同的卷積神經(jīng)網(wǎng)絡(luò),見表1。為CIFAR-10數(shù)據(jù)集構(gòu)建了一個和在文獻[18]中結(jié)構(gòu)相同的卷積神經(jīng)網(wǎng)絡(luò),我們使用了一個7層卷積神經(jīng)網(wǎng)絡(luò),包括以下幾層:輸入3072(32×32×3);具有核大小3×3的卷積層,16個圖片和1個步長;最大池大小為3×3,一個內(nèi)核為4×4的卷積層,64個圖片和1個步長;最大池層尺寸為4×4;兩個完全連接的層,尺寸分別為384和192和一個大小為10的輸出層,見表2。
表1 MNIST數(shù)據(jù)集上CNN的結(jié)構(gòu)
對于MNIST數(shù)據(jù)集,我們設(shè)置客戶端數(shù)量為25個,并考慮所有客戶端中攻擊者分別為50%和60%的情況,我們特別考慮以下的兩種權(quán)重攻擊:
表2 CIFAR-10數(shù)據(jù)集上CNN的結(jié)構(gòu)
對于CIFAR-10數(shù)據(jù)集,我們設(shè)置客戶端數(shù)量為25個,并考慮所有客戶端中攻擊者為40%和50%的情況,我們特別考慮以下的兩種權(quán)重攻擊:
每個客戶端批量大小為64,其學(xué)習(xí)率為0.001,一階矩估計的指數(shù)衰減率為0.9,二階矩估計的指數(shù)衰減率為0.999。我們將式(5)中的超參數(shù)L設(shè)為5,對于p,我們參考Multi-Krum算法,設(shè)為K-g-2。 其中,g定義為惡意模型數(shù)量。
選取兩個算法作為本文所提算法的對比。①Multi-Krum:該算法在聯(lián)邦學(xué)習(xí)每次迭代訓(xùn)練中選擇最低的梯度作為聚合結(jié)果,旨在消除遠離整體分布的梯度。②FABA:該算法在聯(lián)邦學(xué)習(xí)每次迭代過程中剔除離平均梯度最遠的梯度,直到剔除的梯度個數(shù)等于攻擊者的個數(shù)。比較見表3。
表3 算法的比較
我們通過損失函數(shù)來判斷在有惡意模型的情況下算法檢測異常的魯棒性,損失函數(shù)越小,說明在面對有惡意攻擊時,波動性越小,魯棒性越好;損失函數(shù)越大,說明在面對有惡意攻擊時,波動性越大,即魯棒性越差。實驗分別從準(zhǔn)確率和損失函數(shù)兩個角度對Multi-Krum算法、FABA算法和DBAD算法以及對沒有攻擊者時進行了分析。
圖2是在MNIST數(shù)據(jù)集中,反映了客戶端中有50%的攻擊者并且只有5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD以及沒有惡意攻擊者時的準(zhǔn)確率值的對比。其中,3種算法在前10次訓(xùn)練的階段中得到的模型準(zhǔn)確率穩(wěn)步上升,這說明模型的訓(xùn)練次數(shù)在到達某個值后,準(zhǔn)確率才會到達一個較高的值。當(dāng)訓(xùn)練次數(shù)達到10次時,DBAD算法訓(xùn)練得到的準(zhǔn)確率趨于穩(wěn)定,穩(wěn)定在0.93附近。由圖中可以看出,DBAD在應(yīng)對局部模型中存在低質(zhì)量模型的情況仍能保持較好的訓(xùn)練性能,而Multi-Krum和FABA在應(yīng)對有惡意模型時,穩(wěn)定性較差,穩(wěn)定性不高,很難保證訓(xùn)練質(zhì)量。
圖2 準(zhǔn)確率對比 (50%的攻擊者,5%的惡意數(shù)據(jù)集)
圖3是在MNIST數(shù)據(jù)集中,客戶端中有60%的攻擊者并且只有5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD以及沒有惡意攻擊者時的準(zhǔn)確率值的對比。其中,Multi-Krum算法在第6次訓(xùn)練時準(zhǔn)確率有大幅度的下降,Multi-Krum和FABA在第40次訓(xùn)練之后趨于穩(wěn)定。而DBAD算法在訓(xùn)練次數(shù)達到10次時,就趨于穩(wěn)定,穩(wěn)定在0.94附近。由圖中可以看出,DBAD在應(yīng)對局部模型中存在低質(zhì)量模型的情況仍能保持較好的訓(xùn)練性能,而Multi-Krum和FABA在應(yīng)對有惡意模型時,波動性較大,穩(wěn)定性不高,很難保證訓(xùn)練質(zhì)量。
圖3 準(zhǔn)確率對比 (60%的攻擊者,5%的惡意數(shù)據(jù)集)
圖4在MNIST數(shù)據(jù)集中,客戶端中有60%的攻擊者并且只有5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD以及沒有攻擊者時損失函數(shù)的值的對比。DBAB算法的損失函數(shù)基本上沒有太大的波動,且基本上和沒有攻擊者時的損失值一致。而另外兩種算法的損失函數(shù)明顯可以看出波動很大,始終無法收斂且明顯高于DBAB算法。
圖4 損失函數(shù)對比 (60%的攻擊者,5%的惡意數(shù)據(jù)集)
圖5是在MNIST數(shù)據(jù)集中,客戶端中有50%的攻擊者并且只有0.5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD以及沒有攻擊者時準(zhǔn)確率的值的對比。從圖5中可以觀察到,Multi-Krum算法在第6次訓(xùn)練時準(zhǔn)確率有大幅度的下降,F(xiàn)ABA算法在第4次訓(xùn)練時準(zhǔn)確率有明顯下降。Multi-Krum和FABA在第50次訓(xùn)練之后并沒有收斂。而DBAD算法在訓(xùn)練次數(shù)達到10次時仍具有很好的穩(wěn)定性,穩(wěn)定在0.94附近。由圖中可以看出DBAD在應(yīng)對局部模型中存在低質(zhì)量模型的情況仍能保持較好的訓(xùn)練性能,而Multi-Krum和FABA在應(yīng)對有惡意模型時,波動性較大,穩(wěn)定性不高,很難保證訓(xùn)練質(zhì)量。
圖6是在MNIST數(shù)據(jù)集中,客戶端中有60%的攻擊者并且只有0.5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD準(zhǔn)確率的值的對比。從圖6中可以看出,在惡意數(shù)據(jù)集的數(shù)量比較少的情況下,DBAD仍能在前10次訓(xùn)練中達到最高的準(zhǔn)確率(0.95)。而Multi-Krum在惡意數(shù)據(jù)集的數(shù)量比較少的情況下,無法正確檢測出惡意模型,準(zhǔn)確率保持在0.23左右,與FABA的訓(xùn)練性能接近。
圖5 準(zhǔn)確率對比 (50%的攻擊者,0.5%的惡意數(shù)據(jù)集)
圖6 準(zhǔn)確率對比 (60%的攻擊者,0.5%的惡意數(shù)據(jù)集)
圖7是在MNIST數(shù)據(jù)集中,客戶端中有60%的攻擊者并且只有0.5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD的損失函數(shù)的值的對比。與準(zhǔn)確率的變化情況相似,DBAB算法相較于另外兩種算法能更快地收斂,且損失函數(shù)最小,近乎為0。Multi-Krum和FABA由于惡意模型的存在,損失函數(shù)始終較高。
圖7 損失函數(shù)對比 (60%的攻擊者,0.5%的惡意數(shù)據(jù)集)
圖8是在CIFAR-10數(shù)據(jù)集中,客戶端中有40%的攻擊者并且只有5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD準(zhǔn)確率的值的對比。其中,Multi-Krum和FABA算法在訓(xùn)練次數(shù)達到65次之后有個明顯的上升趨勢,而DBAD算法在訓(xùn)練次數(shù)達到20次時,訓(xùn)練得到的準(zhǔn)確率趨于穩(wěn)定,穩(wěn)定在0.45附近。DBAD在應(yīng)對低質(zhì)量模型時仍能保持較好的訓(xùn)練性能,而Multi-Krum和FABA穩(wěn)定性較差,穩(wěn)定性不高,很難保證訓(xùn)練質(zhì)量。
圖8 準(zhǔn)確率對比 (40%的攻擊者,5%的惡意數(shù)據(jù)集)
圖9是在CIFAR-10數(shù)據(jù)集中,客戶端中有50%的攻擊者并且只有5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD準(zhǔn)確率的值的對比。從圖9中可以看出,Multi-Krum和FABA算法在100次訓(xùn)練中,準(zhǔn)確率穩(wěn)定處于0.2以下,受到惡意模型的影響很大。而當(dāng)?shù)螖?shù)達到20次時,DBAD算法訓(xùn)練得到的準(zhǔn)確率趨于穩(wěn)定,穩(wěn)定在0.45附近。DBAD在應(yīng)對低質(zhì)量模型時仍能保持較好的訓(xùn)練性能,而Multi-Krum和FABA穩(wěn)定性較差,穩(wěn)定性不高,很難保證訓(xùn)練質(zhì)量。
圖9 準(zhǔn)確率對比 (50%的攻擊者,5%的惡意數(shù)據(jù)集)
圖10是在CIFAR-10數(shù)據(jù)集中,是客戶端中有50%的攻擊者并且只有5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD損失函數(shù)的值的對比。DBAB算法的損失函數(shù)基本上沒有太大的波動,且基本上和沒有攻擊者時的損失值一致。而另外兩種算法的損失函數(shù)始終無法收斂且明顯高于DBAB。
圖10 損失函數(shù)對比 (50%的攻擊者,5%的惡意數(shù)據(jù)集)
圖11是在CIFAR-10數(shù)據(jù)集中,是客戶端中有40%的攻擊者并且只有0.5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD準(zhǔn)確率的值的對比。其中,在惡意數(shù)據(jù)集的數(shù)量比較少的情況下,DBAB仍能檢測出惡意模型,并且在20次訓(xùn)練左右就收斂至最高的準(zhǔn)確率(0.47)。Multi-Krum算法和 FABA算法的訓(xùn)練性能接近,能在第60次訓(xùn)練后穩(wěn)定在0.36左右。
圖11 準(zhǔn)確率對比 (40%的攻擊者,0.5%的惡意數(shù)據(jù)集)
圖12是在CIFAR-10數(shù)據(jù)集中,客戶端中有50%的攻擊者并且只有0.5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD準(zhǔn)確率的值的對比。從圖12中可以看出,在檢測少量惡意模型時,DBAB算法不受影響,仍能快速檢測出異常模型,并且在20次訓(xùn)練左右就收斂至最高的準(zhǔn)確率(0.47)。而Multi-Krum在惡意數(shù)據(jù)集的數(shù)量比較少的情況下,準(zhǔn)確率明顯下降,保持在0.21左右,與FABA的訓(xùn)練性能接近。
圖12 準(zhǔn)確率對比 (50%的攻擊者,0.5%的惡意數(shù)據(jù)集)
圖13是客戶端中有50%的攻擊者并且只有0.5%的惡意數(shù)據(jù)集時Multi-Krum、FABA、DBAD損失函數(shù)的值的對比。與準(zhǔn)確率的變化情況相似,DBAB算法相較于另外兩種算法能更快地收斂,且損失函數(shù)最小,近乎為0。Multi-Krum和FABA由于惡意模型的存在,損失函數(shù)始終較高。
圖13 損失函數(shù)對比 (50%的攻擊者,0.5%的惡意數(shù)據(jù)集)
綜上所述,Multi-Krum和FABA在面對權(quán)重攻擊時魯棒性較差,當(dāng)攻擊者數(shù)量超過60%的時候,它們不再具有有效的防御能力。因為Multi-Krum和FABA會以更高的概率將正常模型識別成異常模型,從而從聚合過程中剔除。我們的方案是不從聚合過程中排除任何模型,當(dāng)一個局部模型獲得的異常評分過高的時候,我們分配給其一個較小的權(quán)重,這樣的話,即使一個正常的模型被錯誤的識別成異常模型,也能在全局模型的聚合中保留一定的貢獻度。此外,我們的方案更傾向于將較大的異常分數(shù)分配給非常接近的模型,可以保證更高的識別效率。
本文提出了基于權(quán)重攻擊的異常檢測防御方案,在考慮到惡意攻擊模型的情況下,有效提高聯(lián)邦學(xué)習(xí)的準(zhǔn)確率的同時降低了損失函數(shù)。首先,根據(jù)聯(lián)邦學(xué)習(xí)中局部模型的特點,考慮準(zhǔn)確率等因素,構(gòu)建基于局部離群因子檢測算法的問題模型。其次,設(shè)計基于局部密度的異常檢測算法,在每次訓(xùn)練迭代前通過賦予高密度的局部模型更高的異常評分,自適應(yīng)調(diào)整各局部模型的權(quán)重,最小化對全局模型收斂性的影響。最后,實驗結(jié)果顯示,所提方法一定程度上在有惡意模型攻擊的情況下,提高了聯(lián)邦學(xué)習(xí)的準(zhǔn)確率,且具有良好的收斂性和魯棒性。為聯(lián)邦學(xué)習(xí)在防御權(quán)重攻擊面提供了一種有效的解決方案。方案中要求服務(wù)器計算局部模型之間的歐氏距離,因此當(dāng)客戶端數(shù)量較大時,計算成本較高。實驗在MNIST和CIFAR-10數(shù)據(jù)集上進行,未來會在更多數(shù)據(jù)集下進行性能評估和與其它算法的比較來完善實驗方案的有效性。