程顯淘
(廣州大學計算機科學與網(wǎng)絡工程學院 廣州 510006)
近年來,智能設備的計算能力顯著增強,為在大量的分布式設備上訓練機器學習模型奠定了堅實的基礎.分布式機器學習需要1個控制各節(jié)點數(shù)據(jù)的中心,模型訓練時節(jié)點的私有數(shù)據(jù)會離開本地,從而存在潛在的隱私安全問題.基于此,2016年谷歌引入了聯(lián)邦學習[1],它允許各分布式節(jié)點的私有數(shù)據(jù)不離開本地的情況下,協(xié)同訓練1個全局模型.聯(lián)邦學習在保護數(shù)據(jù)隱私和節(jié)省通信帶寬方面具有極大的優(yōu)勢,現(xiàn)已被廣泛應用于推薦系統(tǒng)[2]、自然語言處理[3]、醫(yī)療[4]等領域.
然而,由于聯(lián)邦學習的分布式性質(zhì),其還是很容易受到模型中毒攻擊[5-6]的影響.其中攻擊者控制的惡意客戶端可通過向中央服務器發(fā)送被操縱的惡意模型更新破壞全局模型.攻擊者控制的惡意客戶端可能是注入的虛假客戶端[7]也可能是被攻擊者破壞的真實客戶端[8-10].
聯(lián)邦學習在分布式訓練過程中受到各類攻擊是無法避免的.只有針對各種攻擊提出相應的防御措施減小甚至消除攻擊者的影響,才能使聯(lián)邦學習更好地發(fā)揮其安全性和分布式訓練的效果.現(xiàn)有的許多方法可以防御模型中毒攻擊,但尚未能較好地同時防御多種類型的模型中毒攻擊.基于此,本文提出一種針對聯(lián)邦學習的惡意客戶端檢測及防御方法FedMDD,主要工作如下:
1) 提出一種基于本地更新的惡意客戶端檢測及防御的新方法.根據(jù)客戶端提交的本地模型參數(shù)檢測識別良性與惡意的輸入,區(qū)分有目標、無目標攻擊者以及不可靠客戶端,達到可防御符號翻轉(zhuǎn)、附加噪聲、標簽翻轉(zhuǎn)和多標簽翻轉(zhuǎn)攻擊以及具高度戰(zhàn)略性的后門攻擊防御效果.
2) 提出一種動態(tài)調(diào)整不可靠客戶端模型聚合權重的方法.以余弦相似性為依據(jù)評估各不可靠客戶端的貢獻度,對于貢獻度更高的客戶端賦予其更大的聚合權重,進一步提高模型測試精度.
3) 驗證本文方法的有效性.在Fashion-MNIST數(shù)據(jù)集下,針對FedAvg,MUD-HoG,Foolsgold,Krum方法進行了對比實驗.實驗結(jié)果證明了本文提出的FedMDD方法在模型精度和防御后門攻擊效果上均優(yōu)于基線方法.
假設聯(lián)邦學習系統(tǒng)中有n個客戶端,所有客戶端在相同的學習目標下共享1個模型結(jié)構.中央服務器通過向所有客戶端發(fā)送全局模型w0開啟訓練,每個客戶端參與本地訓練后將更新的局部模型w′上傳到中央服務器,中央服務器聚合后更新全局模型,再次下發(fā)給各客戶端進行新一輪的模型更新.在訓練期間,每個客戶端通過最小化多個訓練階段的損失函數(shù)f(Di,w)來學習得到新的權重w′.在1輪t中,客戶端ci的梯度計算如下:
(1)


