聯邦學習概念

聯邦學習相關概念

聯邦學習是爲了解決數據孤島以及隱私保護和數據安全問題在多方安全計算框架上實現的機器學習算法。web

聯邦學習須要達到的效果

在這裏插入圖片描述

聯邦學習概念

在這裏插入圖片描述

聯邦學習的分類

根據孤島數據的不一樣分佈特色,提供不一樣的聯邦學習方案,數據分佈的三種狀況:
在這裏插入圖片描述
對應三種不一樣形式的聯邦學習方式:
在這裏插入圖片描述
橫向聯邦學習:適用於兩個數據集的用戶特徵重疊較多而用戶重疊較少的狀況下,把數據集按照橫向(即用戶維度)切分(跨行拼接樣本),並取出雙方用戶特徵相同而用戶不徹底相同的那部分數據進行訓練。Google在2017年提出了一個針對安卓手機模型更新的數據聯合建模方案[6-7]:在單個用戶使用安卓手機時,不斷在本地更新模型參數並將參數上傳到安卓雲上,從而使特徵維度相同的各數據擁有方創建聯合模型的一種聯邦學習方案算法

縱向聯邦學習:在兩個數據集的用戶重疊較多而用戶特徵重疊較少的狀況下,咱們把數據集按照縱向(即特徵維度)切分,並取出雙方用戶相同而用戶特徵不徹底相同的那部分數據進行訓練。這種方法叫作縱向聯邦學習。縱向聯邦學習就是將這些不一樣特徵在加密的狀態下加以聚合,以加強模型能力的聯邦學習。目前,邏輯迴歸模型,樹型結構模型和神經網絡模型等衆多機器學習模型已經逐漸被證明可以創建在這個聯邦體系上,安全

縱向聯邦學習系統構架

在這裏插入圖片描述
第一部分:加密樣本對齊。因爲兩家企業的用戶羣體並不是徹底重合,系統利用基於加密的用戶樣本對齊技術,在A和B不公開各自數據的前提下確認雙方的共有用戶,而且不暴露不互相重疊的用戶。以便聯合這些用戶的特徵進行建模。網絡

第二部分:加密模型訓練。在肯定共有用戶羣體後,就能夠利用這些數據訓練機器學習模型。爲了保證訓練過程當中數據的保密性,須要藉助第三方協做者C進行加密訓練。以線性迴歸模型爲例,訓練過程可分爲如下4步(如圖2b所示):
 第①步:A,B ,兩方分別對參數進行初始化,協做者C把公鑰分發給A和B,用以對訓練過程當中須要交換的數據進行加密;框架

 第②步:A和B之間以加密形式交互計算
以LR爲例,A,B雙方分別計算Sum Wa Xa 和 Sum Wb Xb,機器學習

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

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

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

在這裏插入圖片描述

第三部分:效果激勵。聯邦學習的一大特色就是它解決了爲何不一樣機構要加入聯邦共同建模的問題,即創建模型之後模型的效果會在實際應用中表現出來,並記錄在永久數據記錄機制(如區塊鏈)上。提供的數據多的機構會看到模型的效果也更好,這體如今對本身機構的貢獻和對他人的貢獻。這些模型對他人效果在聯邦機制上以分給各個機構反饋,並繼續激勵更多機構加入這一數據聯邦。
以上三個步驟的實施,即考慮了在多個機構間共同建模的隱私保護和效果,有考慮瞭如何獎勵貢獻數據多的機構,以一個共識機制來實現。因此,聯邦學習是一個「閉環」的學習機制。學習

聯邦遷移學習: 在兩個數據集的用戶與用戶特徵重疊都較少的狀況下,咱們不對數據進行切分,而能夠利用遷移學習來克服數據或標籤不足的狀況。這種方法叫作聯邦遷移學習。

安全計算計算算法

同態加密Homomorphic Encryption

做者:BinarySTD
連接:https://zhuanlan.zhihu.com/p/52808772
來源:知乎
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。

同態加密是一種用於在不解密的狀況下處理加密數據的技術。這將使敏感數據處理變得極其安全

同態加密與其餘加密算法最不一樣的地方在於,除了要保證靜態存儲數據的安全性外,還要能支持在機密的數據上(密文)進行數據處理操做f。

同態性:明文a op b = f(a) op f(b)
Op爲某種操做,好比加法,乘法,若是某個加密方案知足a + b = f(a) + f(b), 則其具備加法同態性。

同態加密構成:
KeyGen函數:密鑰生成函數。這個函數應該由數據擁有者運行,用於產生加密數據Data所用的密鑰Key。固然了,應該還有一些公開常數PP(Public Parameter);
Encrypt函數:加密函數。這個函數也由數據擁有者運行,用Key對用戶數據Data進行加密,獲得密文CT(Ciphertext);
Evaluate函數:評估函數。這個函數由第三方計算平臺運行,在用戶給定的數據處理方法f下,對密文進行操做,使得結果至關於用戶用密鑰Key對f(Data)進行加密。
Decrypt函數:解密函數。這個函數由數據擁有者運行,用於解密第三方計算平臺的處理的結果f(Data)。

Fully Homomorphic Encryption (FHE):HE方案支持任意給定的f函數,只要這個f函數能夠經過算法描述,用計算機實現。顯然,FHE方案是一個很是棒的方案,可是計算開銷極大,暫時還沒法在實際中使用。
Somewhat Homomorphic Encryption (SWHE):這意味着HE方案只支持一些特定的f函數。SWHE方案稍弱,但也意味着開銷會變得較小,容易實現,如今已經能夠在實際中使用。

同態性來自代數領域,通常包括四種類型:加法同態、乘法同態、減法同態和除法同態。同時知足加法同態和乘法同態,則意味着是代數同態,即全同態(Full Homomorphic)。同時知足四種同態性,則被稱爲算數同態。

對於計算機操做來說,實現了全同態意味着對於全部處理均可以實現同態性。也就是說,可使用這個加密函數完成各類加密後的運算(加減乘除、多項式求值、指數、對數、三角函數)。而那些只能實現部分特定操做的同態性,被稱爲特定同態(Somewhat Homomorphic)。 目前全同態的加密方案主要包括以下三種類型: 基於理想格(ideal lattice)的方案:Gentry 和 Halevi 在 2011 年提出的基於理想格的方案能夠實現 72 bit 的安全強度,對應的公鑰大小約爲 2.3 GB,同時刷新密文的處理時間須要幾十分鐘。 基於整數上近似 GCD 問題的方案:Dijk 等人在 2010 年提出的方案(及後續方案)採用了更簡化的概念模型,能夠下降公鑰大小至幾十 MB 量級。 基於帶擾動學習(Learning With Errors,LWE)問題的方案:Brakerski 和 Vaikuntanathan 等在 2011 年左右提出了相關方案;Lopez-Alt A 等在 2012 年設計出多密鑰全同態加密方案,接近實時多方安全計算的需求。