日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

隐私计算--联邦学习

發(fā)布時間:2025/3/21 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 隐私计算--联邦学习 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

聯(lián)邦學習

聯(lián)邦學習系統(tǒng)構(gòu)架

聯(lián)邦學習開源框架

聯(lián)邦學習分類

橫向聯(lián)邦學習

縱向聯(lián)邦學習

聯(lián)邦遷移學習

聯(lián)邦學習特點


參考推薦:

聯(lián)邦學習概念及應用

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?

聯(lián)邦學習

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

在聯(lián)邦學習白皮書中給出了明確的聯(lián)邦學習的定義:

  • 各方數(shù)據(jù)都保留在本地,不泄露隱私也不違反法規(guī);
  • 多個參與者聯(lián)合數(shù)據(jù)建立虛擬的共有模型,并且共同獲益的體系;
  • 在聯(lián)邦學習的體系下,各個參與者的身份和地位平等;
  • 聯(lián)邦學習的建模效果和將整個數(shù)據(jù)集放在一處建模的效果相同,或相差不大(在各個數(shù)據(jù)的用戶對齊或特征對齊的條件下);
  • 遷移學習是在用戶或特征不對齊情況下,也可以在數(shù)據(jù)間通過交換加密參數(shù)達到知識遷移的效果。

? ? ? ?綜上,聯(lián)邦學習的目的是:使多個參與方在保護數(shù)據(jù)隱私、滿足合法合規(guī)要求的前提下繼續(xù)進行機器學習,解決數(shù)據(jù)孤島問題。在實際中,孤島數(shù)據(jù)具有不同的分布特點,根據(jù)這些特點,可以提出相應的聯(lián)邦學習方案。以孤島數(shù)據(jù)的分布特點為依據(jù)可將聯(lián)邦學習分為三類:橫向聯(lián)邦學習、縱向聯(lián)邦學習和聯(lián)邦遷移學習。

聯(lián)邦學習是使得多方在不共享本地數(shù)據(jù)的前提下,進行多方協(xié)同訓練的機器學習方式。因此,他在實現(xiàn)功能的同時,能夠很好的保護數(shù)據(jù)隱私。目前聯(lián)邦學習支持的算法:SecureBoost,線性回歸,邏輯回歸,神經(jīng)網(wǎng)絡(luò)算法等。

1、聯(lián)邦學習優(yōu)勢

  • 數(shù)據(jù)隔離,數(shù)據(jù)不會泄露到外部,滿足用戶隱私保護和數(shù)據(jù)安全的需求;
  • 能夠保證模型質(zhì)量無損,不會出現(xiàn)負遷移,保證聯(lián)邦模型比割裂的獨立模型效果好;
  • 參與者地位對等,能夠?qū)崿F(xiàn)公平合作;
  • 能夠保證參與各方在保持獨立性的情況下,進行信息與模型參數(shù)的加密交換,并同時獲得成長。

聯(lián)邦學習系統(tǒng)構(gòu)架

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

?第一部分:加密樣本對齊。由于兩家企業(yè)的用戶群體并非完全重合,系統(tǒng)利用基于加密的用戶樣本對齊技術(shù),在 A 和 B 不公開各自數(shù)據(jù)的前提下確認雙方的共有用戶,并且不暴露不互相重疊的用戶,以便聯(lián)合這些用戶的特征進行建模。

第二部分:加密模型訓練。在確定共有用戶群體后,就可以利用這些數(shù)據(jù)訓練機器學習模型。為了保證訓練過程中數(shù)據(jù)的保密性,需要借助第三方協(xié)作者 C 進行加密訓練。以線性回歸模型為例,訓練過程可分為以下 4 步:

  • 協(xié)作者 C 把公鑰分發(fā)給 A 和 B,用以對訓練過程中需要交換的數(shù)據(jù)進行加密。
  • A 和 B 之間以加密形式交互用于計算梯度的中間結(jié)果。
  • A 和 B 分別基于加密的梯度值進行計算,同時 B 根據(jù)其標簽數(shù)據(jù)計算損失,并把結(jié)果匯總給 C。C 通過匯總結(jié)果計算總梯度值并將其解密。
  • C 將解密后的梯度分別回傳給 A 和 B,A 和 B 根據(jù)梯度更新各自模型的參數(shù)。

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

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

