- 產品
- 產品解決方案
- 行業解決方案
- 案例
- 數據資產入表
- 賦能中心
- 伙伴
- 關于
時間:2022-03-12來源:用微笑釋懷瀏覽數:303次
聯邦學習是一種機器學習設定,其中許多客戶端(例如:移動設備或整個組織)在中央服務器(例如:服務提供商)的協調下共同訓練模型,同時保持訓練數據的去中心化及分散性。聯邦學習的長期目標則是:在不暴露數據的情況下分析和學習多個數據擁有者(客戶端或者獨立的設備)的數據。
進一步而言,聯邦學習可定義為:Federated Learning = Collaborative Machine Learning without Centralized Training Data(沒有集中訓練數據的協作機器學習)[1],將機器學習的能力與將數據存儲在云中的需求進行分離。

圖1:Google聯邦學習框架圖(鏈接[1])

圖2:Federated Learning Survey(鏈接[2])
接下來我們將從聯邦學習中的挑戰和未來進展剖析聯邦學習。
▊ 聯邦學習中的挑戰
1. Expensive Communication:聯邦學習可能由大量設備(例如數百萬部智能手機)組成,網絡中的通信可能比本地計算慢許多數量級;網絡中的通信可能比傳統數據中心環境中的通信昂貴得多;為了使模型更適合聯邦網絡,因此有必要開發出通信高效的方法,在訓練過程中迭代發送小消息或模型更新,而不是通過網絡發送整個數據集。
通信是在開發聯邦網絡的方法時需要考慮的一個關鍵瓶頸:具體而言,可分為以下三種解決方法:
(1)local updating methods本地更新方法;(2)compression schemes壓縮方法;(3)decentralized training分布式訓練。local updating methods:如下圖所示,通過局部小批量更新可以降低通信代價,在每一輪通信中并行地在每臺機器上應用可變數量的本地更新,從而使計算量與通信相比更加靈活。

圖3:關于多次局部小批次更新示意圖(鏈接[3])
compression schemes:通常而言,稀疏化、子采樣和量化等模型壓縮方案可以顯著減少每一輪通信的消息的大小;但是在聯邦學習環境中,設備的低參與度、Non-IID的本地數據和本地更新方案對這些模型壓縮方法提出了新的挑戰。然而,一些工作在聯邦學習中提供了實用的策略:迫使設備與服務器間更新的模型具有稀疏性和低秩性,并使用使用結構化隨機旋轉進行量化(Federated learning: strategies for improving communication efficiency)、使用有損壓縮和Dropout技術來減少服務器到設備之間的通信(Expanding the reach of federated learning by reducing client resource requirements)。
decentralized training:在數據中心環境中,當在低帶寬或者高延遲的網絡上運行時,分散訓練已被證明比集中訓練更快;類似地,在聯邦學習中,分散的算法在理論上可以降低設備與中心服務器之間的高通信成本。有研究提出,分層通信模式,以進一步減輕中心服務器的負擔,首先利用邊緣服務器聚合來自邊緣設備的更新,然后依賴云服務器聚合來自邊緣服務器的更新。

