FedAvg聯(lián)邦學習FedProx異質(zhì)網(wǎng)絡優(yōu)化實驗總結(jié)
前言
題目: Federated Optimization for Heterogeneous Networks
會議: Conference on Machine Learning and Systems 2020
論文地址:Federated Optimization for Heterogeneous Networks
FedAvg對設備異質(zhì)性和數(shù)據(jù)異質(zhì)性沒有太好的解決辦法,F(xiàn)edProx在FedAvg的基礎上做出了一些改進來嘗試緩解這兩個問題。
在Online Learning中,為了防止模型根據(jù)新到來的數(shù)據(jù)進行更新后偏離原來的模型太遠,也就是為了防止過調(diào)節(jié),通常會加入一個余項來限制更新前后模型參數(shù)的差異。FedProx中同樣引入了一個余項,作用類似。
I. FedAvg
Google的團隊首次提出了聯(lián)邦學習,并引入了聯(lián)邦學習的基本算法FedAvg。問題的一般形式:
FedAvg:
簡單來說,在FedAvg的框架下:每一輪通信中,服務器分發(fā)全局參數(shù)到各個客戶端,各個客戶端利用本地數(shù)據(jù)訓練相同的epoch,然后再將梯度上傳到服務器進行聚合形成更新后的參數(shù)。
FedAvg存在著兩個缺陷:
- 設備異質(zhì)性:不同的設備間的通信和計算能力是有差異的。在FedAvg中,被選中的客戶端在本地都訓練相同的epoch,雖然作者指出提升epoch可以有效減小通信成本,但較大的epoch下,可能會有很多設備無法按時完成訓練。無論是直接drop掉這部分客戶端的模型還是直接利用這部分未完成的模型來進行聚合,都將對最終模型的收斂造成不好的影響。
- 數(shù)據(jù)異質(zhì)性:不同設備中數(shù)據(jù)可能是非獨立同分布的。如果數(shù)據(jù)是獨立同分布的,那么本地模型訓練較多的epoch會加快全局模型的收斂;如果不是獨立同分布的,不同設備在利用非IID的本地數(shù)據(jù)進行訓練并且訓練輪數(shù)較大時,本地模型將會偏離初始的全局模型。
II. FedProx
為了緩解上述兩個問題,本文作者提出了一個新的聯(lián)邦學習框架FedProx。FedProx能夠很好地處理異質(zhì)性。
定義一:
簡單來說,每個客戶端都是優(yōu)化所有樣本的損失和,這個是正常的思路,讓全局模型在本地數(shù)據(jù)集上表現(xiàn)更好。
但如果設備間的數(shù)據(jù)是異質(zhì)的,每個客戶端優(yōu)化之后得到的模型就與初始時服務器分配的全局模型相差過大,本地模型將會偏離初始的全局模型,這將減緩全局模型的收斂。
為了有效限制這種偏差,本文作者提出,設備 k k k在本地進行訓練時,需要最小化以下目標函數(shù):
作者在FedAvg損失函數(shù)的基礎上,引入了一個proximal term,我們可以稱之為近端項。引入近端項后,客戶端在本地訓練后得到的模型參數(shù) w將不會與初始時的服務器參數(shù) wt偏離太多。
觀察上式可以發(fā)現(xiàn),當 μ=0時,F(xiàn)edProx客戶端的優(yōu)化目標就與FedAvg一致。
這個思路其實還是很常見的,在機器學習中,為了防止過調(diào)節(jié),亦或者為了限制參數(shù)變化,通常都會在原有損失函數(shù)的基礎上加上這樣一個類似的項。比如在在線學習中,我們就可以添加此項來限制更新前后模型參數(shù)的差異。
FedProx的算法偽代碼:
通過觀察這個步驟可以發(fā)現(xiàn),F(xiàn)edProx在FedAvg上做了兩點改進:
引入了近端項,限制了因為數(shù)據(jù)異質(zhì)性導致的模型偏離。引入了不精確解,各個客戶端不再需要訓練相同的輪數(shù),只需要得到一個不精確解,這有效緩解了某些設備的計算壓力。
III. 實驗
圖1給出了數(shù)據(jù)異質(zhì)性對模型收斂的影響:
上圖給出了損失隨著通信輪數(shù)增加的變化情況,數(shù)據(jù)的異質(zhì)性從左到右依次增加,其中 μ = 0 表示FedAvg。可以發(fā)現(xiàn),數(shù)據(jù)間異質(zhì)性越強,收斂越慢,但如果我們讓 μ>0,將有效緩解這一情況,也就是模型將更快收斂。
圖2:
左圖:E增加后對μ=0情況的影響。可以發(fā)現(xiàn),太多的本地訓練將導致本地模型偏離全局模型,全局模型收斂變緩。
中圖:同一數(shù)據(jù)集,增加μ后,收斂將加快,因為這有效緩解了模型的偏移,從而使FedProx的性能較少依賴于 E。
作者給出了一個trick:在實踐中,μ可以根據(jù)模型當前的性能自適應地選擇。比較簡單的做法是當損失增加時增加 μ,當損失減少時減少μ。
但是對于 γ,作者貌似沒有具體說明怎么選擇,只能去GitHub上研究一下源碼再給出解釋了。
IV. 總結(jié)
數(shù)據(jù)和設備的異質(zhì)性對傳統(tǒng)的FedAvg算法提出了挑戰(zhàn),本文作者在FedAvg的基礎上提出了FedProx,F(xiàn)edProx相比于FedAvg主要有以下兩點不同:
考慮了不同設備通信和計算能力的差異,并引入了不精確解,不同設備不需要訓練相同的輪數(shù),只需要得到一個不精確解即可。引入了近端項,在數(shù)據(jù)異質(zhì)的情況下,限制了本地訓練時模型對全局模型的偏離。
以上就是FedProx異質(zhì)網(wǎng)絡的聯(lián)邦優(yōu)化經(jīng)驗總結(jié)的詳細內(nèi)容,更多關(guān)于FedProx異質(zhì)網(wǎng)絡聯(lián)邦優(yōu)化的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
unity下載并和vs2019關(guān)聯(lián)的步驟詳解
這篇文章主要介紹了unity下載并和vs2019關(guān)聯(lián)的步驟,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08三大UML建模工具Visio、Rational Rose、PowerDesign的區(qū)別比較
UML建模工具相信大家有所了解,那么你對UML建模工具Visio 、Rational Rose、PowerDesign之間的區(qū)別和聯(lián)系是否了解,這里就像大家簡單介紹一下2013-02-02解決Git fatal: refusing to merge unre
這篇文章主要介紹了解決Git fatal: refusing to merge unrelated histories報錯問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11Git恢復之前版本的兩種方法reset、revert(圖文詳解)
這篇文章主要介紹了Git恢復之前版本的兩種方法reset、revert(圖文詳解),文中通過圖文示例介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07Scratch3.0二次開發(fā)之windows環(huán)境下打包成exe的流程
今天通過本文給大家分享Scratch3.0二次開發(fā)之windows環(huán)境下打包成exe的詳細流程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08