聯(lián)邦學習開源框架

目前業(yè)界中主要的聯(lián)邦學習框架有FATE、TensorFlow Federated、PaddleFL、Pysyft等。

2019年2月,微眾銀行開源FATE開源項目,截止2019年12月發(fā)布FATE vl.2版本,覆蓋橫向聯(lián)邦學習,縱向聯(lián)邦學習,聯(lián)邦遷移學習,得到了社區(qū)內(nèi)廣泛的關(guān)注與應用。同時,FATE 提供20多個聯(lián)邦學習算法組件,涵蓋LR、GBDT、DNN等主流算法,覆蓋常規(guī)商業(yè)應用場景建模需求。尤真值得注意的是,FATE提供了一站式聯(lián)邦模型服務(wù)解決方案,涵蓋聯(lián)邦特征工程,聯(lián)邦機器學習模型訓練,聯(lián)邦模型評估,聯(lián)邦在線推理,相比真他開源框架,在工業(yè)應用上高顯著的優(yōu)勢。

Open Minded開源的Pysyft框架,較好地支持橫向聯(lián)邦學習。該框架同時支持Tensorflow、Keras、Pytorch,為使用人員快速上手提供了較多的選擇。Pysyft提供了安全加密算子,數(shù)值運算算子,及聯(lián)邦學習算法,用戶也可以高效搭建自己的聯(lián)邦學習算法。相比較FATE,OpenMinded尚未提供高效的部署方案及serving端解決方案,相比工業(yè)應用,更適合作為高效的學術(shù)研究、原型開發(fā)的工具。

谷歌開源的TensorFlow Federated框架,截止2019年12月已發(fā)布至0.11版本,較好地支持橫向聯(lián)邦學習。其中,可以通過 Federated Learning (FL) API,與Tensorflow/Keras交互,完成分類、回歸等任務(wù)。用戶也可以通過真提供的Federated Core (FC) API,通過在強類型函數(shù)編程環(huán)境中將TensorFlow與分布式通信運算符相結(jié)合,簡潔地表這新的聯(lián)合算法。目前TensorFlow Federated在安全加密算子上缺少開放實現(xiàn),同時缺少對線上生產(chǎn)的完善支撐。

2019年11月,百庭宣布開源真聯(lián)邦學習框架PaddleFL。PaddleFL開源框架中包含了DiffieHellman等安全算子,及LR等機器學習算法。由于真開源時間較短,算子豐富程度遜于上述三個框架。PaddleFL的優(yōu)勢在于通過與百度機器學習開源框架Paddle Paddle的交互,吸引相關(guān)生態(tài)開發(fā)者加入開發(fā)。
?

聯(lián)邦學習分類

我們用數(shù)據(jù)集(I,X,Y)表示訓練樣本,按照樣本和特征的分布情況,可以將聯(lián)邦學習分為:

  • 橫向聯(lián)邦學習(Horizontal Federated Learning,HFL),適用于特征信息重疊較多的場景,通過提升樣本數(shù)量達到訓練模型效果的提升。比如兩個異地的銀行之間就可以構(gòu)建橫向聯(lián)邦學習模型。
  • 縱向聯(lián)邦學習(Vertical Federated Learning,VFL),適用于參與雙方樣本重疊較多時的場景,通過豐富樣本特征維度,實現(xiàn)機器學習模型的優(yōu)化。比如銀行和商業(yè)公司之間可以構(gòu)建縱向聯(lián)邦學習模型。
  • 聯(lián)邦遷移學習(Federated Transfer Learning,FTL),樣本和特征重疊都較少時,需要進行數(shù)據(jù)遷移。

橫向聯(lián)邦學習

