1. 程式人生 > 其它 >(一)聯邦學習概述

(一)聯邦學習概述

一、聯邦學習定義

  聯邦學習是利用分散在各個參與協作方的資料集,通過隱私保護技術融合多方資料資訊,協同構建全域性模型的一種分散式訓練方式。模型的相關資訊(模型引數,結構,引數梯度等)能夠在各參與方之間(可以明文、加密、

新增噪聲等)交換,但是本地訓練資料集不會移動。即資料不動模型動,資料可用不可見

  設當前有N位資料擁有者參與訓練,記為\({\{F_i\}}_{i=1}^{N}\),各自擁有的訓練資料集記為\({\{D_i\}}_{i=1}^{N}\)

  1. 集中式訓練vs聯邦學習
    集中式訓練是將所有參與方的資料收集起來,儲存在中心伺服器上,然後訓練一個機器學習模型\(M_{SUM}\),這個過程中各個參與方資料相互可見,且所有資料的控制權都交給了伺服器。聯邦學習則不收集各參與方的資料集,協作訓練一個模型\(M_{FED}\)
  2. 狹義/廣義聯邦學習效能損失
    \(V_{SUM}\)\(V_{FED}\)分別是集中式模型\(M_{SUM}\)和聯邦模型\(M_{FED}\)的效能度量。
    \(\delta\)為任意非負實數。
    狹義聯邦學習效能損失:|\(V_{SUM}-V_{FED}\)|<\(\delta\)
    廣義聯邦學習效能損失:\(V_{SUM}-V_{FED}\)<\(\delta\)
    兩種損失視覺化圖如下:

    狹義聯邦學習損失是讓聯邦模型的效能儘可能逼近集中式模型,這很容易理解,一般認為聯邦學習模型的效能要弱於集中式模型。但是廣義的聯邦學習損失中聯邦學習模型的效能可以顯著超過集中式模型,這裡的一個典型案例是如果某個參與協作方的資料集質量很差(客戶端硬體裝置故障導致),則集中式訓練也會用到這些低質量資料,從而影響效能。而聯邦學習系統在開始訓練時會先把一個檢測出異常的客戶端剔除,然後在剩餘的客戶端裝置上進行聯邦訓練。

二、聯邦學習的分類

  1. 橫向聯邦學習(HFL)
    橫向聯邦也被稱為是樣本劃分的聯邦學習,適用於各參與方資料特徵重疊的情況,即資料特徵在參與方之間是對齊的。比如兩家不同地區的銀行,雖然客戶不同,但是每個客戶對應的特徵是相同的。
  2. 縱向聯邦學習(VFL)
    縱向聯邦也被稱為特徵劃分的聯邦學習,適用於各參與方資料樣本重疊的情況,即參與方之間的資料樣本是對齊的,但是特徵不一樣。比如一家銀行和一家電商公司,他們的客戶可能是同一群人,但是同一個客戶在銀行和在電商對應的特徵顯然不同。
  3. 聯邦遷移學習(FTL)
    適用於各參與方的資料樣本和資料特徵都很少重疊的情況。以兩個參與方為例,其中一方代表源域,另一方代表目標域,在源域中學習特徵的分佈,將源域的特徵資訊遷移到目標域中,遷移過程中不移動本地資料。聯邦學習特別適用於異構資料(比如影象和文字)的聯邦學習問題。

三、聯邦學習架構

  1. 集中式拓撲架構
    設計一箇中心計算方,用於收集各方模型引數資訊並經過相應演算法更新後返回各方的任務。需要考慮中心計算方洩露隱私或受到攻擊的問題。
  2. 對等網路拓撲架構
    不存在中心計算節點,各參與方在聯邦學習框架中地位平等。

四、聯邦學習演算法現狀

  1. 橫向聯邦學習,常用於跨裝置端的場景。
  2. 縱向聯邦學習,常用於跨機構的場景。
  3. 聯邦遷移學習,在保護資料隱私的前提下,強調即使在異構特徵分佈的多方場景下,也能協同並提升模型效能。