繆昊洋,高譚芮,湯影
(成都理工大學計算機與網絡安全學院,四川成都 610000)
聯邦學習是為了解決數據孤島問題而提出的[1]。但在聯邦學習中,交換模型參數或者梯度信息已經不再安全[2]。為了更好地保護聯邦學習的隱私安全,文獻[3]提出了動態模型聚合權重的聯邦學習框架。文獻[4]結合區塊鏈提出了一種去中心化、安全、公平的聯邦學習模型。文獻[5]在差分隱私的基礎上進行改進,保證聯邦模型訓練過程免受推理攻擊的影響。
基于保護聯邦學習中客戶端數據安全的目的,文中提出了一種基于生成模型的聯邦學習算法(FedSGAN)。
聯邦學習是一種機器學習技術,它能夠讓多個客戶端共同訓練一個模型。但是數據是保留在每個客戶端內部的,這樣可以避免將數據匯總到單個機構或者是服務器上,從而可以很好地保護數據隱私,解決數據孤島問題,如圖1 所示。聯邦學習在醫療、金融等領域廣泛應用[6-9]。

圖1 聯邦學習框架
半監督生成對抗模型[10](Semi-supervised Generative Adversarial Network,SGAN)結合了半監督學習和生成對抗模型的優點,已被廣泛應用于圖像生成[11]、文本生成[12]等領域。半監督生成對抗模型結構如圖2 所示。
梯度深度泄露算法(Deep Leakage from Gradient,DLG)的主要原理是利用深度神經網絡從待恢復圖像的梯度信息中學習特征表示。具體而言,該算法通過將待恢復圖像的梯度信息作為輸入,構建深度神經網絡模型,并通過反向傳播算法來更新模型的權重參數。在模型訓練完成后,該算法可以通過輸入待恢復圖像的梯度信息,利用已學習到的特征表示來進行圖像恢復。
該節將介紹所提出的基于生成模型的聯邦學習隱私保護算法——FedSGAN 算法。該算法主要由三個模塊構成,如圖3 所示。

圖3 FedSGAN算法
第一個模塊是SGAN 模塊。該模塊主要作用于聯邦學習訓練的開始階段,初始化噪聲向量z,通過生成器G(z)得到生成的圖片x*,隨后,生成的圖片通過判別器D(x)得到對應的標簽y*,最后,生成的圖片和對應的標簽組合起來得到偽數據集(x*,y*)。
第二個模塊是訓練模塊。從SGAN 模塊中得到偽數據集后,通過聯邦學習本地模型進行訓練,將訓練好的模型參數w傳輸到服務器進行聚合。
第三個模塊是聚合模塊。服務器收到客戶端發來的模型參數w后,將各個客戶端的模型參數進行聚合,得到服務器的模型參數wG。隨后服務器分發給各個客戶端,進行下一輪的訓練。
首先,各個客戶端內部利用客戶端本地數據集D訓練本地的SGAN 網絡模型。在訓練一定輪次后,可以得到生成器G(z)和判別器D(x),其中,z是隨機初始化的噪聲向量,而x是客戶端本地SGAN 模塊生成的圖片或者本地數據集。
隨后,開始聯邦學習訓練。在聯邦學習第t個訓練輪次中,每個被選中的客戶端都會隨機初始化噪聲向量zt,zt通過生成器G(zt) 得到偽數據集xt*。xt*再通過D(xt*)得到對應的偽標簽yt*。此時的yt*肯定不會是完全正確的。通常來說,標簽不正確定會影響最后的結果,但是,文獻[13]提出了一種擾動標簽的方法,該方法在每一次迭代過程中,將部分標簽隨機替換為錯誤標簽,可以有效的防止過擬合。所以在算法的這一部分也是同樣的理由,并不需要yt*是完全正確的。
最后,使用得到的(xt*,yt*) 進行客戶端本地訓練,更新模型參數wt得到wt+1,并且發送到服務器通過聯邦平均(Federated Averaging,FedAvg)算法進行聚合,然后服務器端將聚合后的模型參數分發到各個客戶端,進行下一輪次的訓練。
FedSGAN 算法如算法1 所示。
算法1.FedSGAN 算法
輸入:客戶端數量N,客戶端編號i=1,2,…,N,客戶端本地數據集Dk,聯邦學習迭代次數T,初始化模型參數w0。
輸出:模型參數wT
實驗使用DermaMNIST 來模擬現實中的聯邦學習醫療圖像分類場景[14]。該數據集是在HAM10000數據集的基礎上改進而來。HAM10000 是常見色素性皮膚病變的大量多源皮膚鏡圖像集合[15]。
DermaMNIST 數據集由10 015 張皮膚鏡圖像組成,這些圖像被分類為七種不同的疾病,被公式化為多類別分類任務。在實驗中將圖像分成訓練集和測試集,比例為8∶2,其中,訓練集8 010 張,測試集2 005 張。該數據集中每張圖像大小為3×28×28。DermaMNIST 的各標簽數量如表1 所示。

