隐私计算--联邦学习
目錄
聯邦學習
聯邦學習系統構架
聯邦學習開源框架
聯邦學習分類
橫向聯邦學習
縱向聯邦學習
聯邦遷移學習
聯邦學習特點
參考推薦:
聯邦學習概念及應用
https://blog.csdn.net/cao812755156/article/details/89598410?
https://blog.csdn.net/ms961516792/article/details/111875062?
https://blog.csdn.net/feng_zhiyu/article/details/108366482?
https://blog.csdn.net/weixin_44118034/article/details/111664918?
https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/116565815?
https://blog.csdn.net/thormas1996/article/details/90749913?
https://blog.csdn.net/weixin_42933718/article/details/104675702?
https://blog.csdn.net/hellompc/article/details/103779484?
https://blog.csdn.net/feng_zhiyu/article/details/108366439?
https://blog.csdn.net/sunyaowu315/article/details/96744126?
https://blog.csdn.net/Aibiabcheng/article/details/109956555?
https://blog.csdn.net/weixin_45439861/article/details/100670390?
https://blog.csdn.net/feng_zhiyu/article/details/108366704?
聯邦學習
聯邦學習(Federated Learning)是一種新興的人工智能基礎技術,在 2016 年由谷歌最先提出,原本用于解決安卓手機終端用戶在本地更新模型的問題,其設計目標是在保障大數據交換時的信息安全、保護終端數據和個人數據隱私、保證合法合規的前提下,在多參與方或多計算結點之間開展高效率的機器學習。其中,聯邦學習可使用的機器學習算法不局限于神經網絡,還包括隨機森林等重要算法。聯邦學習有望成為下一代人工智能協同算法和協作網絡的基礎。
在聯邦學習白皮書中給出了明確的聯邦學習的定義:
- 各方數據都保留在本地,不泄露隱私也不違反法規;
- 多個參與者聯合數據建立虛擬的共有模型,并且共同獲益的體系;
- 在聯邦學習的體系下,各個參與者的身份和地位平等;
- 聯邦學習的建模效果和將整個數據集放在一處建模的效果相同,或相差不大(在各個數據的用戶對齊或特征對齊的條件下);
- 遷移學習是在用戶或特征不對齊情況下,也可以在數據間通過交換加密參數達到知識遷移的效果。
? ? ? ?綜上,聯邦學習的目的是:使多個參與方在保護數據隱私、滿足合法合規要求的前提下繼續進行機器學習,解決數據孤島問題。在實際中,孤島數據具有不同的分布特點,根據這些特點,可以提出相應的聯邦學習方案。以孤島數據的分布特點為依據可將聯邦學習分為三類:橫向聯邦學習、縱向聯邦學習和聯邦遷移學習。
聯邦學習是使得多方在不共享本地數據的前提下,進行多方協同訓練的機器學習方式。因此,他在實現功能的同時,能夠很好的保護數據隱私。目前聯邦學習支持的算法:SecureBoost,線性回歸,邏輯回歸,神經網絡算法等。
1、聯邦學習優勢
- 數據隔離,數據不會泄露到外部,滿足用戶隱私保護和數據安全的需求;
- 能夠保證模型質量無損,不會出現負遷移,保證聯邦模型比割裂的獨立模型效果好;
- 參與者地位對等,能夠實現公平合作;
- 能夠保證參與各方在保持獨立性的情況下,進行信息與模型參數的加密交換,并同時獲得成長。
聯邦學習系統構架
以包含兩個數據擁有方(即企業 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 各自的數據均保留在本地,且訓練中的數據交互也不會導致數據隱私泄露。因此,雙方在聯邦學習的幫助下得以實現合作訓練模型。
第三部分:效果激勵。聯邦學習的一大特點就是它解決了為什么不同機構要加入聯邦共同建模的問題,即建立模型以后模型的效果會在實際應用中表現出來,并記錄在永久數據記錄機制(如區塊鏈)上。提供數據多的機構所獲得的模型效果會更好,模型效果取決于數據提供方對自己和他人的貢獻。這些模型的效果在聯邦機制上會分發給各個機構反饋,并繼續激勵更多機構加入這一數據聯邦。以上三部分的實施,既考慮了在多個機構間共同建模的隱私保護和效果,又考慮了以一個共識機制獎勵貢獻數據多的機構。所以,聯邦學習是一個「閉環」的學習機制。
聯邦學習開源框架
目前業界中主要的聯邦學習框架有FATE、TensorFlow Federated、PaddleFL、Pysyft等。
2019年2月,微眾銀行開源FATE開源項目,截止2019年12月發布FATE vl.2版本,覆蓋橫向聯邦學習,縱向聯邦學習,聯邦遷移學習,得到了社區內廣泛的關注與應用。同時,FATE 提供20多個聯邦學習算法組件,涵蓋LR、GBDT、DNN等主流算法,覆蓋常規商業應用場景建模需求。尤真值得注意的是,FATE提供了一站式聯邦模型服務解決方案,涵蓋聯邦特征工程,聯邦機器學習模型訓練,聯邦模型評估,聯邦在線推理,相比真他開源框架,在工業應用上高顯著的優勢。
Open Minded開源的Pysyft框架,較好地支持橫向聯邦學習。該框架同時支持Tensorflow、Keras、Pytorch,為使用人員快速上手提供了較多的選擇。Pysyft提供了安全加密算子,數值運算算子,及聯邦學習算法,用戶也可以高效搭建自己的聯邦學習算法。相比較FATE,OpenMinded尚未提供高效的部署方案及serving端解決方案,相比工業應用,更適合作為高效的學術研究、原型開發的工具。
谷歌開源的TensorFlow Federated框架,截止2019年12月已發布至0.11版本,較好地支持橫向聯邦學習。其中,可以通過 Federated Learning (FL) API,與Tensorflow/Keras交互,完成分類、回歸等任務。用戶也可以通過真提供的Federated Core (FC) API,通過在強類型函數編程環境中將TensorFlow與分布式通信運算符相結合,簡潔地表這新的聯合算法。目前TensorFlow Federated在安全加密算子上缺少開放實現,同時缺少對線上生產的完善支撐。
2019年11月,百庭宣布開源真聯邦學習框架PaddleFL。PaddleFL開源框架中包含了DiffieHellman等安全算子,及LR等機器學習算法。由于真開源時間較短,算子豐富程度遜于上述三個框架。PaddleFL的優勢在于通過與百度機器學習開源框架Paddle Paddle的交互,吸引相關生態開發者加入開發。
?
聯邦學習分類
我們用數據集(I,X,Y)表示訓練樣本,按照樣本和特征的分布情況,可以將聯邦學習分為:
- 橫向聯邦學習(Horizontal Federated Learning,HFL),適用于特征信息重疊較多的場景,通過提升樣本數量達到訓練模型效果的提升。比如兩個異地的銀行之間就可以構建橫向聯邦學習模型。
- 縱向聯邦學習(Vertical Federated Learning,VFL),適用于參與雙方樣本重疊較多時的場景,通過豐富樣本特征維度,實現機器學習模型的優化。比如銀行和商業公司之間可以構建縱向聯邦學習模型。
- 聯邦遷移學習(Federated Transfer Learning,FTL),樣本和特征重疊都較少時,需要進行數據遷移。
橫向聯邦學習
橫向聯邦學習在兩個數據集的用戶特征重疊較多,而用戶重疊較少的情況下,我們把數據集按照橫向(即用戶維度)切分,并取出雙方用戶特征相同而用戶不完全相同的那部分數據進行訓練。這種方法叫做橫向聯邦學習。比如有兩家不同地區的銀行,它們的用戶群體分別來自各自所在的地區,相互的交集很小。但是,它們的業務很相似,因此,記錄的用戶特征是相同的。此時,我們就可以使用橫向聯邦學習來構建聯合模型。谷歌在2016年提出了一個針對安卓手機模型更新的數據聯合建模方案:在單個用戶使用安卓手機時,不斷在本地更新模型參數并將參數上傳到安卓云上,從而使特征維度相同的各數據擁有方建立聯合模型。
- 參與方擁有的數據特征相同(包括標簽),即數據特征是對齊的;訓練樣本ID不同(或者交集很少)。
- 橫向聯邦學習也稱為“樣本橫向劃分的聯邦學習”,或者跨樣本的聯邦學習。
- 橫向聯邦學習可以增加訓練樣本的總量。
橫向聯邦模型?
訓練步驟:
?在兩個數據集的用戶特征重疊較多,而用戶重疊較少的情況下,可將數據集按照橫向(用戶維度)進行切分,并取出雙方用戶特征相同而用戶不完全相同的那部分數據進行訓練,這種方法叫做橫向聯邦學習。Google在2016年提出了針對安卓手機模型更新的數據聯合建模方案[2, 3],在不同的用戶使用手機時,在手機本地持續地更新模型參數,并將參數上傳至云端。從而利用不同用戶的、特征維度相同的這些數據建立一個橫向聯邦學習方案。
?
縱向聯邦學習
縱向聯邦學習在兩個數據集的用戶重疊較多而用戶特征重疊較少的情況下,我們把數據集按照縱向(即特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分數據進行訓練。這種方法叫做縱向聯邦學習。比如有兩個不同的機構,家是某地的銀行,另一家是同一個地方的電商。它們的用戶群體很有可能包含該地的大部分居民因此用戶的交集較大。但是,由于銀行記錄的都是用戶的收支行為與信用評級,而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小??v向聯邦學習就是將這些不同特征在加密的狀態下加以聚合,以增強模型能力。目前,邏輯回歸模型、樹形結構模型和神經網絡模型等眾多機器學習模型已經逐漸被證實能夠建立在此聯邦體系上。
- 各個參與者擁有的樣本ID相同,數據特征不同縱向聯邦學習也稱為“按特征劃分的聯邦學習”。
- 參與方擁有相同的樣本ID。
- 參與者之間需要交換中間結果,不交換原始數據。
- 通常應用于企業間的聯邦學習場景。
縱向聯邦模型?
訓練步驟:
part1:Encrypted entity alignment,即隱私求交(PSI);part2:Encrypted model training.
?在兩個數據集的用戶重疊較多,而用戶特征重疊較少的情況下,可將數據集按照縱向(特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分數據進行訓練,這種方法叫做縱向聯邦學習[1]。一個常見的例子是:有兩個不同機構,一家是某地的銀行,另一家是同一個地方的電商。它們的用戶群體很有可能包含該地的大部分居民,因此用戶的交集較大。但是,由于銀行記錄的都是用戶的收支行為與信用評級,而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小。縱向聯邦學習就是將這些不同特征在加密的狀態下加以聚合,以增強模型能力的聯邦學習。
目前,邏輯回歸模型、樹型結構模型和神經網絡模型等眾多機器學習模型已經逐漸被證實能夠建立在這個縱向聯邦學習體系上。
?
聯邦遷移學習
聯邦遷移學習在兩個數據集的用戶與用戶特征重疊都較少的情況下,我們不對數據進行切分,而利用遷移學習國來克服數據或標簽不足的情況。這種方法叫做聯邦遷移學習。比如有兩個不同機構,一家是位于中國的銀行,另一家是位于美國的電商。由于受地域限制,這兩家機構的用戶群體交集很小。同時,由于機構類型的不同,二者的數據特征也只有小部分重合。在這種情況下,要想進行有效的聯邦學習,就必須引入遷移學習,來解決單邊數據規模小和標簽樣本少的問題,從而提升模型的效果。
在兩個數據集的用戶與用戶特征重疊都較少的情況下,我們部隊數據進行切分,而利用遷移學習克服數據或標簽不足的情況,這種方法叫做聯邦遷移學習。還是借用在縱向聯邦學習小節中銀行和電商的例子,不同的是,銀行和電商不在同一個地方,而是相去甚遠。這導致,受到地域的限制,銀行和電商的用戶交集很小。同時,二者的數據特征交集也很小。在這種情況下,需要在聯邦學習中引入遷移學習,用于解決單邊數據規模小、標簽樣本少的問題,來提升模型的效果。
聯邦學習特點
- 數據絕對掌握:每一個參與方數據都不離開本地,模型信息在各參與方之間以加密的形式傳輸,且
- 保證不能由模型推測出原始數據;
- 參與方不穩定:不同參與方在計算能力、通信穩定性方面存在差異,導致聯邦學習相對于分布式機器學習存在不穩定情況;
- 通信代價高:參與方不穩定造成通信代價高;
- 數據非獨立同分布:不同參與方數據分布不同;
- 負載不均衡:參與方在數據量級上存在差異,但聯邦學習中無法實現負載均衡。
注:僅作資料整理!!
如有錯誤、侵權,請聯系筆者更改刪除!!!?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的隐私计算--联邦学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SM3密码杂凑算法
- 下一篇: 隐私计算--差分隐私