繆昊洋,高譚芮,湯影
(成都理工大學(xué)計(jì)算機(jī)與網(wǎng)絡(luò)安全學(xué)院,四川成都 610000)
聯(lián)邦學(xué)習(xí)是為了解決數(shù)據(jù)孤島問題而提出的[1]。但在聯(lián)邦學(xué)習(xí)中,交換模型參數(shù)或者梯度信息已經(jīng)不再安全[2]。為了更好地保護(hù)聯(lián)邦學(xué)習(xí)的隱私安全,文獻(xiàn)[3]提出了動(dòng)態(tài)模型聚合權(quán)重的聯(lián)邦學(xué)習(xí)框架。文獻(xiàn)[4]結(jié)合區(qū)塊鏈提出了一種去中心化、安全、公平的聯(lián)邦學(xué)習(xí)模型。文獻(xiàn)[5]在差分隱私的基礎(chǔ)上進(jìn)行改進(jìn),保證聯(lián)邦模型訓(xùn)練過程免受推理攻擊的影響。
基于保護(hù)聯(lián)邦學(xué)習(xí)中客戶端數(shù)據(jù)安全的目的,文中提出了一種基于生成模型的聯(lián)邦學(xué)習(xí)算法(FedSGAN)。
聯(lián)邦學(xué)習(xí)是一種機(jī)器學(xué)習(xí)技術(shù),它能夠讓多個(gè)客戶端共同訓(xùn)練一個(gè)模型。但是數(shù)據(jù)是保留在每個(gè)客戶端內(nèi)部的,這樣可以避免將數(shù)據(jù)匯總到單個(gè)機(jī)構(gòu)或者是服務(wù)器上,從而可以很好地保護(hù)數(shù)據(jù)隱私,解決數(shù)據(jù)孤島問題,如圖1 所示。聯(lián)邦學(xué)習(xí)在醫(yī)療、金融等領(lǐng)域廣泛應(yīng)用[6-9]。
圖1 聯(lián)邦學(xué)習(xí)框架
半監(jiān)督生成對(duì)抗模型[10](Semi-supervised Generative Adversarial Network,SGAN)結(jié)合了半監(jiān)督學(xué)習(xí)和生成對(duì)抗模型的優(yōu)點(diǎn),已被廣泛應(yīng)用于圖像生成[11]、文本生成[12]等領(lǐng)域。半監(jiān)督生成對(duì)抗模型結(jié)構(gòu)如圖2 所示。
梯度深度泄露算法(Deep Leakage from Gradient,DLG)的主要原理是利用深度神經(jīng)網(wǎng)絡(luò)從待恢復(fù)圖像的梯度信息中學(xué)習(xí)特征表示。具體而言,該算法通過將待恢復(fù)圖像的梯度信息作為輸入,構(gòu)建深度神經(jīng)網(wǎng)絡(luò)模型,并通過反向傳播算法來更新模型的權(quán)重參數(shù)。在模型訓(xùn)練完成后,該算法可以通過輸入待恢復(fù)圖像的梯度信息,利用已學(xué)習(xí)到的特征表示來進(jìn)行圖像恢復(fù)。
該節(jié)將介紹所提出的基于生成模型的聯(lián)邦學(xué)習(xí)隱私保護(hù)算法——FedSGAN 算法。該算法主要由三個(gè)模塊構(gòu)成,如圖3 所示。
圖3 FedSGAN算法
第一個(gè)模塊是SGAN 模塊。該模塊主要作用于聯(lián)邦學(xué)習(xí)訓(xùn)練的開始階段,初始化噪聲向量z,通過生成器G(z)得到生成的圖片x*,隨后,生成的圖片通過判別器D(x)得到對(duì)應(yīng)的標(biāo)簽y*,最后,生成的圖片和對(duì)應(yīng)的標(biāo)簽組合起來得到偽數(shù)據(jù)集(x*,y*)。
第二個(gè)模塊是訓(xùn)練模塊。從SGAN 模塊中得到偽數(shù)據(jù)集后,通過聯(lián)邦學(xué)習(xí)本地模型進(jìn)行訓(xùn)練,將訓(xùn)練好的模型參數(shù)w傳輸?shù)椒?wù)器進(jìn)行聚合。
第三個(gè)模塊是聚合模塊。服務(wù)器收到客戶端發(fā)來的模型參數(shù)w后,將各個(gè)客戶端的模型參數(shù)進(jìn)行聚合,得到服務(wù)器的模型參數(shù)wG。隨后服務(wù)器分發(fā)給各個(gè)客戶端,進(jìn)行下一輪的訓(xùn)練。
首先,各個(gè)客戶端內(nèi)部利用客戶端本地?cái)?shù)據(jù)集D訓(xùn)練本地的SGAN 網(wǎng)絡(luò)模型。在訓(xùn)練一定輪次后,可以得到生成器G(z)和判別器D(x),其中,z是隨機(jī)初始化的噪聲向量,而x是客戶端本地SGAN 模塊生成的圖片或者本地?cái)?shù)據(jù)集。
隨后,開始聯(lián)邦學(xué)習(xí)訓(xùn)練。在聯(lián)邦學(xué)習(xí)第t個(gè)訓(xùn)練輪次中,每個(gè)被選中的客戶端都會(huì)隨機(jī)初始化噪聲向量zt,zt通過生成器G(zt) 得到偽數(shù)據(jù)集xt*。xt*再通過D(xt*)得到對(duì)應(yīng)的偽標(biāo)簽yt*。此時(shí)的yt*肯定不會(huì)是完全正確的。通常來說,標(biāo)簽不正確定會(huì)影響最后的結(jié)果,但是,文獻(xiàn)[13]提出了一種擾動(dòng)標(biāo)簽的方法,該方法在每一次迭代過程中,將部分標(biāo)簽隨機(jī)替換為錯(cuò)誤標(biāo)簽,可以有效的防止過擬合。所以在算法的這一部分也是同樣的理由,并不需要yt*是完全正確的。
最后,使用得到的(xt*,yt*) 進(jìn)行客戶端本地訓(xùn)練,更新模型參數(shù)wt得到wt+1,并且發(fā)送到服務(wù)器通過聯(lián)邦平均(Federated Averaging,F(xiàn)edAvg)算法進(jìn)行聚合,然后服務(wù)器端將聚合后的模型參數(shù)分發(fā)到各個(gè)客戶端,進(jìn)行下一輪次的訓(xùn)練。
FedSGAN 算法如算法1 所示。
算法1.FedSGAN 算法
輸入:客戶端數(shù)量N,客戶端編號(hào)i=1,2,…,N,客戶端本地?cái)?shù)據(jù)集Dk,聯(lián)邦學(xué)習(xí)迭代次數(shù)T,初始化模型參數(shù)w0。
輸出:模型參數(shù)wT
實(shí)驗(yàn)使用DermaMNIST 來模擬現(xiàn)實(shí)中的聯(lián)邦學(xué)習(xí)醫(yī)療圖像分類場(chǎng)景[14]。該數(shù)據(jù)集是在HAM10000數(shù)據(jù)集的基礎(chǔ)上改進(jìn)而來。HAM10000 是常見色素性皮膚病變的大量多源皮膚鏡圖像集合[15]。
DermaMNIST 數(shù)據(jù)集由10 015 張皮膚鏡圖像組成,這些圖像被分類為七種不同的疾病,被公式化為多類別分類任務(wù)。在實(shí)驗(yàn)中將圖像分成訓(xùn)練集和測(cè)試集,比例為8∶2,其中,訓(xùn)練集8 010 張,測(cè)試集2 005 張。該數(shù)據(jù)集中每張圖像大小為3×28×28。DermaMNIST 的各標(biāo)簽數(shù)量如表1 所示。
表1 DermaMNIST上各標(biāo)簽數(shù)量
在實(shí)驗(yàn)中,設(shè)置了10 個(gè)客戶端,一個(gè)服務(wù)器。將大小為8 010 張圖片的訓(xùn)練集隨機(jī)分配到10 個(gè)客戶端中,每個(gè)客戶端本地訓(xùn)練集大小為801。需要注意的是,由于DermaMNIST 數(shù)據(jù)集各個(gè)標(biāo)簽數(shù)量并不平衡,所以對(duì)于數(shù)據(jù)的劃分使用的是非獨(dú)立同分布。
在訓(xùn)練過程中使用Adam 作為優(yōu)化器,使用交叉熵作為損失函數(shù),每批次大小為64,訓(xùn)練輪次為100,學(xué)習(xí)率為0.01,網(wǎng)絡(luò)結(jié)構(gòu)選用的是三層全連接,中間一層的神經(jīng)元個(gè)數(shù)為50。
為了評(píng)估生成的圖片與原圖片之間的差異性,引入均方誤差(Mean Squared Error,MSE)、峰值信噪比[16](Peak Signal-to-Noise Ratio,PSNR)、結(jié)構(gòu)相似性[17](Structural Similarity,SSIM)這三種評(píng)價(jià)指標(biāo)。
在實(shí)驗(yàn)結(jié)果中,如果MSE 的值越小,PSNR 的值越大(超過30 dB),SSIM 的值越接近1(取值為[0,1]),那么兩幅圖片越相似。
在實(shí)驗(yàn)開始階段,首先訓(xùn)練客戶端本地SGAN模塊。訓(xùn)練完成后,得到每個(gè)客戶端SGAN 模塊中判別器的準(zhǔn)確率,實(shí)驗(yàn)結(jié)果如表2 所示。
在完成對(duì)客戶端SGAN 訓(xùn)練后,每個(gè)客戶端不再使用本地?cái)?shù)據(jù)集,而是在聯(lián)邦學(xué)習(xí)訓(xùn)練的每一個(gè)輪次中隨機(jī)生成噪聲向量z。噪聲向量z通過SGAN 中的生成器生成偽本地?cái)?shù)據(jù)x*,x*再通過SGAN 中的判別器得到對(duì)應(yīng)的標(biāo)簽y*。(x*,y*)通過客戶端本地網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行聯(lián)邦學(xué)習(xí)訓(xùn)練。實(shí)驗(yàn)結(jié)果如表3所示。
表3 DermaMNIST上的準(zhǔn)確率
根據(jù)在DermaMNIST 數(shù)據(jù)集上的準(zhǔn)確率來看,F(xiàn)edSGAN 與FedAvg 兩種算法之間僅僅相差0.02%。接下來,討論兩種算法中客戶端數(shù)據(jù)的隱私安全性。為了更好地驗(yàn)證實(shí)驗(yàn)結(jié)果,使用DLG 算法對(duì)上述兩個(gè)算法的客戶端進(jìn)行攻擊,如圖4 所示。
圖4 DLG算法對(duì)客戶端進(jìn)行攻擊
在圖4中,第一列是客戶端訓(xùn)練使用的圖像,前兩行使用的是FedAvg算法,即Derma MNIST中真實(shí)的圖像,第一列第三行則是由SGAN 進(jìn)行生成的偽數(shù)據(jù)??梢钥吹疆?dāng)DLG 算法迭代到150 輪的時(shí)候,得到的圖片就是客戶端訓(xùn)練使用的圖片。
而由于FedSGAN 算法中客戶端使用的是偽數(shù)據(jù)集x*,所以為了驗(yàn)證偽數(shù)據(jù)集x*與原數(shù)據(jù)集x的差異性,使用MSE、PSNR、SSIM 三種評(píng)價(jià)指標(biāo)對(duì)生成的數(shù)據(jù)與原DermaMNIST 數(shù)據(jù)集進(jìn)行評(píng)估,得到的實(shí)驗(yàn)結(jié)果如表4 所示。
表4 對(duì)圖像進(jìn)行評(píng)估
根據(jù)MSE、PSNR、SSIM 等評(píng)價(jià)指標(biāo)計(jì)算的數(shù)據(jù)可以知道,利用SGAN 生成的偽數(shù)據(jù)x*與原數(shù)據(jù)集x完全不同。所以,F(xiàn)edSGAN 算法即使被DLG 算法攻擊導(dǎo)致泄露x*,也依然可以保證原數(shù)據(jù)集x的隱私安全。
基于保護(hù)客戶端數(shù)據(jù)安全的目的,提出了一種基于生成模型的聯(lián)邦學(xué)習(xí)隱私保護(hù)算法FedSGAN,在DermaMNIST 上進(jìn)行了仿真實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,F(xiàn)edSGAN 與聯(lián)邦學(xué)習(xí)經(jīng)典算法FedAvg 在DermaMNIST 上的準(zhǔn)確率僅僅相差0.02%。在此基礎(chǔ)上使用DLG 算法對(duì)兩種算法的隱私安全性進(jìn)行驗(yàn)證。FedAvg 和FedSGAN 算法都能夠被DLG 恢復(fù)客戶端數(shù)據(jù),但是由于FedSGAN 訓(xùn)練使用的是生成的偽數(shù)據(jù)集,根據(jù)MSE、PSNR、SSIM 等評(píng)價(jià)指標(biāo)可知,F(xiàn)edSGAN 可以在保證分類準(zhǔn)確率的基礎(chǔ)上有效保護(hù)原有數(shù)據(jù)集的隱私安全。