就是這篇文章提出的聯邦學習


前 言


深度學習時代,數據發揮的價值遠超傳統機器學習時代。然而,由此引發的隱私洩露問題卻日益嚴重。論文《Communication-Efficient Learning of Deep Networks from Decentralized Data》提出了聯邦學習這一概念,旨在保護數據隱私的同時,將數據發揮出更大的價值。本文是對該論文的解讀,希望能幫你更好的理解聯邦學習。


背景


手機和平板電腦已經成為了很多人生活和工作的平臺,這些設備上安裝有豐富的傳感器(如攝像頭、麥克風、GPS等)來採集大量的信息。然而,這些信息往往都是具有隱私屬性的。在這些數據上訓練出的模型可以讓一些APP更加符合我們的習慣、更智能。但由於這些數據的隱私敏感性,將它們集中上傳是非常危險的,當然,你肯定也不會允許。Google團隊提出了一種技術,可以利用這些數據訓練共享模型(即可以享受數據帶來的便能生活),同時又不要求用戶上傳數據保證隱私,這就是聯邦學習。


實現策略


如何做到在不上傳數據的情況下來訓練模型呢?這就需要在客戶端進行一定程度的訓練,通過本地獲取梯度,上傳脫敏後的梯度信息或者本地更新後上傳模型參數信息,以此幫助中心服務器在不觸碰原始數據的情況下訓練模型。這種方式相較於把數據上傳到服務器再訓練的方法極大程度的保護了數據隱私。


下面的幾個特徵,是將聯邦學習與分佈式優化問題區分開來的關鍵屬性:


  • Non-IID,由於訓練數據是基於特定用戶對移動設備的使用情況來獲取的,因此哪一個用戶的數據都不能代表總體的分佈,所以數據是non-IID的
  • Unblanced,由於不同用戶使用不同的APP的頻率不同,所以數據肯定是不均衡的。
  • Massively distributed, 參與優化的客戶端數量遠大於每個客戶端的平均樣本數
  • Limited communication,移動設備是會經常下線的,而且有些情況下的通信費用會比較昂貴。


另外,需要注意的是,在聯邦學習環境中,計算成本會遠低於溝通成本。主要有兩點,一是現在的移動設備具有較強的處理能力,所以計算成本會比較低。二是由於網絡條件等限制,溝通成本會比較大。所以,聯邦學習要儘量的將計算放在本地,以此減少溝通次數。


聯邦平均(FedAvg)算法


作者在介紹聯邦平均算法之前谷歌的這篇文章,還介紹了聯邦隨機梯度下降算法(FedSGD):

就是這篇文章提出的聯邦學習


其中是每個客戶端上傳的梯度參數。而對於聯邦平均算法:客戶端在本地數據集上計算梯度後,執行本地更新,然後上傳模型參數,中心服務器對來自各個客戶端的模型參數進行加權平均:

就是這篇文章提出的聯邦學習


從而完成一次系統層面上的迭代。其中K代表參與的客戶端,w為模型參數。具體偽代碼如下:

就是這篇文章提出的聯邦學習

其中,C是每輪參與計算的客戶端佔比,用來控制客戶端並行的數量;E是客戶端遍歷整個本地數據集的次數,B是客戶端本地計算梯度時的minibatch size。


實驗結果


論文做了大量的實驗來驗證算法的可靠性。這裡僅介紹兩個實驗,具體內容可查看原論文。第一條實驗,作者將MNIST數據集重新組合成具有100個客戶端的IID和non-IID環境。然後用兩種框架(2NN和CNN)的網絡去在這兩種環境中訓練測試。每個表條目均給出了達到2NN框架下97%的測試集準確性和CNN的99%所必需的溝通次數。可以看到,B=10相較於B = ∞時,溝通次數有著明顯的下降。

就是這篇文章提出的聯邦學習

除此之外,作者還設計實驗探究了增加客戶端計算量(固定C=0.1,改變E和B的大小)對達到目標精度事所需的溝通次數造成的影響。表中u是在當前C,E,B設定下,執行一次客戶端溝通預期的本地更新次數。該實驗驗證了一定程度上,增加本地計算量可以減少全局的溝通次數,增加聯邦學習的效率。

就是這篇文章提出的聯邦學習


總 結


聯邦學習為解決數據隱私問題提供了新的思路,本文明確了對移動設備上的分散數據的研究問題,同時也針對聯邦學習提出了聯邦平均的優化策略。聯邦平均算法FedAvg對比FedSGD,收斂更快,泛化性能更強,可以大大提高聯邦學習系統的工作效率。


END

投稿或尋求報道:[email protected]

就是這篇文章提出的聯邦學習


Federated Learning

長按上方二維碼


分享到:


相關文章: