聯邦學習(Federated Learning)


原文鏈接:https://blog.csdn.net/cao812755156/article/details/89598410  https://zhuanlan.zhihu.com/p/79284686

聯邦學習簡介

聯邦學習(Federated Learning)是一種新興的人工智能基礎技術,在 2016 年由谷歌最先提出,原本用於解決安卓手機終端用戶在本地更新模型的問題,其設計目標是在保障大數據交換時的信息安全、保護終端數據和個人數據隱私、保證合法合規的前提下,在多參與方或多計算結點之間開展高效率的機器學習。其中,聯邦學習可使用的機器學習算法不局限於神經網絡,還包括隨機森林等重要算法。聯邦學習有望成為下一代人工智能協同算法和協作網絡的基礎。

聯邦學習的系統構架

以包含兩個數據擁有方(即企業 A 和 B)的場景為例介紹聯邦學習的系統構架。該構架可擴展至包含多個數據擁有方的場景。假設企業 A 和 B 想聯合訓練一個機器學習模型,它們的業務系統分別擁有各自用戶的相關數據。此外,企業 B 還擁有模型需要預測的標簽數據。出於數據隱私保護和安全考慮,A 和 B 無法直接進行數據交換,可使用聯邦學習系統建立模型。聯邦學習系統構架由三部分構成,如圖所示。

第一部分:加密樣本對齊。由於兩家企業的用戶群體並非完全重合,系統利用基於加密的用戶樣本對齊技術,在 A 和 B 不公開各自數據的前提下確認雙方的共有用戶,並且不暴露不互相重疊的用戶,以便聯合這些用戶的特征進行建模。第二部分:加密模型訓練。在確定共有用戶群體后,就可以利用這些數據訓練機器學習模型。為了保證訓練過程中數據的保密性,需要借助第三方協作者 C 進行加密訓練。以線性回歸模型為例,訓練過程可分為以下 4 步(如圖 所示):

第①步:協作者 C 把公鑰分發給 A 和 B,用以對訓練過程中需要交換的數據進行加密。

第②步:A 和 B 之間以加密形式交互用於計算梯度的中間結果。

第③步:A 和 B 分別基於加密的梯度值進行計算,同時 B 根據其標簽數據計算損失,並把結果匯總給 C。C 通過匯總結果計算總梯度值並將其解密。

第④步:C 將解密后的梯度分別回傳給 A 和 B,A 和 B 根據梯度更新各自模型的參數。

迭代上述步驟直至損失函數收斂,這樣就完成了整個訓練過程。在樣本對齊及模型訓練過程中,A 和 B 各自的數據均保留在本地,且訓練中的數據交互也不會導致數據隱私泄露。因此,雙方在聯邦學習的幫助下得以實現合作訓練模型。

第三部分:效果激勵。聯邦學習的一大特點就是它解決了為什么不同機構要加入聯邦共同建模的問題,即建立模型以后模型的效果會在實際應用中表現出來,並記錄在永久數據記錄機制(如區塊鏈)上。提供數據多的機構所獲得的模型效果會更好,模型效果取決於數據提供方對自己和他人的貢獻。這些模型的效果在聯邦機制上會分發給各個機構反饋,並繼續激勵更多機構加入這一數據聯邦。以上三部分的實施,既考慮了在多個機構間共同建模的隱私保護和效果,又考慮了以一個共識機制獎勵貢獻數據多的機構。所以,聯邦學習是一個「閉環」的學習機制。

聯邦學習優勢

(1)數據隔離,數據不會泄露到外部,滿足用戶隱私保護和數據安全的需求;

(2)能夠保證模型質量無損,不會出現負遷移,保證聯邦模型比割裂的獨立模型效果好;

(3)參與者地位對等,能夠實現公平合作;

(4)能夠保證參與各方在保持獨立性的情況下,進行信息與模型參數的加密交換,並同時獲得成長。

聯邦學習的分類

我們把每個參與共同建模的企業稱為參與方,根據多參與方之間數據分布的不同,把聯邦學習分為三類:橫向聯邦學習、縱向聯邦學習和聯邦遷移學習。

橫向聯邦學習

適用場景:

橫向聯邦學習的本質是樣本的聯合,適用於參與者間業態相同但觸達客戶不同,即特征重疊多,用戶重疊少時的場景,比如不同地區的銀行間,他們的業務相似(特征相似),但用戶不同(樣本不同)

學習過程:

step1:參與方各自從服務器A下載最新模型;

step2:每個參與方利用本地數據訓練模型,加密梯度上傳給服務器A,服務器A聚合各用戶的梯度更新模型參數;

step3:服務器A返回更新后的模型給各參與方;

step4:各參與方更新各自模型。

步驟解讀:在傳統的機器學習建模中,通常是把模型訓練需要的數據集合到一個數據中心然后再訓練模型,之后預測。在橫向聯邦學習中,可以看作是基於樣本的分布式模型訓練,分發全部數據到不同的機器,每台機器從服務器下載模型,然后利用本地數據訓練模型,之后返回給服務器需要更新的參數;服務器聚合各機器上的返回的參數,更新模型,再把最新的模型反饋到每台機器。

在這個過程中,每台機器下都是相同且完整的模型,且機器之間不交流不依賴,在預測時每台機器也可以獨立預測,可以把這個過程看作成基於樣本的分布式模型訓練。谷歌最初就是采用橫向聯邦的方式解決安卓手機終端用戶在本地更新模型的問題的。

縱向聯邦學習

適用場景:

縱向聯邦學習的本質是特征的聯合,適用於用戶重疊多,特征重疊少的場景,比如同一地區的商超和銀行,他們觸達的用戶都為該地區的居民(樣本相同),但業務不同(特征不同)。

學習過程:

縱向聯邦學習的本質是交叉用戶在不同業態下的特征聯合,比如商超A和銀行B,在傳統的機器學習建模過程中,需要將兩部分數據集中到一個數據中心,然后再將每個用戶的特征join成一條數據用來訓練模型,所以就需要雙方有用戶交集(基於join結果建模),並有一方存在label。其學習步驟如上圖所示,分為兩大步:

第一步:加密樣本對齊。是在系統級做這件事,因此在企業感知層面不會暴露非交叉用戶。

第二步:對齊樣本進行模型加密訓練:

step1:由第三方C向A和B發送公鑰,用來加密需要傳輸的數據;

step2:A和B分別計算和自己相關的特征中間結果,並加密交互,用來求得各自梯度和損失;

step3:A和B分別計算各自加密后的梯度並添加掩碼發送給C,同時B計算加密后的損失發送給C;

step4:C解密梯度和損失后回傳給A和B,A、B去除掩碼並更新模型。

步驟解讀:我們以線性回歸為例具體說明其訓練過程。

存在數據集 [公式] [公式] ,A和B分別初始化模型參數 [公式]

其目標函數為:[公式]

令:[公式] ,且對原目標函數同態加密后可表示為:

[公式] , [公式] 表示同態加密, [公式] , [公式] , [公式] ,

因此有 [公式] ,同理令 [公式] ,

梯度可表示如下:

具體訓練步驟如下:

在整個過程中參與方都不知道另一方的數據和特征,且訓練結束后參與方只得到自己側的模型參數,即半模型。

預測過程:

由於各參與方只能得到與自己相關的模型參數,預測時需要雙方協作完成,如下圖所示:

共同建模的結果:

  • 雙方均獲得數據保護
  • 共同提升模型效果
  • 模型無損失

聯邦遷移學習

適用場景:

當參與者間特征和樣本重疊都很少時可以考慮使用聯邦遷移學習,如不同地區的銀行和商超間的聯合。主要適用於以深度神經網絡為基模型的場景。

遷移學習介紹:

遷移學習,是指利用數據、任務、或模型之間的相似性,將在源領域學習過的模型,應用於 目標領域的一種學習過程。

其實我們人類對於遷移學習這種能力,是與生俱來的。比如,我們如果已經會打乒乓球,就可以類比着學習打網球。再比如,我們如果已經會下中國象棋,就可以類比着下國際象棋。因為這些活動之間,往往有着極高的相似性。生活中常用的“舉一反三”、“照貓畫虎”就很好地體現了遷移學習的思想。

遷移學習的核心是,找到源領域和目標領域之間的相似性,舉一個楊強教授經常舉的例子來說明:我們都知道在中國大陸開車時,駕駛員坐在左邊,靠馬路右側行駛。這是基本的規則。然而,如果在英國、香港等地區開車,駕駛員是坐在右邊,需要靠馬路左側行駛。那么,如果我們從中國大陸到了香港,應該如何快速地適應 他們的開車方式呢?訣竅就是找到這里的不變量:不論在哪個地區,駕駛員都是緊靠馬路中間。這就是我們這個開車問題中的不變量。 找到相似性 (不變量),是進行遷移學習的核心。

學習過程:

聯邦遷移學習的步驟與縱向聯邦學習相似,只是中間傳遞結果不同(實際上每個模型的中間傳遞結果都不同)。這里重點講一下聯邦遷移的思想:

源域: [公式] ,目標域: [公式] ,我們假設源域和目標域間存在共同樣本 [公式] ,對於其共同樣本存在 [公式] , [公式] 分別為源域和目標域間的隱層特征不變量,我們定義對目標域的分類函數為: [公式]

目標函數:

[公式]

[公式]

整體目標函數為: [公式]

使用BP算法,根據目標函數 [公式] 分別對 [公式] 求梯度,雙方交互計算梯度和損失需要用到的中間結果,重復迭代直至收斂。整個學習過程是利用A、B之間共同樣本來學習兩者間各自的特征不變量表示 [公式],同時利用A的所有樣本label [公式] 和A的不變量特征 [公式] 學習分類器。在這個階段中,[聯邦] 體現在A,B可以通過安全交互中間結果共同學習一個模型,[遷移] 體現在B遷移了A的分類能力。在預測時, [公式] 依賴於 由[公式] 組成的分類器,因此和縱向聯邦相同需要兩者協作來完成。本節參考文章:Secure Federated Transfer Learning

 

聯邦學習源碼

1.https://www.tensorflow.org/federated/

2.https://github.com/WeBankFinTech/FATE

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM