[持續更新中] Last Update: 2023/3/11
摘要#
聯邦學習是一種新興的機器學習技術,它能夠在保護隱私數據的同時,利用本地數據訓練全局模型,降低通信開銷和支持分佈式設備,同時提高模型的精度和泛化性能。本文將介紹聯邦學習的概念、常用算法、優缺點和應用場景。
概念#
聯邦學習是一種分佈式機器學習技術,它將分佈式的本地數據集合在一起,利用本地數據訓練全局模型,同時保護每個設備的數據隱私。在聯邦學習中,各個設備本地進行模型訓練,然後將本地模型參數上傳至中心伺服器進行全局模型聚合。由於本地數據不離開設備,聯邦學習能夠保護隱私數據,並且減少了通信開銷,同時提高了模型的泛化性能。
常用的聯邦學習算法#
聚合算法#
FedAvg#
FedAvg 算法是一種聯邦學習算法,它通過在設備本地進行模型訓練,將本地模型參數上傳至伺服器進行全局模型聚合,避免了上傳原始數據的風險,並且減少了通信開銷。FedAvg 算法是目前應用最廣泛的聯邦學習算法之一。
詳細解讀看這裡:
https://www.royc30ne.com/fedavg/
FedProx#
FedProx 算法是一種改進的 FedAvg 算法,它引入了正則化項來平衡本地模型和全局模型之間的權重。FedProx 算法可以提高全局模型的準確性和泛化性能,並且能夠更好地處理數據不平衡和設備異構性問題。
FedOpt#
FedOpt 算法是一種針對聯邦學習中的優化問題提出的算法。該算法採用了一種遞歸的方式進行模型訓練,並且引入了一些新的優化技術,如動量和自適應學習率,以提高模型的訓練效果和收斂速度。
攻擊算法#
數據污染攻擊(Data Poisoning Attack)#
這是一種針對參與者本地數據集進行篡改或注入惡意樣本來影響全局模型訓練效果的攻擊方法。
模型替換攻擊(Model Replacement Attack)#
這是一種針對參與者本地模型參數進行替換或修改來影響全局模型訓練效果或洩露其他參與者信息的攻擊方法。
梯度洩露攻擊(Gradient Leakage Attack)#
這是一種利用伺服器返回給參與者的梯度信息來推斷其他參與者數據特徵或標籤信息的攻擊方法。
防禦算法#
梯度裁剪(Gradient Clipping)#
這是一種簡單有效的防禦方法,它通過限制每個參與者提交給伺服器的梯度範數來減少異常或惡意更新的影響。
Krum#
Krum 算法的基本思想是,在多個模型的預測結果中,選擇一個最具代表性的結果作為最終預測結果。這個最具代表性的結果應該具有較高的預測準確度,並且和其他模型的預測結果差異較大,這樣可以降低集成模型的誤差。
Bulyan#
Bulyan 是基於 Krum 改進的算法,在 Krum 的基礎上增加了 Trimmed Mean。
聯邦學習的優缺點#
優點#
(1)保護數據隱私:聯邦學習能夠在不共享原始數據的情況下,利用本地數據進行模型訓練,保護了數據隱私。
(2)降低通信開銷:聯邦學習能夠在設備本地進行模型訓練,減少了上傳數據的通信開銷。
(3)支持分佈式設備:聯邦學習能夠支持分佈式設備,每個設備可以在本地進行模型訓練,從而降低了中心伺服器的負擔,提高了算法的擴展性和適用性。
(4)提高模型的精度和泛化性能:聯邦學習能夠利用更多的本地數據進行模型訓練,從而提高模型的精度和泛化性能。
缺點#
(1)數據不平衡問題:由於設備本地數據集的不同,可能導致每個設備的訓練模型的質量和精度存在差異,從而影響全局模型的準確性和泛化性能。
(2)設備異構性問題:由於不同的設備硬件配置和軟件環境不同,可能會導致本地模型參數的差異,從而影響全局模型的收斂性能。
(3)隱私洩露問題:雖然聯邦學習能夠保護隱私數據,但是仍然存在一些潛在的隱私洩露問題,如全局模型的參數可能會暴露一些隱私信息。
應用場景#
聯邦學習技術已經被廣泛應用於醫療健康、金融、智能交通等領域。其中,醫療健康領域是聯邦學習應用最為廣泛的領域之一,例如,聯邦學習技術可以應用於醫學圖像分析、醫療診斷和個性化治療等領域。此外,聯邦學習技術還可以應用於金融風險評估、智能交通路況預測等領域。
論文推薦(持續更新)#
聯邦學習大綜述:Advances and Open Problems in Federated Learning
FedAvg: Communication-Efficient Learning of Deep Networks from Decentralized Data
Krum:Machine Learning with Adversaries: Byzantine Tolerant Gradient Descent
Bulyan: A Little Is Enough: Circumventing Defenses For Distributed Learning