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