張海超,賴金山,劉 東,張鳳荔
(1.四川公安廳科技信息化總隊,四川 成都 610015;2.電子科技大學(xué) 信息與軟件工程學(xué)院,四川 成都 610054;3.電子科技大學(xué) 計算機(jī)科學(xué)與工程學(xué)院,四川 成都 611731)
物聯(lián)網(wǎng)時代,智能終端產(chǎn)生的大量數(shù)據(jù)促進(jìn)了機(jī)器學(xué)習(xí)的高速發(fā)展。由于連接設(shè)備數(shù)和產(chǎn)生的數(shù)據(jù)量都呈現(xiàn)指數(shù)級增長,傳統(tǒng)的云計算模式已經(jīng)不能跟上物聯(lián)網(wǎng)時代的腳步,邊緣計算模式[1]的出現(xiàn)使得分布式機(jī)器學(xué)習(xí)成為可能。同時,谷歌提出的聯(lián)邦學(xué)習(xí)[2]不僅完美地契合邊緣計算模式,還能將數(shù)據(jù)保留在終端設(shè)備上[3],降低數(shù)據(jù)泄露的風(fēng)險,很好地解決了數(shù)據(jù)孤島問題[4]。此外,終端設(shè)備算力和內(nèi)存的提升也使得模型訓(xùn)練成為了可能。針對不同的領(lǐng)域,終端設(shè)備使用不同的數(shù)據(jù)集訓(xùn)練一個好的神經(jīng)網(wǎng)絡(luò)模型,能夠高效地解決各個領(lǐng)域的決策和分類等問題[5]。但是,隨著梯度泄露攻擊[6]、中間人攻擊[7]和共謀攻擊[8]等攻擊手段的興起以及參與訓(xùn)練的終端設(shè)備的不可信,使得攻擊者可以通過模型梯度推演出本地數(shù)據(jù)集,導(dǎo)致各個終端設(shè)備不愿將本地訓(xùn)練結(jié)果上傳給邊緣服務(wù)器。同時邊緣服務(wù)器到云端的數(shù)據(jù)傳輸通過核心網(wǎng),傳輸過程中可能遭遇不同的攻擊。此外,經(jīng)典的FedAvg[9]模型聚合方法存在通信時延高的問題。為了解決通信時延問題,王等人[10]提出將模型訓(xùn)練任務(wù)卸載到邊緣服務(wù)器上,將訓(xùn)練數(shù)據(jù)集從終端上傳到邊緣服務(wù)器,在邊緣服務(wù)器上進(jìn)行模型訓(xùn)練,減少終端設(shè)備和邊緣服務(wù)器之間的通信次數(shù),減少通信時間。但是數(shù)據(jù)從終端設(shè)備上傳到邊緣服務(wù)器的過程中容易遭到隱私泄露。
為了解決隱私泄露問題,文獻(xiàn)[11]提出了分層聯(lián)邦學(xué)習(xí)同態(tài)加密方法,對本地數(shù)據(jù)集進(jìn)行同態(tài)加密后再進(jìn)行神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練,但是對本地大量的數(shù)據(jù)集進(jìn)行同態(tài)加密需要耗費大量的時間和空間,這并不適用于邊緣計算下實時性的場景。文獻(xiàn)[12]提出了使用多方安全計算來保證數(shù)據(jù)安全,但是攻擊者可以通過獲得密鑰來獲得數(shù)據(jù)或梯度,同時多方安全計算不適用于分布式場景。文獻(xiàn)[13]提出了差分隱私方案,對模型梯度添加噪聲或者在本地對數(shù)據(jù)添加噪聲。為了平衡安全和精度,文獻(xiàn)[14]提出了一種自適應(yīng)的差分隱私方案,通過對梯度進(jìn)行自適應(yīng)裁剪來提高精度,同時還可以降低吞吐量,減少時延。文獻(xiàn)[15]提出利用網(wǎng)絡(luò)不同層敏感度來進(jìn)行模型壓縮,解決權(quán)重參數(shù)冗余的問題,以達(dá)到模型訓(xùn)練效率和模型復(fù)雜度之間的平衡。文獻(xiàn)[16]提出使用參數(shù)稀疏化來傳輸與掩碼相與之后不為0的參數(shù),能防止模型參數(shù)泄露。
以上方法雖然能夠在一定程度上保護(hù)用戶隱私,但是應(yīng)用在邊緣計算場景下的聯(lián)邦學(xué)習(xí)需要耗費大量的通信成本,同時面臨各種攻擊手段。為此,該文提出了一種邊緣計算下的輕量級聯(lián)邦學(xué)習(xí)隱私保護(hù)方案(Lightweight Federated Learning Privacy Protection Scheme Under Edge Computing,LFLPP),使用加性同態(tài)加密來保護(hù)在云服務(wù)器和邊緣服務(wù)器上的模型參數(shù)。所有模型參數(shù)都被加密并存儲在云服務(wù)器和邊緣服務(wù)器上,該方案有以下貢獻(xiàn):
(1)提出了一種云-邊-端分層的聯(lián)邦學(xué)習(xí)架構(gòu):在云-邊-端分層架構(gòu)中,不同的終端設(shè)備負(fù)責(zé)進(jìn)行模型訓(xùn)練,而邊緣服務(wù)器和云服務(wù)器進(jìn)行模型參數(shù)聚合。
(2)提出了一種基于差分隱私和同態(tài)加密的兩層隱私保護(hù)方案:在終端設(shè)備訓(xùn)練得到模型參數(shù)后,對其進(jìn)行差分?jǐn)_動,再上傳給邊緣服務(wù)器,邊緣服務(wù)器迭代訓(xùn)練得到模型參數(shù)后,對模型參數(shù)進(jìn)行同態(tài)加密后傳輸?shù)皆品?wù)器進(jìn)行聚合,保證參數(shù)在傳輸過程中的安全。
(3)提出了一種本地和邊緣服務(wù)器端多次迭代更新的策略:在終端設(shè)備上設(shè)置訓(xùn)練輪數(shù)閾值,當(dāng)更新次數(shù)達(dá)到閾值,將本地模型上傳到邊緣服務(wù)器,同時在邊緣服務(wù)器設(shè)置另一個閾值,當(dāng)訓(xùn)練次數(shù)達(dá)到閾值時,將模型參數(shù)上傳到云服務(wù)器進(jìn)行聚合更新。
基于此,邊緣計算下的輕量級聯(lián)邦學(xué)習(xí)隱私保護(hù)方案能夠高效率地進(jìn)行模型訓(xùn)練,同時實現(xiàn)不同層之間的數(shù)據(jù)隱私保護(hù)。
所提出的架構(gòu)分為云邊端三層,一共有 3個實體,分別是:(1)終端設(shè)備:負(fù)責(zé)數(shù)據(jù)采集和預(yù)處理,從邊緣服務(wù)器獲取模型框架,在本地對神經(jīng)網(wǎng)絡(luò)模型進(jìn)行周期性訓(xùn)練,并對模型參數(shù)進(jìn)行微分?jǐn)_動;(2)邊緣服務(wù)器:從云端獲取將需要訓(xùn)練的模型框架發(fā)送給參與訓(xùn)練的終端設(shè)備,對終端設(shè)備上傳的模型參數(shù)進(jìn)行聚合,對聚合后的模型參數(shù)進(jìn)行同態(tài)加密后上傳到中央云服務(wù)器進(jìn)行聚合;(3)中央云服務(wù)器(Central Cloud Server,CS):聚合各個邊緣服務(wù)器上傳的本地模型參數(shù),并將聚合后的全局模型參數(shù)發(fā)送到邊緣服務(wù)器,為下一輪訓(xùn)練更新模型參數(shù)??傮w框架如圖1所示,相關(guān)實體參數(shù)如表1所示。
表1 相關(guān)參數(shù)
圖1 邊緣計算下的聯(lián)邦學(xué)習(xí)架構(gòu)
該方案旨在保證模型精度和訓(xùn)練效率的前提下,對數(shù)據(jù)集和模型參數(shù)進(jìn)行隱私保護(hù)。在對方案進(jìn)行評測時,相關(guān)定義如下:
差分隱私:給定一個數(shù)據(jù)集D和相鄰數(shù)據(jù)集D',對于查詢函數(shù)f,如果滿足以下式子,則f滿足差分隱私:
Pr[f(D)∈R]≤exp()*Pr[f(D)∈R]+δ
(1)
拉普拉斯機(jī)制:給定一個數(shù)據(jù)集D和查詢函數(shù)f,則提供差分隱私的機(jī)制M滿足:
(2)
其中,Δf代表全局敏感度,計算公式如下:
Δf=max‖f(D)-f(D')‖
(3)
代表相鄰兩個數(shù)據(jù)集查詢結(jié)果差值的1范數(shù)的最大值。
加法同態(tài)性質(zhì):對于任意明文m1,m2和隨機(jī)數(shù)r1,r2,對應(yīng)密c1=E[m1,r1],c2=E[m2,r2],滿足:
c1*c2=E[m1,r1]*E[m2,r2]=
gm1+m2*(r1*r2)nmodn2
(4)
在本方案中,將傳統(tǒng)的兩層聯(lián)邦學(xué)習(xí)應(yīng)用到邊緣計算場景下,形成了云-邊-端三層聯(lián)邦學(xué)習(xí)架構(gòu)。首先,終端設(shè)備使用本地數(shù)據(jù)集進(jìn)行本地模型訓(xùn)練,同時使用周期性策略進(jìn)行更新。同樣,模型迭代聚合后,邊緣服務(wù)器將模型參數(shù)同態(tài)加密后上傳到中心云服務(wù)器,用于聚合后更新,再進(jìn)行下一輪模型訓(xùn)練,系統(tǒng)整體框架如圖2所示,周期性更新策略如圖3所示。
圖2 邊緣計算下的聯(lián)邦學(xué)習(xí)架構(gòu)
圖3 模型更新策略
其中,參數(shù)更新部分箭頭表示在終端設(shè)備上進(jìn)行模型參數(shù)更新,參數(shù)聚合部分箭頭表示在邊緣服務(wù)器將終端設(shè)備上傳的模型參數(shù)進(jìn)行聚合,聚合更新部分箭頭表示迭代到一定次數(shù)之后,云服務(wù)器收集來自邊緣服務(wù)器的模型參數(shù)并聚合更新,完成這一輪的訓(xùn)練??梢钥吹?針對不同算力和數(shù)據(jù)集的終端設(shè)備,在每一輪的模型更新次數(shù)是不同的,極大地避免了同步聯(lián)邦學(xué)習(xí)造成的資源浪費。
設(shè)終端設(shè)備di擁有數(shù)據(jù)集Di,包括數(shù)據(jù)Xi和標(biāo)簽Ti,將數(shù)據(jù)集按照7∶3的比例劃分為訓(xùn)練集Dtrain和測試集Dtest,然后將訓(xùn)練集作為神經(jīng)網(wǎng)絡(luò)模型的輸入進(jìn)行模型訓(xùn)練。設(shè)模型的輸出為Y,則:
Y=f(Xi)
(5)
對比Y和Ti,計算出準(zhǔn)確率和損失值。在每一輪訓(xùn)練完成之后,將測試數(shù)據(jù)集輸入到神經(jīng)網(wǎng)絡(luò)中,計算準(zhǔn)確率和損失值,當(dāng)達(dá)到本地訓(xùn)練輪數(shù)的閾值時,將模型參數(shù)進(jìn)行差分?jǐn)_動并上傳給邊緣服務(wù)器。
本地梯度計算公式如下:
(6)
對模型梯度進(jìn)行裁剪,裁剪公式如下:
(7)
在得到第k次訓(xùn)練的模型梯度后,判斷k是否小于k1,若k小于閾值k1,則在本地對模型參數(shù)進(jìn)行更新,更新公式如下:
(8)
(9)
其中,Dk表示第k次訓(xùn)練時劃分的訓(xùn)練數(shù)據(jù)集,令隱私預(yù)算噪聲添加如下:
(10)
圖4 本地差分隱私模型
密鑰管理中心(KMC)收到來自邊緣服務(wù)器的請求之后,創(chuàng)建密鑰對并分發(fā)給邊緣服務(wù)器,密鑰生成采用滿足加法同態(tài)的Paillier[17]算法,密鑰生成與分配算法如算法1所示。
算法1:密鑰生成與分配算法
輸入:邊緣服務(wù)器集合E
ForjinE:
1. 隨機(jī)選取大素數(shù)p和q且滿足p*q和(p-1)*(q-1)的最大公因數(shù)為1;
2. 令p*q為n,(p-1)和(q-1)的最小公倍數(shù)為λ;
3. 隨機(jī)選取G且滿足G的階(modn2)為n的倍數(shù)生成公私鑰對,公鑰為(n,g),私鑰為λ;
4. 將公私鑰對發(fā)送給邊緣服務(wù)器j。
為了安全考慮,使用同態(tài)加密算法加密上傳的參數(shù)來達(dá)到保護(hù)隱私數(shù)據(jù)的目的,模型更新公式如下,其中E表示同態(tài)加密,t表示訓(xùn)練輪數(shù),e表示邊緣服務(wù)器的數(shù)量,d表示終端設(shè)備的數(shù)量。
(11)
算法2:模型參數(shù)加解密算法
輸入:模型參數(shù)ωt
1. 使用random()生成隨機(jī)向量r
2. 計算密文
c=E(ωt,r)=gωtrnmodn2
4. 解密
在本節(jié)中,對LFLPP方案進(jìn)行實驗驗證。利用筆記本電腦作為終端設(shè)備,PC機(jī)作為邊緣服務(wù)器進(jìn)行仿真實驗。分別就模型準(zhǔn)確率、模型收斂效率和模型安全性進(jìn)行實驗驗證。
使用Python語言進(jìn)行仿真實驗,分別使用乳腺癌腫瘤數(shù)據(jù)集[18]和CIFAR10[19]數(shù)據(jù)集在LR模型和Resnet18[20]殘差模型上進(jìn)行訓(xùn)練和測試,同時使用CIFAR10數(shù)據(jù)集與FedAvg和PPFLEC[10](Privacy-Preserving Federated Learning for Internet of Medical Things under Edge Computing)兩種方案進(jìn)行對比實驗,得出準(zhǔn)確率和訓(xùn)練效率的差距。其中PPFLEC是一種在三層聯(lián)邦學(xué)習(xí)架構(gòu)下進(jìn)行掩碼添加的隱私保護(hù)方案。
本次實驗中使用了兩個有代表性的數(shù)據(jù)集(良/惡性乳腺癌腫瘤數(shù)據(jù)集和CIFAR-10數(shù)據(jù)集)進(jìn)行實驗。
良/惡性乳腺癌腫瘤數(shù)據(jù)集是將病人數(shù)據(jù)格式化之后的帶標(biāo)簽的數(shù)據(jù)集,該數(shù)據(jù)集將腫瘤細(xì)胞分為兩類:良性腫瘤和惡性腫瘤,根據(jù)腫瘤細(xì)胞的外觀特征以及細(xì)胞核的特征來劃分。該數(shù)據(jù)集收集了699條病人樣本,共11列數(shù)據(jù)。每一輪訓(xùn)練時隨機(jī)選擇500條作為訓(xùn)練數(shù)據(jù),199條作為測試數(shù)據(jù)。
CIFAR-10數(shù)據(jù)集是一個包含60 000張圖片的數(shù)據(jù)集。其中每張照片為32*32的彩色照片,每個像素點包括RGB三個數(shù)值,數(shù)值范圍為0~255。所有照片分屬10個不同的類別,分別是‘a(chǎn)irplane’‘a(chǎn)utomobile’‘bird’‘cat’‘deer’‘dog’‘frog’‘horse’‘ship’‘truck’。每一輪訓(xùn)練時隨機(jī)選擇50 000條作為訓(xùn)練數(shù)據(jù),10 000條作為測試數(shù)據(jù)。
通過自定義正類和負(fù)類,通過與基本事實進(jìn)行比較,可以獲得表2,從而計算準(zhǔn)確率。
準(zhǔn)確率定義:
accuracy=(TP+TN)/(TP+FT+FN+TN)*100%
損失值定義:
首先使用乳腺癌腫瘤數(shù)據(jù)集進(jìn)行實驗,采用邏輯回歸模型輸出結(jié)果,得到的準(zhǔn)確率如圖5所示。
圖5 乳腺癌數(shù)據(jù)集準(zhǔn)確率
從圖5可以看出,訓(xùn)練一開始LFLPP可以達(dá)到75%的準(zhǔn)確率,隨后快速提升,在第10輪達(dá)到90%左右并在第10輪到第20輪緩慢增加,在第25輪左右達(dá)到收斂,收斂時能達(dá)到95%的準(zhǔn)確率。該實驗結(jié)果表明LFLPP能夠很好地應(yīng)用于醫(yī)療領(lǐng)域,用于病情診斷,這將大大減少醫(yī)療誤診,同時緩解醫(yī)療專家不足帶來的壓力。
為了驗證LFLPP在影像識別領(lǐng)域的精度,使用CIFAR10數(shù)據(jù)集進(jìn)行實驗測試,為了使結(jié)果具有參考性,使用經(jīng)典的聯(lián)邦聚合方法FedAvg和隱私保護(hù)方案PPFLEC進(jìn)行對比,得到的準(zhǔn)確率對比如圖6所示,損失值對比如圖7所示。
圖6 三種方案在CIFAR10數(shù)據(jù)集上的準(zhǔn)確率對比
圖7 三種方案在CIFAR10數(shù)據(jù)集上的損失值對比
從圖6可以看到,FedAvg作為經(jīng)典的聯(lián)邦平均聚合方案,收斂時能達(dá)到85%的準(zhǔn)確率,LFLPP在收斂時能達(dá)到84.63%的準(zhǔn)確率,而PPFLEC在收斂時的準(zhǔn)確率為82.95%。具體來說,LFLPP由于在終端設(shè)備上添加了噪聲,會在一定程度上影響模型精度,但是在殘差網(wǎng)絡(luò)Resnet18中仍能達(dá)到不錯的準(zhǔn)確率,略低于FedAvg,明顯高于PPFLEC。訓(xùn)練開始時,由于噪聲的存在,LFLPP的準(zhǔn)確率只有20%左右,經(jīng)過10輪左右的訓(xùn)練,準(zhǔn)確率能達(dá)到75%左右,隨后緩慢提升,從圖6中可以看到,LFLPP的穩(wěn)定性明顯高于PPFLEC,與FedAvg大致持平,這是由于隨著訓(xùn)練輪數(shù)的增加,模型參數(shù)趨于穩(wěn)定,噪聲對其的影響減弱。
從圖7也開始看出,訓(xùn)練開始的前幾輪,LFLPP的損失值高達(dá)4,經(jīng)過10輪左右的訓(xùn)練,損失值降低到1以下,在訓(xùn)練輪數(shù)達(dá)到30時,LFLPP的損失值趨于平穩(wěn),為0.48左右,與FedAvg大致相同,而PPFLEC在近50輪時才接近平穩(wěn),同時高于FedAvg和LFLPP。由此可以看出,LFLPP在保護(hù)隱私的同時對于圖像識別也能達(dá)到不錯的準(zhǔn)確率。
為了測試LFLPP的效率,同樣對比了FedAvg和PPFLEC,在同一設(shè)備上進(jìn)行不同方案的訓(xùn)練,訓(xùn)練時間對比如表3所示。
表3 三種方案訓(xùn)練時間對比
從表3可以看到,LFLPP的模型訓(xùn)練時間高于FedAvg,但低于PPFLEC,相較于FedAvg,LFLPP需要對模型參數(shù)進(jìn)行噪聲添加以及同態(tài)加解密操作,這會導(dǎo)致訓(xùn)練時間的增加,但是輕量級的LFLPP在模型收斂時所用時間與FedAvg相差不大,遠(yuǎn)低于PPFLEC。這說明LFLPP可以適用于需要隱私保護(hù)的實時場景下。為了驗證這一結(jié)論的普遍性,在50個不同的終端設(shè)備上進(jìn)行了實驗,得到每一輪訓(xùn)練所需的時間分布如圖8所示。
從圖8可以看到,針對不同的終端設(shè)備,訓(xùn)練時間分布在442秒到452秒之間,且集中分布在446秒到448秒之間,說明LFLPP在訓(xùn)練時間上具有一定的穩(wěn)定性,如果使用GPU對圖像進(jìn)行計算,訓(xùn)練時間可以縮短至1/20,可見LFLPP可以適配于不同的終端設(shè)備,滿足邊緣計算下實時場景的需求。
在本節(jié)中,主要對隱私保護(hù)方案進(jìn)行理論上的分析,通過給出隱私證明以及分析其相關(guān)流程,可以得出該隱私保護(hù)方案能夠很好地保護(hù)數(shù)據(jù)和模型。
本節(jié)分別就LFLPP的安全性方面進(jìn)行理論分析,主要就數(shù)據(jù)的隱私性和抵抗攻擊的能力進(jìn)行分析。
參與訓(xùn)練的終端設(shè)備在本地進(jìn)行模型訓(xùn)練,然后將參數(shù)進(jìn)行差分?jǐn)_動后發(fā)送給邊緣服務(wù)器;之后,邊緣服務(wù)器在聚合完成后將參數(shù)進(jìn)行同態(tài)加密后再發(fā)送給云服務(wù)器。在整個過程中,終端設(shè)備不必將數(shù)據(jù)集發(fā)送給任何實體,保護(hù)了用戶數(shù)據(jù)的隱私性?;诶绽沟牟罘蛛[私機(jī)制證明如下:
(12)
(13)
由于成員推理攻擊的威脅,以純文本傳輸梯度數(shù)據(jù)可能被惡意用戶利用來訓(xùn)練他自己的陰影模型。其他終端設(shè)備的隱私相關(guān)數(shù)據(jù)安全將受到侵犯。為了抵抗梯度泄露攻擊和共謀攻擊,在對模型參數(shù)進(jìn)行差分?jǐn)_動后再進(jìn)行傳輸。此外,在邊緣服務(wù)器中進(jìn)行同態(tài)運算,即使中心云服務(wù)器存在安全漏洞,也能保證加密后的模型參數(shù)不會泄露。在邊緣服務(wù)器與密鑰管理中心的交互中,密鑰管理中心只負(fù)責(zé)密鑰生成,不請求訪問任何模型參數(shù),對于密鑰管理中心來說,它甚至不知道邊緣服務(wù)器使用密鑰的維數(shù),因此無法與其他方進(jìn)行共謀攻擊來竊取模型參數(shù)。
為了驗證LFLPP的隱私保護(hù)效果,使用梯度泄露攻擊[6]進(jìn)行仿真測試,同時對LFLPP和FedAvg進(jìn)行梯度泄露攻擊,使用CIFAR10圖片的變化作為對比,如圖9和圖10所示。
圖9 梯度泄露
圖10 梯度未泄露
在針對FedAvg的梯度泄露攻擊中,攻擊者首先使用虛假數(shù)據(jù)和標(biāo)簽來參與神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,并且通過訓(xùn)練所得梯度來推斷真實訓(xùn)練數(shù)據(jù)集。對于一個N維的梯度向量,攻擊者至多需要N+1次參與就可以推斷出真實數(shù)據(jù)。從圖9可以看出,當(dāng)?shù)螖?shù)增加時,圖像的特征向量被推斷出來,圖像也逐漸被還原出來。而在LFLPP中,如圖10所示,由于差分隱私和同態(tài)加密機(jī)制,導(dǎo)致攻擊者得到的梯度是被加密或者被添加了噪聲的,無法由梯度得到原始圖像。由此可見,LFLPP可以很好地抵抗梯度泄露攻擊,保護(hù)用戶數(shù)據(jù)的隱私。
在提出分層聯(lián)邦學(xué)習(xí)架構(gòu)的基礎(chǔ)上,針對每一層設(shè)計不同的隱私保護(hù)方法,并在不同的數(shù)據(jù)集上取得了不錯精度,能夠適配智慧醫(yī)療等各種適合應(yīng)用邊緣計算的場景。未來將考慮使用邊緣服務(wù)器將本地模型進(jìn)行遷移來實現(xiàn)不同終端設(shè)備之間互相學(xué)習(xí),以提高模型的準(zhǔn)確率。