Communication-Efficient Learning of Deep Networks from Decentralized Data 论文笔记
??本文出自論文Communication-Ef?cient Learning of Deep Networks from Decentralized Data,本文提出了一種基于迭代模型平均的深層網絡聯合學習方法(Federated Averaging,FedAvg)解決聯邦學習中數據Non-IID 和不平衡的問題,并對五種不同的模型結構和四種數據集進行了廣泛的實證評價。 |
論文地址:Communication-Ef?cient Learning of Deep Networks from Decentralized Data
??現代的移動設備可以訪問適合模型的數據,這些從而可以大大提高用戶在設備上的體驗。然而這些數據通常是隱私敏感,數量巨大。這就不能將數據傳送到數據中心再同傳統的方法訓練。作者提倡一種替代方案,將訓練數據分布在移動設備上,并通過聚合本地計算的更新來學習共享模型。我們稱這種分散的方法為聯邦學習。
??本文提出了一種基于迭代模型平均的深層網絡聯合學習方法,并針對不同的模型體系結構和四個數據集進行了擴展的模擬推理。這些實驗表明,該方法對不平衡和Non-IID的數據分布具有魯棒性,這是該設置的一個定義特征。通信成本是主要約束,與同步隨機梯度下降相比,所需通信次數減少了10-100倍。
文章目錄
- 一、簡介
- 二、聯邦平均算法(The Federated Averaging Algorithm)
- 三、實驗結果
- 三、結論和未來工作
- 四、附錄A
一、簡介
??作者研究了一種學習技術,它允許用戶在不需要集中存儲數據的情況下,從這些豐富的數據中獲得共享模型的好處。因為學習任務是通過一個由中央服務器協調的參與設備(稱之為服務器(clientsclientsclients))的松散聯合來解決的,所以我們稱之為聯邦學習(FederatedLearningFederated LearningFederatedLearning)。每個客戶機都有一個從未上載到服務器的本地訓練數據集。相反,每個客戶機對由服務器維護的當前全局模型進行更新計算,并且只傳遞此更新到服務器。
??貢獻:
1.識別移動設備分散數據訓練問題是一個重要的研究方向。
2.選擇出了一種可應用于此設置的簡單實用的算法。
3.對提出的方法進行了廣泛的實證評估。更具體地說,我們引入了聯邦平均(FederatedAveragingFederated AveragingFederatedAveraging)算法,它將每個客戶機上的局部隨機梯度下降(SGD)與執行模型平均的服務器相結合。作者對該算法進行了大量的實驗,證明了該算法對不平衡和非IID數據分布的魯棒性,并能將在分散數據上訓練深度網絡所需的通信次數減少若干個數量級。
??聯邦學習(FederatedLearningFederatedLearningFederatedLearning)
??聯邦學習的理想問題具有以下特性:1.與在數據中心用代理數據訓練相比,在移動設備用真實數據訓練具有明顯的優勢。2.數據是隱私敏感或者數量巨大。3.對于監督任務,標簽可以從用戶的交互中得出。
??隱私
??與數據中心對持久數據的訓練相比,聯邦學習具有明顯的隱私優勢。和其他數據連接時,即使數據是匿名也可能讓用戶的隱私受到威脅。聯邦學習傳輸的最小的更新模型的信息,并且這種更新的信息是短暫的。
??聯邦優化(FederatedOptimizationFederated OptimizationFederatedOptimization)
??將聯邦學習中隱含的優化問題稱為聯邦優化,將其與分布式優化聯系起來(并進行對比)。聯邦優化有幾個關鍵屬性,使其與典型的分布式優化問題不同:1.Non-IID。2.不平衡。一些用戶比一些用戶有更多的數據。3.大規模分布。參與優化的客戶機數量將遠遠大于每個客戶機的平均樣例數量。4.連接受限。移動設備連接不穩定。
??本文重點是優化的Non-IID和不平衡特性,以及通信約束的性質。其他因素設置為適合實驗的受控環境。假設有K個客戶機,每個客戶機有自己固定的本地數據集。每一輪的開始隨機選擇比例為C的客戶機。然后服務器將將模型的全局參數發給這些客戶機,這些客戶機根據全局狀態及其本地數據集執行本地計算,并向服務器發送更新。然后,服務器將這些更新應用于其全局狀態,并重復該過程。將上述方法用于非凸神經網絡目標函數時:
??其中n是全部數據集的大小。對于機器學習問題,fi(w)=l(xi,yi;w)f_{i}(w)=l(x_{i},y_{i};w)fi?(w)=l(xi?,yi?;w),假設有K個客戶機,PkP_{k}Pk?指的是第K個客戶機的數據集的索引,nk=∣Pk∣n_{k}=|P_{k}|nk?=∣Pk?∣,即nkn_{k}nk?表示每個客戶機的數據量。則式(1)可以改寫成
??在數據中心的優化中,計算成本占主要地位。而在聯邦學習中通信成本占主要地位,因此作者的目標是想要增加額外的計算來降低訓練模型所需所需的通信次數。有兩種主要的方法來增加計算量:1.增加并行性。每輪通信使用更多的客戶機。2.增加每臺客戶機的計算量。在每輪通信中運行更復雜的計算。
二、聯邦平均算法(The Federated Averaging Algorithm)
??最近許多成功的深度學習應用幾乎完全依賴于變量的隨機梯度下降(SGD)來進行優化;事實上,許多進展可以理解為使模型結構(以及損失函數)更易于通過簡單的基于梯度的方法進行優化。因此,很自然地從SGD開始構建聯邦優化算法。
??SGD可以簡單地應用于聯邦優化問題,在聯邦優化問題中,每輪通信都要進行一次單批梯度計算。我們在CIFAR-10實驗中考慮了這個基線。
??在聯邦設置中,涉及更多客戶時,wall-clock時間成本很低。因此對于我們的基線,我們使用大批量同步SGD。為了在聯邦設置中應用這種方法,我們在每一輪中選擇占比為C的客戶機,并計算這些客戶機所持有的所有數據的損失梯度。因此,C控制全局批大小,C=1對應于整批(非隨機)梯度下降。我們將此基線算法稱為聯邦SGD(或FedSGD)。
??一個典型的FedSGD的實現是令C=1,一個固定的學習率ηηη,客戶機K計算gk=▽Fk(wt)g_{k}=\bigtriangledown F_{k}(w_{t})gk?=▽Fk?(wt?),即當前模型wtw_{t}wt?的平均下降梯度。然后服務器中心合計全部客戶機的梯度并更新模型wt+1←wt?ηΣk=1Knkngkw_{t+1}\leftarrow w_{t}-\eta \Sigma^{K}_{k=1} \frac{n_{k}}{n}g_{k}wt+1?←wt??ηΣk=1K?nnk??gk?上式等同于?k,wt+1k←wt?ηgkthenwt+1←Σk=1Knknwt+1k\forall k,w^{k}_{t+1}\leftarrow w_{t}-\eta g_{k} \qquad then \qquad w_{t+1}\leftarrow \Sigma^{K}_{k=1} \frac{n_{k}}{n}w^{k}_{t+1}?k,wt+1k?←wt??ηgk?thenwt+1?←Σk=1K?nnk??wt+1k?也就是說,每個客戶機在本地使用其本地數據對當前模型進行一步梯度下降,然后服務器對得到的模型進行加權平均。一旦算法是這樣寫,我們就可以為每個客戶機在服務器平均之前通過多次迭代wk←wk?ηFk(wk)w^{k} \leftarrow w^{k}-\eta F_{k}(w^{k})wk←wk?ηFk?(wk)來增加計算量。作者把這個算法稱為聯邦平均( FederatedAveraging or FedAvg)。 FedAvg的計算量由三個參數控制:CCC,每輪選擇客戶機的比例;EEE,每個客戶機在一輪的本地數據集上進行的訓練次數;BBB,本地訓練的minibatch。B=∞B=\inftyB=∞表示本地的全部數據當作一次minibatch。因此B=∞,C=1B=\infty,C=1B=∞,C=1就正好對應于FedSGD。對于一個有nk個數據的n_{k}個數據的nk?個數據的客戶機來說,每輪的更新次數為uk=EnkBu_{k}=E \frac{n_{k}}{B}uk?=EBnk??。 FedAvg的偽代碼如下圖:
個人理解:
FedAvg的步驟:
1.隨機選擇比例為C的客戶機。
2.對于服務器將全局模型發給被選擇的客戶機。客戶機用本地的數據將接受到的全局模型進行epoch為E,batch為B的梯度更新。總共更新的次數為EnkBE \frac{n_{k}}{B}EBnk??。
3.客戶機將更新后得到的模型發給服務器。服務將全部模型取權值平均得到一個新的全局模型。
FedSGD和 FedAvg的唯一不同點就是 FedAvg多了一個參數EEE,即客戶機一輪在本地數據訓練的次數。當E=1E=1E=1時, FedAvg退化為FedSGD。
三、實驗結果
??實驗分為圖像分類模型和語言建模任務兩部分。初步的研究包括三個模型族和兩個數據集。
??前兩個用于MNIST數字識別任務:1)一個簡單的多層感知機,具有兩個隱層。每個層有200個單元。稱之為MNIST 2NN。2)卷積神經網絡。
??MNIST數據分布的兩種劃法:1)IID,數據隨機分給100個客戶機,每個客戶機收到600分樣本。2)Non-IID,先對數據標簽進行排序,將整個數據集分成每份300個樣本的數據子集,每一個客戶機收到兩個數據子集,所以一個客戶機最多有兩種標簽的數字圖片。
??對于語言模型,作者從莎士比亞全集中建立數據集。用至少兩行文本為劇本中每個有對話的角色構建了一個客戶端數據集。這產生了一個包含1146個客戶機的數據集。對于每個客戶機,我們將數據分成一組訓練集(角色的前80%的行)和測試集(最后20%,四舍五入到至少一行)。顯然這個數據的不平衡的,因為很多角色只有幾行,二少數角色擁有很多行。所以作者還做了形成平衡和IID版本的數據集,同時擁有1146個客戶機。
??對于這個數據集作者訓練了一個lstm模型。這個模型在讀取一行中的每個字符后,預測下一個字符。
?? 增加并行度。對比例C進行實驗。表1顯示了不同的C對兩個MNIST模型的影響。我們顯示了達到目標精度所需的通信輪數。
?? 圖二則用圖表的形式顯示每輪更新后達到的進度
?? 使用B=∞B=\inftyB=∞(對于MNIST將客戶機中600示例作為每輪的一個批處理)使用時,增加比例C只有一個小小的優勢。在C≥0.1的情況下,使用更小的batchsizeB=10B=10B=10顯著改善,尤其是在非IID情況下。基于這些結果,在我們剩下的大部分實驗中,我們固定C=0.1C=0.1C=0.1,這在計算效率和收斂速度之間取得了很好的平衡。比較表1中B=∞B=\inftyB=∞和B=10B=10B=10列的輪數,可以看到一個顯著的加速,我們接下來將對此進行研究。
?? 增加每個客戶機的計算量。固定C=0.1C=0.1C=0.1。若要增加一輪中每個客戶機的計算量,要么降低BBB,要么增加EEE,要么兩者兼有。圖二顯示了在每輪中增加SGD更新(即增加E)可以顯著的減低通信次數。表二量化了這些加速。每輪每個客戶機更新的次數u=(E∣nk/B∣)E=nE/(KB)u=(E|n_{k}/B|)E=nE/(KB)u=(E∣nk?/B∣)E=nE/(KB)。從表二中可以看到。通過改變B和E來增加u是有效的。但如果B足夠大,就基本上不能消耗計算時間來降低通信次數了。
?? 對于MNIST數據的分布,使用更多的計算,CNN和2NN的目標精度分別降低了35倍和46倍(2NN詳見附錄A表4)。Non-IID數據的加速比較小,但仍然相當可觀(2.8–3.7倍)。令人印象深刻的是,當我們天真地對訓練在完全不同的數字對上的模型參數進行平均時,平均值提供了所有優勢。因此,我們認為這是這種方法穩健性的有力證據。
?? 在不平衡和Non-IID的莎士比亞數據集中,這個數據集更能代表顯示中的分布學習Non-IID和不平衡數據實際上要容易得多(95倍加速,而平衡IID數據為13倍加速);我們推測這主要是由于某些角色具有相對較大的本地數據集,這使得增加的本地訓練尤其有價值。
??對于這三個模型類,FedAvg比基線FedSGD模型收斂到更高的精度水平。即使這些線超出了繪制的范圍,這種趨勢也會繼續。例如,對于CNN來說,B=∞;E=1 FedSGD模型在1200輪之后最終達到99.22%的精度(6000輪之后沒有進一步提高),而B=10;E=20 FedAvg模型在300輪之后達到99.44%的精度。作者推測,除了降低通信成本外,模型平均還能產生類似于Dropout所獲得的正則化收益。
??我們可以在客戶機數據集上over-optimize 嗎? 當E→∞E \rightarrow \inftyE→∞時,至少對于凸問題,最終初始條件是怎樣,都會達到全局最小值。即使對于非凸問題,也可以推測,只要初始化在同一個盆地中,算法就會收斂到相同的局部極小值。也就是說,雖然一輪平均可能會產生一個合理的模型,但額外的一輪交流(和平均)不會產生進一步的改進。
??圖3顯示了初始訓練中,大的E對莎士比亞的LSTM模型的影響。事實上,對于非常大的本地epoch,FedAvg可以平穩或發散的。這一結果表明,對于某些模型,尤其是在收斂的后期階段,衰減每輪的局部計算量(移動到較小的E或更大的B)可能是有用的,同樣,衰減學習速率也是有用的。附錄A中的圖8給出了類似的實驗。有意思的是,對于這個模型,我們沒有看到E值較大時收斂速度的顯著下降。但是,我們發現在下面描述的大規模語言建模任務中,E=1比E=5的性能稍好(參見附錄A中的圖10)。
??CIFAR 實驗 作者還對CIFAR-10數據集進行了實驗,進一步驗證 FedAvg。該實驗有100個客戶機,每個客戶機有500張圖片的訓練集,100張圖片的測試集。由于此數據沒有自然的用戶劃分,因此考慮為平衡和IID設置。
??對于這些實驗,我們考慮了一個額外的基線,即全訓練集(無用戶劃分)上的標準SGD訓練,使用大小為100的小批量。在197500個小批量更新之后,我們獲得了86%的測試精度(每個小批量更新都需要在聯邦設置中進行通信)。FedAvg僅在2000次通信輪次后達到了85%的類似測試精度。對于所有算法,除了初始學習速率外,我們還調整了學習速率衰減參數。表3給出了基線SGD、FedSGD和FedAvg達到三個不同精度目標的通信次數,圖4給出了FedAvg與FedSGD的學習率曲線。
?? Large-scale LSTM experiments 作者在一個大規模的下一個單詞預測任務上進行了實驗,以驗證 FedAvg方法在實際問題上的有效性。訓練數據集包括來自一個大型社交網絡的1000萬個公共帖子。根據作者對帖子進行了分組,總共有超過500000名客戶。
??所有的實驗都在每輪200個客戶機上訓練;FedAvg使用B=8和E=1。作者研究了FedAvg和基線FedSGD的各種學習率。圖5顯示了最佳學習率的單調學習曲線。η=18.0的FedSGD需要820輪才能達到10.5%的準確率,而η=9.0的FedAvg在35論通訊(23×fewerthen FedSGD)中達到了10.5%的準確率。我們觀察到FedAvg的測試精度差異較低,見附錄A中的圖10。該圖還包括了E=5的結果,其表現略差于E=1。
三、結論和未來工作
??實驗表明,聯邦學習是可行的,因為FedAvg使用相對較少的通信輪次來訓練高質量的模型,
??聯邦學習提供了許多實用的隱私好處,但通過差異隱私、安全多方計算或它們的組合來提供更強大的保障是未來工作的一個有趣的方向。
四、附錄A
總結
以上是生活随笔為你收集整理的Communication-Efficient Learning of Deep Networks from Decentralized Data 论文笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi开发工具DevExpress
- 下一篇: 程序员是青春饭吗-最新研究显示程序员的能