橫向聯(lián)邦學習在兩個數(shù)據(jù)集的用戶特征重疊較多,而用戶重疊較少的情況下,我們把數(shù)據(jù)集按照橫向(即用戶維度)切分,并取出雙方用戶特征相同而用戶不完全相同的那部分數(shù)據(jù)進行訓練。這種方法叫做橫向聯(lián)邦學習。比如有兩家不同地區(qū)的銀行,它們的用戶群體分別來自各自所在的地區(qū),相互的交集很小。但是,它們的業(yè)務(wù)很相似,因此,記錄的用戶特征是相同的。此時,我們就可以使用橫向聯(lián)邦學習來構(gòu)建聯(lián)合模型。谷歌在2016年提出了一個針對安卓手機模型更新的數(shù)據(jù)聯(lián)合建模方案:在單個用戶使用安卓手機時,不斷在本地更新模型參數(shù)并將參數(shù)上傳到安卓云上,從而使特征維度相同的各數(shù)據(jù)擁有方建立聯(lián)合模型。

  • 參與方擁有的數(shù)據(jù)特征相同(包括標簽),即數(shù)據(jù)特征是對齊的;訓練樣本ID不同(或者交集很少)。
  • 橫向聯(lián)邦學習也稱為“樣本橫向劃分的聯(lián)邦學習”,或者跨樣本的聯(lián)邦學習。
  • 橫向聯(lián)邦學習可以增加訓練樣本的總量。

橫向聯(lián)邦模型?

訓練步驟:

  • participants locally compute training gradients, mask a selection of gradients withencryption, differential privacy?or secret sharing techniques, and send maskedresults to server;
  • Server performs secure aggregation without learning information about any participant;
  • Server send back the aggregated results to participants;
  • Participants update their respective model with the decrypted gradients.
  • ?在兩個數(shù)據(jù)集的用戶特征重疊較多,而用戶重疊較少的情況下,可將數(shù)據(jù)集按照橫向(用戶維度)進行切分,并取出雙方用戶特征相同而用戶不完全相同的那部分數(shù)據(jù)進行訓練,這種方法叫做橫向聯(lián)邦學習。Google在2016年提出了針對安卓手機模型更新的數(shù)據(jù)聯(lián)合建模方案[2, 3],在不同的用戶使用手機時,在手機本地持續(xù)地更新模型參數(shù),并將參數(shù)上傳至云端。從而利用不同用戶的、特征維度相同的這些數(shù)據(jù)建立一個橫向聯(lián)邦學習方案。
    ?

    縱向聯(lián)邦學習

    縱向聯(lián)邦學習在兩個數(shù)據(jù)集的用戶重疊較多而用戶特征重疊較少的情況下,我們把數(shù)據(jù)集按照縱向(即特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分數(shù)據(jù)進行訓練。這種方法叫做縱向聯(lián)邦學習。比如有兩個不同的機構(gòu),家是某地的銀行,另一家是同一個地方的電商。它們的用戶群體很有可能包含該地的大部分居民因此用戶的交集較大。但是,由于銀行記錄的都是用戶的收支行為與信用評級,而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小。縱向聯(lián)邦學習就是將這些不同特征在加密的狀態(tài)下加以聚合,以增強模型能力。目前,邏輯回歸模型、樹形結(jié)構(gòu)模型和神經(jīng)網(wǎng)絡(luò)模型等眾多機器學習模型已經(jīng)逐漸被證實能夠建立在此聯(lián)邦體系上。

    • 各個參與者擁有的樣本ID相同,數(shù)據(jù)特征不同縱向聯(lián)邦學習也稱為“按特征劃分的聯(lián)邦學習”。
    • 參與方擁有相同的樣本ID。
    • 參與者之間需要交換中間結(jié)果,不交換原始數(shù)據(jù)。
    • 通常應用于企業(yè)間的聯(lián)邦學習場景。

    縱向聯(lián)邦模型?

    訓練步驟:

    part1:Encrypted entity alignment,即隱私求交(PSI);part2:Encrypted model training.

  • collaborator C creates encryption pairs, send public key to A and B;
  • A and B encrypt and exchange the intermediate results for gradient and loss calculations;
  • A and B computes encrypted gradients and adds additional mask, respectively,and B also computes encrypted loss; A and B send encrypted values to C;
  • C decrypts and send the decrypted gradients and loss back to A and B; A and B unmask the gradients, update the model parameters accordingly.
  • ?在兩個數(shù)據(jù)集的用戶重疊較多,而用戶特征重疊較少的情況下,可將數(shù)據(jù)集按照縱向(特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分數(shù)據(jù)進行訓練,這種方法叫做縱向聯(lián)邦學習[1]。一個常見的例子是:有兩個不同機構(gòu),一家是某地的銀行,另一家是同一個地方的電商。它們的用戶群體很有可能包含該地的大部分居民,因此用戶的交集較大。但是,由于銀行記錄的都是用戶的收支行為與信用評級,而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小。縱向聯(lián)邦學習就是將這些不同特征在加密的狀態(tài)下加以聚合,以增強模型能力的聯(lián)邦學習。

    目前,邏輯回歸模型、樹型結(jié)構(gòu)模型和神經(jīng)網(wǎng)絡(luò)模型等眾多機器學習模型已經(jīng)逐漸被證實能夠建立在這個縱向聯(lián)邦學習體系上。
    ?

    聯(lián)邦遷移學習

    聯(lián)邦遷移學習在兩個數(shù)據(jù)集的用戶與用戶特征重疊都較少的情況下,我們不對數(shù)據(jù)進行切分,而利用遷移學習國來克服數(shù)據(jù)或標簽不足的情況。這種方法叫做聯(lián)邦遷移學習。比如有兩個不同機構(gòu),一家是位于中國的銀行,另一家是位于美國的電商。由于受地域限制,這兩家機構(gòu)的用戶群體交集很小。同時,由于機構(gòu)類型的不同,二者的數(shù)據(jù)特征也只有小部分重合。在這種情況下,要想進行有效的聯(lián)邦學習,就必須引入遷移學習,來解決單邊數(shù)據(jù)規(guī)模小和標簽樣本少的問題,從而提升模型的效果。

    在兩個數(shù)據(jù)集的用戶與用戶特征重疊都較少的情況下,我們部隊數(shù)據(jù)進行切分,而利用遷移學習克服數(shù)據(jù)或標簽不足的情況,這種方法叫做聯(lián)邦遷移學習。還是借用在縱向聯(lián)邦學習小節(jié)中銀行和電商的例子,不同的是,銀行和電商不在同一個地方,而是相去甚遠。這導致,受到地域的限制,銀行和電商的用戶交集很小。同時,二者的數(shù)據(jù)特征交集也很小。在這種情況下,需要在聯(lián)邦學習中引入遷移學習,用于解決單邊數(shù)據(jù)規(guī)模小、標簽樣本少的問題,來提升模型的效果。

    聯(lián)邦學習特點

    • 數(shù)據(jù)絕對掌握:每一個參與方數(shù)據(jù)都不離開本地,模型信息在各參與方之間以加密的形式傳輸,且
    • 保證不能由模型推測出原始數(shù)據(jù);
    • 參與方不穩(wěn)定:不同參與方在計算能力、通信穩(wěn)定性方面存在差異,導致聯(lián)邦學習相對于分布式機器學習存在不穩(wěn)定情況;
    • 通信代價高:參與方不穩(wěn)定造成通信代價高;
    • 數(shù)據(jù)非獨立同分布:不同參與方數(shù)據(jù)分布不同;
    • 負載不均衡:參與方在數(shù)據(jù)量級上存在差異,但聯(lián)邦學習中無法實現(xiàn)負載均衡。

    注:僅作資料整理!!

    如有錯誤、侵權(quán),請聯(lián)系筆者更改刪除!!!?

    《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的隐私计算--联邦学习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。