(2)
然后將下一輪全局模型更新為wt+1=wt-α?t,α表示學習率.
聯(lián)邦學習需要多個客戶端共同參與,盡管其不要求參與者上傳原始數(shù)據(jù)以保護隱私,但無法保證所選客戶端都能誠實地參與訓練,即聯(lián)邦學習中的客戶端對于中央服務器來說是不可信的.
本文考慮了以下3種類型的客戶端:
1) 誠實客戶端.正常地參與模型訓練過程,并擁有高質(zhì)量的數(shù)據(jù).
2) 不可靠客戶端.在聯(lián)邦學習訓練中正常表現(xiàn),無惡意目標,但其部分數(shù)據(jù)質(zhì)量低下.這些數(shù)據(jù)可能會捕獲到一些不常見的樣本類別,存在一定價值.
3) 惡意客戶端.操縱其本地訓練數(shù)據(jù)或模型權重,以對正在訓練的全局模型產(chǎn)生對抗性影響的攻擊者.
中毒攻擊旨在損害系統(tǒng)的魯棒性,通常分為無目標攻擊和目標攻擊,2種攻擊都試圖以特定方式修改目標模型的行為.
無目標中毒攻擊[11]旨在任意破壞模型的完整性.本文考慮以下2種模型中毒攻擊:符號翻轉(zhuǎn)攻擊和附加噪聲攻擊.符號翻轉(zhuǎn)攻擊為惡意客戶端在把本地梯度發(fā)送到中央服務器之前,將其符號進行翻轉(zhuǎn),而梯度大小保持不變.附加噪聲攻擊是惡意客戶端在發(fā)送到中央服務器之前將高斯或隨機噪聲添加到其局部梯度中.
目標中毒攻擊的目的是降低模型在特定任務上的性能,同時不影響其他的情況,因此它們是難以檢測的.本文考慮以下3種目標中毒攻擊:單標簽翻轉(zhuǎn)攻擊[12]、多標簽翻轉(zhuǎn)攻擊和后門攻擊.單標簽翻轉(zhuǎn)攻擊是攻擊者將一個指定類別的所有樣本源標簽更改為另一個標簽類別,同時保持其他類別的完整性;多標簽翻轉(zhuǎn)攻擊指攻擊者把多個源標簽翻轉(zhuǎn)為特定的目標標簽,這將導致目標標簽類別準確性的提高,同時降低了其他類別的準確性;后門攻擊[13-14]是由攻擊者在某些訓練/測試數(shù)據(jù)中植入某種觸發(fā)模式(稱為后門觸發(fā)器)以注入后門,意圖讓模型對具有某種特定特征的數(shù)據(jù)作出錯誤的判斷,此類攻擊更具規(guī)避性,因為它們僅在特定模式出現(xiàn)時才會觸發(fā),而整體性能幾乎不受影響.
現(xiàn)有的研究將防御模型中毒方法大致分為2類:一是全局模型的容錯聚合方法;二是通過對本地的局部模型更新檢測識別惡意攻擊者.
全局模型在聚合過程中不進行局部模型更新的驗證,只通過統(tǒng)計方法選擇數(shù)據(jù).修剪平均值(trim mean)[15]為獨立選擇模型的每個參數(shù),計算平均值作為參數(shù)的聚合值.而中值(media)[15]在參數(shù)中獨立選擇中值作為聚合全局模型.Blanchard等人[16]提出Krum方法,在m個局部模型中選擇1個最接近其他模型的局部模型作為全局模型.
防御模型中毒攻擊最直接的方法是在模型聚合之前檢測每個客戶端提交的本地模型參數(shù),可以有效識別惡意客戶端,從而減少模型中毒攻擊對聯(lián)邦學習的負面影響.黃湘洲等人[17]提出了一種基于損失的動態(tài)緩沖可回調(diào)模型投毒防御機制,利用動態(tài)閾值使得攻擊者無法先驗地了解防御機制,并設置緩沖期輪次降低良性客戶端被誤判的風險.而在signSGD方法[18]中,分布式設備僅需要上傳其梯度向量的符號,通過多數(shù)投票的方式聚合符號梯度意味著單個設備沒有太多的權力,對于無目標攻擊者具有魯棒性.
與以往大多數(shù)研究只考慮一種類型的攻擊不同,MUD-HoG方法[19]同時考慮了符號翻轉(zhuǎn)、附加噪聲、單標簽翻轉(zhuǎn)和多標簽翻轉(zhuǎn)攻擊.在模型迭代更新過程中,聯(lián)合使用長短期梯度歷史及距離相似度量對惡意與不可靠客戶端進行了不同的處理,并且可以進一步區(qū)分惡意客戶端中的各類攻擊者.雖然MUD-HoG對各種無目標和目標攻擊是魯棒的,但它仍然可能錯過執(zhí)行高度戰(zhàn)略性目標攻擊的后門攻擊者[20].
本文考慮在MUD-HoG方法上進行拓展和改進,基于本地更新梯度對惡意客戶端進行檢測及防御工作,除了可以防御符號翻轉(zhuǎn)、附加噪聲、單標簽翻轉(zhuǎn)和多標簽翻轉(zhuǎn)攻擊之外,還可防御具有高度戰(zhàn)略性的后門攻擊,并動態(tài)地調(diào)整不可靠客戶端聚合權重.
在理想的情況下,每個客戶端的訓練目的一致,全局參數(shù)往損失最小化的方向移動.但在存在后門攻擊者的訓練中,因為攻擊者和誠實客戶端擁有不同的任務,攻擊者試圖最大限度地更改全局模型的梯度方向以達到對抗的目的,所以這2種類型參與者的聚合參數(shù)至少會在某些維度的指定方向上出現(xiàn)不同.
本文對聯(lián)邦學習中客戶端將梯度上傳到中央服務器后到全局聚合之前的步驟進行優(yōu)化,提出了一種基于本地梯度符號的后門攻擊防御方法.該方法考慮了對客戶端的梯度符號按維度進行投票的方式,意味著沒有單個客戶端會擁有過多的權力;另外,該方法通過設置閾值,使每個維度的符號投票值達到一定數(shù)目才可參與到全局聚合,后門攻擊者對全局模型訓練的不良影響會因此被削弱.
為了將全局模型按照理想的訓練方向移動,對于梯度的每個維度,需要足夠數(shù)量的投票以決定其是否參與聚合.首先,在客戶端完成本地訓練上傳梯度參數(shù)之后,中央服務器對接收到的梯度根據(jù)維度進行逐元素符號相加,第d個維度的逐元素符號相加公式如下:
(3)
隨后,在中央服務器引入閾值θ,對于符號之和小于閾值θ的每個維度,認定其為惡意輸入,聚合權重置0,不參與本輪的全局聚合.
不可靠客戶端在聯(lián)邦學習安全問題中很大程度被忽視,其并非惡意客戶端但存在低質(zhì)量的數(shù)據(jù).在排除各類惡意客戶端之后,剩下的不可靠客戶端梯度與數(shù)據(jù)質(zhì)量較好的誠實客戶端梯度存在一定偏差,由此本文引入客戶端i在最后r輪的短期梯度歷史:

(4)
得到剩下每個客戶端的短期梯度歷史集合后,計算每個客戶端到集合中值的余弦距離:
(5)
根據(jù)d′確定集合中最大間隙的中點dφ,如果客戶端滿足以下條件,則認為其為不可靠客戶端.
(6)
因為此類客戶端可能擁有有價值的訓練數(shù)據(jù),所以在聚合時將其排除并不合適.本文方法將在全局聚合時由中央服務器為來自不可靠客戶端的每個本地梯度以其短梯度歷史與集合中值的余弦距離為依據(jù),動態(tài)地調(diào)整聚合參數(shù):
(7)
如果本地梯度更新的方向與整體中值方向偏離得更多,則其具有較低的聚合權重.隨后,將不可靠客戶端的余弦距離通過歸一化的方式統(tǒng)一量綱,把λi作為該不可靠客戶端在該訓練輪次中梯度的聚合權重:
λi=1-2|sigmoid(γi)-1/2|.
(8)
FedMDD方法基于惡意客戶端在梯度更新上的差異,依據(jù)多種距離指標檢測各客戶端所屬類型,在全局聚合時排除各類惡意客戶端的本地更新,并動態(tài)賦予不可靠客戶端相應的聚合權重.結(jié)合算法1,FedMDD方法的具體流程描述如下:
客戶端在收到初始的全局模型后開始進行本地訓練,在每個輪次中計算出每個客戶端的短期梯度歷史、長期梯度歷史并上傳至服務器,服務器將根據(jù)余弦距離和歐幾里得距離等指標,依次計算檢測出符號翻轉(zhuǎn)攻擊者、附加噪聲攻擊者和標簽翻轉(zhuǎn)攻擊者,并從該輪次訓練所選客戶端集合中排除.
服務器計算剩下客戶端本地梯度中每個維度的符號之和,過濾掉符號之和小于所設閾值的維度,將其權重置0.
服務器以短期梯度歷史與余弦距離為依據(jù),區(qū)分不可靠客戶端和誠實客戶端,并計算其余弦距離的歸一化值作為不可靠客戶端的聚合權重.
將過濾后的客戶端梯度更新按權重聚合為全局模型并再次下發(fā),不斷迭代直到模型收斂.
算法1.FedMDD.
輸入:客戶端數(shù)C、局部批量大小B、本地迭代次數(shù)T、權重α、閾值θ;
輸出:全局模型w.
① 初始化全局模型w0;
② for 每一輪訓練t=1,2,…,Tdo
⑤ fori=1 toCdo