圖4:關于集中式與分散式訓練示意圖(鏈接[3])
2. Systems Heterogeneity:由于硬件、網絡連接和電源電量的差異,聯邦網絡中每個設備的存儲、計算和通信能力可能會有所不同;此外每個設備上的網絡規模和系統相關限制通常會導致只有一小部分設備同時處于活動狀態,例如在數百萬設備網絡中可能只有數百臺設備處于活動狀態;同時每個設備也可能不可靠,活動設備在給定的迭代中退出的情況并不少見。基于上述問題,系統異構性層面的解決方法大致可以分為如下所示:
(1)異步通信;(2)主動設備采樣;(3)容錯機制。Asynchronous Communication:雖然異步參數服務器在分布式數據中心中取得了成功,但經典的有界延遲假設在聯邦設置中可能是不現實的,其中延遲可能在數小時到數天或完全無界,因此需要設計出基于異步通信針對設備層面的聯邦學習算法。Active Sampling:在聯邦網絡中,通常只有一小部分設備參與每輪訓練,為了減少系統異構性的影響,我們可以在每一輪中主動選擇參與設備。但是,如何擴展這些方法以處理實時的、特定于設備的計算和通信延遲波動仍然是還未解決的。Fault Tolerance:當在遠程設備上學習時,容錯機制變得更加關鍵,因為一些參與設備在給定訓練迭代完成之前的某個時間點退出是很常見的。一種實用的策略是簡單地忽略此類設備故障,但是可能會引入偏差,經過訓練的聯邦模型將偏向具有良好網絡條件的設備。3. Statistical Heterogeneity:設備經常以不同的方式在網絡中生成和收集數據:例如預測移動電話用戶的下一個單詞任務中用戶在上下文中可能會使用不同的語言。此外跨設備之間的數據數量可能會有很大差異,并且獲取設備及其相關分布之間的關系結構或許很難;這種數據生成范式違背常用的獨立同分布假設,并可能增加建模、分析和評估方面的復雜性。當從設備上分布不相同的數據中訓練聯邦模型時,就會出現統計異構性的挑戰,其中比較有效的則是對異構數據進行建模。在機器學習中有大量的文獻通過元學習和多任務學習等方法來建模統計異質性,這些想法最近被擴展到聯邦設置:
1)通過學習每個設備獨立但相關的模型來實現個性化,同時通過多任務學習共享表示(Federated multi-task learning);
2)在一些共享的代理數據上集中訓練一個全局模型后,通過運行FedAvg來探索個性化的遷移學習(Federated learning with non-iid data)。
▊ 聯邦學習中的未來進展
基于此前提出的挑戰,首先在通信方面提出:
1)Extreme communication schemes 極端通信方案:最近,一次性或者少量的啟發式通信方案最近被提出作為聯邦學習通信方面的設置;
2)Communication reduction 減少通信:在聯邦訓練中減少通信的幾種方法,如本地更新和模型壓縮(梯度壓縮和量化方法),進一步考慮的是,在相同的通信預算下實現比任何其他方法更大的精度;
其次,在數據層面提出:1)Self-supervised learning 自監督學習:現實的聯邦網絡中生成的許多數據可能是未標記的或弱標記的,在聯邦網絡中解決監督學習之外的問題可能需要解決可伸縮性、異質性和隱私方面的類似挑戰;
2)個性化算法:對于單個客戶端可用的Non-IID數據分布下的完全分散方案,一項重要任務是設計用于學習個性化模型集合的算法。
▊ 總結
從廣義上來說,聯邦學習更像是某一類問題或需求的總稱:在確保數據隱私的基礎下,如何聯合多個數據擁有方共同訓練出更好的模型;狹義上來說則是指:一類基于客戶-服務器的特定算法,通過僅僅暴露出某些中間信息來換取更高效率、模型精度以及安全的隱私保護算法。
就當前來看,主要還是聚焦于聯邦學習中Non-IID數據的處理策略(個性化、設計異構算法、基于多任務/元學習、用戶選擇與聚類)、通信效率優化(剪枝+量化,與知識蒸餾結合的文章也有許多,知識蒸餾/遷移學習+聯邦學習是熱點)與降低聯邦網絡訓練能耗方向。
個人研究方向是基于Non-IID的聯邦學習算法設計,現在就主要就該問題進行一些深入,希望可以給大家帶來一些新的idea。Non-IID指的是:變量之間非獨立,或者非同分布(由于聯邦學習特殊的場景,每個設備不可能完全一樣,因此其設備上的數據往往是非同分布的)。每個用戶本地的數據分布會隨著用戶所在地以及用戶偏好而變動。
如何降低Non-IID帶來的模型精度下降/不穩定/泛化能力差等缺點,即怎么才能減少聯邦學習中異構性帶來的模型影響?我覺得主要可以從四個方面來看:
1)個性化聯邦學習;2)異構聯邦學習;3)多任務及元學習;4)用戶選擇和聚類。1)個性化聯邦學習:由于用戶數據的高度Non-IID以及用戶對模型性能要求的不一致,單個的Global model很難滿足所有參與者的需求,因此需要采用一種個性化的方法使得Global model針對每個用戶進行優化。從本質上來說,個性化聯邦學習的方案將Non-IID作為聯邦學習的一種優點,因為這些Non-IID數據能夠提供用戶獨特的使用習慣和屬性,不同用戶能夠通過本地數據的差異得到更適合自己的訓練模型。
該文章(鏈接[4])提出了一種用于個性化聯邦學習的超網絡,在這種方法中,訓練一個中央超網絡模型,用來給每個客戶生成模型,具有生成多樣化個性化模型的能力。
另一篇文章(鏈接[5])主要思想是對于本地模型,在原來傳統方法(例如FedAvg算法:鏈接[6])的基礎上加了一個正則項,使其滿足全局模型和本地模型間的平衡。
總結下來思路都是一個:全局模型作為基礎,再利用每個獨立的設備(客戶端)上個性化的數據再來微調模型(或者理解為加上客戶端自身數據的某些先驗知識)。
2)異構聯邦學習:在聯邦學習中一直以來存在不同參與設備間通信、計算和存儲性能的差異(系統異構);數據分布、數據量的差異(統計異構);對不同環境、不同任務間所需建模的差異(模型異構)。異構聯邦學習的方案是在模型層面減少因Non-IID數據導致的權重差異對全局收斂的影響,在算法步驟中通過各種方式減少模型間的差異。近期論文將聯邦學習和知識蒸餾進行了結合,例如(鏈接[7])提出了一種解決異構FL的無數據知識蒸餾方法,其中服務器學習輕量級生成器以無數據的方式集成用戶信息,然后將其廣播給用戶,使用所學知識作為歸納偏差改進模型。異構聯邦學習主要是算法層面,可以通過改變模型結構,或者在客戶端/服務器端訓練過程中添加一些操作來改進模型。
3)多任務及元學習:多任務學習以及元學習在面對Non-IID數據的時候非常有效,其性能甚至可能超過最好的全局共享模型。因為元學習其在數據量較少的情況下也可以發揮出較為穩定精確的性能。就多任務學習而言,如果我們將每個客戶(設備)的本地問題(本地數據集上的學習問題)視為一項單獨的任務(而不是單個數據集的一個劃分),在多任務學習中,訓練過程的結果是每個任務得到一個模型,這樣通過對模型進行集成后的精度肯定高于原始模型。
4)用戶選擇和聚類:用戶選擇與聚類在聯邦學習中也有所研究。通過用戶聚類可以將相似數據的用戶進行聚合,再通過用戶選擇抽取具有代表性的用戶進行訓練。一方面能夠減少所有用戶參與訓練過程中造成的大量通信成本,另一方面也能剔除異常用戶,減少被惡意攻擊的風險。具體應用而言,例如該論文(鏈接[8])則是在用戶選擇中引入了聚類抽樣(選擇+抽樣,可運用到聯邦學習中的設備采樣階段),并證明了聚類抽樣能提高用戶的代表性,并減少不同客戶權重聚合時的差異。
參考文獻
[1]?https://ai.googleblog.com/2017/04/federated-learning-collaborative.html
[2] Analyzing Federated Learning through an Adversarial Lens.
論文鏈接:https://arxiv.org/abs/1811.12470
[3] Federated Learning:Challenges, Methods, and Future Directions.
論文鏈接:https://arxiv.org/abs/1908.07873
[4] Personalized Federated Learning using Hypernetworks.
論文鏈接:https://arxiv.org/abs/2103.04628
[5] Ditto Fair and Robust Federated Learning Through Personalization.
論文鏈接:https://arxiv.org/abs/2012.04221
[6] Communication-Efficient Learning of Deep Networks from Decentralized Data.
論文鏈接:https://arxiv.org/abs/1602.05629
[7] Data-Free Knowledge Distillation for Heterogeneous Federated Learning.
論文鏈接:https://arxiv.org/abs/2105.10056
[8] Clustered Sampling: Low-Variance and Improved Representativity for Clients Selection in Federated Learning.
論文鏈接:https://arxiv.org/abs/2105.05883