表1 DermaMNIST上各標簽數量
在實驗中,設置了10 個客戶端,一個服務器。將大小為8 010 張圖片的訓練集隨機分配到10 個客戶端中,每個客戶端本地訓練集大小為801。需要注意的是,由于DermaMNIST 數據集各個標簽數量并不平衡,所以對于數據的劃分使用的是非獨立同分布。
在訓練過程中使用Adam 作為優化器,使用交叉熵作為損失函數,每批次大小為64,訓練輪次為100,學習率為0.01,網絡結構選用的是三層全連接,中間一層的神經元個數為50。
為了評估生成的圖片與原圖片之間的差異性,引入均方誤差(Mean Squared Error,MSE)、峰值信噪比[16](Peak Signal-to-Noise Ratio,PSNR)、結構相似性[17](Structural Similarity,SSIM)這三種評價指標。
在實驗結果中,如果MSE 的值越小,PSNR 的值越大(超過30 dB),SSIM 的值越接近1(取值為[0,1]),那么兩幅圖片越相似。
在實驗開始階段,首先訓練客戶端本地SGAN模塊。訓練完成后,得到每個客戶端SGAN 模塊中判別器的準確率,實驗結果如表2 所示。
在完成對客戶端SGAN 訓練后,每個客戶端不再使用本地數據集,而是在聯邦學習訓練的每一個輪次中隨機生成噪聲向量z。噪聲向量z通過SGAN 中的生成器生成偽本地數據x*,x*再通過SGAN 中的判別器得到對應的標簽y*。(x*,y*)通過客戶端本地網絡結構進行聯邦學習訓練。實驗結果如表3所示。

表3 DermaMNIST上的準確率
根據在DermaMNIST 數據集上的準確率來看,FedSGAN 與FedAvg 兩種算法之間僅僅相差0.02%。接下來,討論兩種算法中客戶端數據的隱私安全性。為了更好地驗證實驗結果,使用DLG 算法對上述兩個算法的客戶端進行攻擊,如圖4 所示。

圖4 DLG算法對客戶端進行攻擊
在圖4中,第一列是客戶端訓練使用的圖像,前兩行使用的是FedAvg算法,即Derma MNIST中真實的圖像,第一列第三行則是由SGAN 進行生成的偽數據。可以看到當DLG 算法迭代到150 輪的時候,得到的圖片就是客戶端訓練使用的圖片。
而由于FedSGAN 算法中客戶端使用的是偽數據集x*,所以為了驗證偽數據集x*與原數據集x的差異性,使用MSE、PSNR、SSIM 三種評價指標對生成的數據與原DermaMNIST 數據集進行評估,得到的實驗結果如表4 所示。

表4 對圖像進行評估
根據MSE、PSNR、SSIM 等評價指標計算的數據可以知道,利用SGAN 生成的偽數據x*與原數據集x完全不同。所以,FedSGAN 算法即使被DLG 算法攻擊導致泄露x*,也依然可以保證原數據集x的隱私安全。
基于保護客戶端數據安全的目的,提出了一種基于生成模型的聯邦學習隱私保護算法FedSGAN,在DermaMNIST 上進行了仿真實驗。實驗結果表明,FedSGAN 與聯邦學習經典算法FedAvg 在DermaMNIST 上的準確率僅僅相差0.02%。在此基礎上使用DLG 算法對兩種算法的隱私安全性進行驗證。FedAvg 和FedSGAN 算法都能夠被DLG 恢復客戶端數據,但是由于FedSGAN 訓練使用的是生成的偽數據集,根據MSE、PSNR、SSIM 等評價指標可知,FedSGAN 可以在保證分類準確率的基礎上有效保護原有數據集的隱私安全。