⑦C=C{Ci};/*排除符號翻轉(zhuǎn)攻擊者*/
⑧ end if
⑨ end for
⑩gl,gh←DBSCAN(C);
/* 后門攻擊防御*/
/* 不可靠客戶端檢測*/
/* 全局聚合*/
本文基于Fashion-MNIST和MNIST數(shù)據(jù)集,分別與MUD-HoG,Foolgolds,Median,Fedavg這4種方法進行比較,評估FedMDD方法的性能指標.實驗初始化權重α為1,閾值θ為7.客戶端數(shù)量為40,包含了50%惡意客戶端和10%不可靠客戶端.在200個通信回合、10個本地訓練回合內(nèi)訓練聯(lián)邦學習模型.由于需要積累足夠的梯度歷史,本文方法僅在τ=3輪后觸發(fā),使用l=3的滑動窗口計算短期梯度歷史.
在無目標攻擊中,符號翻轉(zhuǎn)攻擊設定為翻轉(zhuǎn)惡意客戶端的梯度符號,而不更改梯度數(shù)字大小.附加噪聲攻擊設定為將μ=0和σ=0.01的高斯噪聲添加到攻擊者的梯度中.對于不可靠客戶端,實驗采用kernel_size=7,σ=50的高斯平滑模糊局部圖像數(shù)據(jù)集的50%,并隨機選擇30%的本地數(shù)據(jù)集進行訓練模擬低計算能力場景.本文設定動態(tài)參數(shù)α降低不可靠客戶端的聚合權重.
實驗從2方面評估防御方法的有效性,包括不同機制下的模型測試精度以及后門精度.模型測試精度是指全局模型在測試集上的標準準確度.后門精度是對訓練對抗性后門的評價,衡量了后門注入樣本被歸類為攻擊者的目標標簽的數(shù)量.如果一個被后門攻擊的樣本被預測為目標標簽,則認為對該樣本的攻擊是成功的.
在Fashion-MNIST和MNIST數(shù)據(jù)集下實驗分析對比FedMDD,MUD-HoG,Foolgolds,Median,Fedavg這5種方法的性能效果.可以觀察到在具有多種類型攻擊的情況下,FedMDD總是能達到最佳的模型測試精度以及最低的后門精度.
表1和表2所示為Fashion-MNIST數(shù)據(jù)集的訓練結(jié)果,其中,Fedavg為沒有任何防御措施的經(jīng)典聯(lián)邦學習方法,其未考慮參與訓練客戶端的性質(zhì),聚合后的全局模型會受到惡意攻擊者的侵害;Foolgolds和Median方法是專門為一種攻擊而設計的,當同時受到多種攻擊時,模型測試精度都相對較差.而MUD-HoG方法雖然可以達到抵御部分目標和非目標攻擊的效果,但其仍會錯過具有隱蔽性的后門攻擊者.FedMDD方法在符號翻轉(zhuǎn)、附加噪聲、標簽翻轉(zhuǎn)以及后門攻擊下,無論數(shù)據(jù)是以iid還是以non-iid形式存儲都能夠獲得更高的模型測試精度.另外,前4種方法在訓練過程中隨著輪次的增加,后門精度不斷提高,由此看來它們并不能有效地刪除模型中的后門.

表1 Fashion-MNIST數(shù)據(jù)集在iid分布下各方法精度比較 %

表2 Fashion-MNIST數(shù)據(jù)集在non-iid分布下各方法精度比較 %
而FedMDD方法在防御后門攻擊方面明顯優(yōu)于其他方法,在含有20%后門攻擊者的訓練中,后門攻擊率低至8.6%,有效地防御了后門攻擊,在iid和non-iid場景下都同樣適用.
表3和表4中示出在MNIST數(shù)據(jù)集上的性能效果,與在Fashion-MNIST數(shù)據(jù)集中的情況類似,相比其他的防御方法,FedMDD提供了最好的保護,能在抵御后門攻擊的同時,提升模型測試精度,對訓練的影響最小.

表3 MNIST數(shù)據(jù)集在iid分布下各方法精度比較 %

表4 MNIST數(shù)據(jù)集在non-iid分布下各方法精度比較 %
雖然聯(lián)邦學習為機器學習模型的協(xié)作訓練提供了一個隱私保護框架,但其還是很容易受到對抗性攻擊.本文提出了一種針對聯(lián)邦學習的惡意客戶端檢測及防御方法FedMDD,該方法基于客戶端的本地梯度更新發(fā)起對部分非目標、目標攻擊者和不可靠客戶端的檢測,排除惡意更新并利用不可靠客戶端的貢獻,最大限度地提升全局模型的性能.實驗結(jié)果表明,FedMDD對具有符號翻轉(zhuǎn)、附加噪聲、標簽翻轉(zhuǎn)和后門攻擊的惡意客戶端以及不可靠客戶端具有魯棒性,相比4種基線方法都擁有更高的模型測試精度和更低的后門精度.