一、聯邦學習定義
聯邦學習是利用分散在各個參與協作方的數據集,通過隱私保護技術融合多方數據信息,協同構建全局模型的一種分布式訓練方式。模型的相關信息(模型參數,結構,參數梯度等)能夠在各參與方之間(可以明文、加密、
添加噪聲等)交換,但是本地訓練數據集不會移動。即數據不動模型動,數據可用不可見。
設當前有N位數據擁有者參與訓練,記為\({\{F_i\}}_{i=1}^{N}\),各自擁有的訓練數據集記為\({\{D_i\}}_{i=1}^{N}\)。
- 集中式訓練vs聯邦學習
集中式訓練是將所有參與方的數據收集起來,存儲在中心服務器上,然后訓練一個機器學習模型\(M_{SUM}\),這個過程中各個參與方數據相互可見,且所有數據的控制權都交給了服務器。聯邦學習則不收集各參與方的數據集,協作訓練一個模型\(M_{FED}\)。 - 狹義/廣義聯邦學習性能損失
設\(V_{SUM}\)和\(V_{FED}\)分別是集中式模型\(M_{SUM}\)和聯邦模型\(M_{FED}\)的性能度量。
設\(\delta\)為任意非負實數。
狹義聯邦學習性能損失:|\(V_{SUM}-V_{FED}\)|<\(\delta\)
廣義聯邦學習性能損失:\(V_{SUM}-V_{FED}\)<\(\delta\)
兩種損失可視化圖如下:

狹義聯邦學習損失是讓聯邦模型的性能盡可能逼近集中式模型,這很容易理解,一般認為聯邦學習模型的性能要弱於集中式模型。但是廣義的聯邦學習損失中聯邦學習模型的性能可以顯著超過集中式模型,這里的一個典型案例是如果某個參與協作方的數據集質量很差(客戶端硬件設備故障導致),則集中式訓練也會用到這些低質量數據,從而影響性能。而聯邦學習系統在開始訓練時會先把一個檢測出異常的客戶端剔除,然后在剩余的客戶端設備上進行聯邦訓練。
二、聯邦學習的分類
- 橫向聯邦學習(HFL)
橫向聯邦也被稱為是樣本划分的聯邦學習,適用於各參與方數據特征重疊的情況,即數據特征在參與方之間是對齊的。比如兩家不同地區的銀行,雖然客戶不同,但是每個客戶對應的特征是相同的。 - 縱向聯邦學習(VFL)
縱向聯邦也被稱為特征划分的聯邦學習,適用於各參與方數據樣本重疊的情況,即參與方之間的數據樣本是對齊的,但是特征不一樣。比如一家銀行和一家電商公司,他們的客戶可能是同一群人,但是同一個客戶在銀行和在電商對應的特征顯然不同。 - 聯邦遷移學習(FTL)
適用於各參與方的數據樣本和數據特征都很少重疊的情況。以兩個參與方為例,其中一方代表源域,另一方代表目標域,在源域中學習特征的分布,將源域的特征信息遷移到目標域中,遷移過程中不移動本地數據。聯邦學習特別適用於異構數據(比如圖像和文字)的聯邦學習問題。
三、聯邦學習架構
- 集中式拓撲架構
設計一個中心計算方,用於收集各方模型參數信息並經過相應算法更新后返回各方的任務。需要考慮中心計算方泄露隱私或受到攻擊的問題。 - 對等網絡拓撲架構
不存在中心計算節點,各參與方在聯邦學習框架中地位平等。
四、聯邦學習算法現狀
- 橫向聯邦學習,常用於跨設備端的場景。
- 縱向聯邦學習,常用於跨機構的場景。
- 聯邦遷移學習,在保護數據隱私的前提下,強調即使在異構特征分布的多方場景下,也能協同並提升模型性能。
