人工智能算法分析 課件 【ch07】聯(lián)邦學習_第1頁
人工智能算法分析 課件 【ch07】聯(lián)邦學習_第2頁
人工智能算法分析 課件 【ch07】聯(lián)邦學習_第3頁
人工智能算法分析 課件 【ch07】聯(lián)邦學習_第4頁
人工智能算法分析 課件 【ch07】聯(lián)邦學習_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

人工智能算法分析新知識體系人工智能教材聯(lián)邦學習第七章聯(lián)邦學習及其

研究現(xiàn)狀017.1.l聯(lián)邦學習概念由每一個擁有數(shù)據(jù)源的組織訓練一個模型,之后讓各個組織在各自的模型上彼此交流溝通,最終通過模型聚合得到一個全局模型。為了確保用戶隱私和數(shù)據(jù)安全,各組織間交換模型信息的過程將會被精心設計,使得沒有組織能夠猜測到任何其他組織的隱私數(shù)據(jù)內容。同時,當構建全局模型時,各數(shù)據(jù)源仿佛己被整合一起。聯(lián)邦學習旨在建立一個基于分布數(shù)據(jù)集的聯(lián)邦學習模型。聯(lián)邦學習包括兩個過程,分別是模型訓練和模型推理。在模型訓練過程中,模型的相關信息能夠在各方之間交換(或以加密形式進行交換但數(shù)據(jù)不能)這一交換不會泄露每個站點上數(shù)據(jù)的任何受保護的隱私部分。己訓練好的聯(lián)邦學習模型可以置于聯(lián)邦學習系統(tǒng)的各參與方,也可以在多方之間共享。7.1.l聯(lián)邦學習概念具體來講:聯(lián)邦學習是一種具有以下特征的用來建立機器學習模型的算法框架由兩個或兩個以上的聯(lián)邦學習參與方協(xié)作構建一個共享的機器學習模型。每一個參與方都擁有若干能夠用來訓練模型的訓練數(shù)據(jù)。在聯(lián)邦學習模型的訓練過程中,每一個參與方擁有的數(shù)據(jù)都不會離開該參與方,即數(shù)據(jù)不離開數(shù)據(jù)擁有者。聯(lián)邦學習模型的相關信息能夠以加密方式在各方之間進行傳輸和交換,并且需要保證任何一個參與方都不能推測出其他參與方的原始數(shù)據(jù)。聯(lián)邦學習模型的性能要能夠充分逼近理想模型(是指通過將所有訓練數(shù)據(jù)集中在一起并訓練獲得的機器學習模型)的性能。7.1.2聯(lián)邦學習研究現(xiàn)狀根據(jù)應用場景的不同,聯(lián)邦學習系統(tǒng)可能涉及也可能不涉及中央協(xié)調方。圖7.1中展示了一種包括協(xié)調方的聯(lián)邦學習架構示例。在此場景中,協(xié)調方是一臺聚合服務器(也稱為參數(shù)服務器),可以將初始模型發(fā)送給各參與方A~C。參與方A~C分別使用各自的數(shù)據(jù)集訓練該模型,將模型權重更新并發(fā)送給聚合服務器。之后,聚合服務器將從參與方處接收到的模型權重更新數(shù)據(jù)聚合起來(例如,使用聯(lián)邦平均算法,并將聚合后的模型權重更新數(shù)據(jù)發(fā)回給參與方)。這一過程將會重復進行,直至模型收斂、達到最大迭代次數(shù)或達到最長訓練時間。在這種體系結構下,參與方的原始數(shù)據(jù)永遠不會離開自己。這種方法不僅保護了用戶的隱私和數(shù)據(jù)安全,還減少了發(fā)送原始數(shù)據(jù)所帶來的通信開銷。此外,聚合服務器和參與方還能使用加密方法(如同態(tài)加密)來防止模型信息泄露。7.1.2聯(lián)邦學習研究現(xiàn)狀聯(lián)邦學習架構也能被設計為對等(Peer-to-Peer,P2P)網絡的方式,即不需要協(xié)調方。這進一步確保了安全性,因為各方無須借助第三方便可以直接通信,如圖7.2所示。這種體系架構的優(yōu)點是提高了安全性,但可能需要更多的計算操作來對消息內容進行加密和解密。聯(lián)邦平均算法02聯(lián)邦平均算法(FedAvg)一般用于橫向聯(lián)邦學習算法的模型訓練。我們將會在本節(jié)中以客戶一服務器架構為例,對聯(lián)邦平均算法及其改進算法進行介紹。為了區(qū)別于并行小批量隨機梯度下降算法(ParallelMini-BatchSOD),聯(lián)邦平均算法也稱為并行重啟的隨機梯度下降算法(ParallelRestartedSOD)或局部隨機梯度下降算法(LocalSOD)。7.2.1聯(lián)邦優(yōu)化對于一個數(shù)據(jù)中心內的分布式優(yōu)化,確保每一臺機器都有獨立同分布的(IndependentandIdenticallyDistributed,IID)數(shù)據(jù)集是容易辦到的,因此所有參與方的模型參數(shù)更新操作非常相似。而在聯(lián)邦優(yōu)化中,這一條件難以實現(xiàn),因為由不同參與方擁有的數(shù)據(jù)可能有著完全不同的分布,即我們不能對分布式數(shù)據(jù)集進行IID假設。例如,相似的參與方可能擁有相似的本地訓練數(shù)據(jù),而兩個隨機選取的參與方可能擁有不同的訓練數(shù)據(jù),因此它們會產生不同的模型參數(shù)更新。01數(shù)據(jù)集的非獨立同分布對于一個數(shù)據(jù)中心內的分布式優(yōu)化,可以將數(shù)據(jù)均勻地分配到各工作機器中。然而在現(xiàn)實環(huán)境中,聯(lián)邦學習的不同參與方通常擁有不同規(guī)模的訓練數(shù)據(jù)集。例如,相似的參與方可能擁有相似體量的本地訓練數(shù)據(jù)集,而兩個隨機選取的參與方可能擁有不同大小的訓練數(shù)據(jù)集。02不平衡的數(shù)據(jù)量7.2.l聯(lián)邦優(yōu)化對于一個數(shù)據(jù)中心內的分布式優(yōu)化,并行工作機器的數(shù)量是可以輕易控制的。然而,由于機器學習一般需要大量數(shù)據(jù),使用聯(lián)邦學習的應用可能需要涉及許多參與方,尤其是使用移動設備的參與方。每一個用戶都可以在理論上參與聯(lián)邦學習,這使得參與方的數(shù)量和分散程度遠遠超過數(shù)據(jù)中心的情況。03數(shù)量很大的參與方慢速且不穩(wěn)定的通信連接為了應對聯(lián)邦優(yōu)化中面臨的挑戰(zhàn),谷歌的H.BrendanMcMahan等人提出使用聯(lián)邦平均算法來求解聯(lián)邦優(yōu)化問題。聯(lián)邦平均算法可以用于深度神經網絡訓練中遇到的非凸損失函數(shù)(損失函數(shù)是神經網絡模型參數(shù)的非凸函數(shù),常見于深度神經網絡模型)。聯(lián)邦平均算法適用于任何下列有限加和形式的損失函數(shù)047.2.1聯(lián)邦優(yōu)化

隨機梯度下降(SGD)及其一系列變形是最常用的深度學習優(yōu)化算法。許多在深度學習領域的發(fā)展都能理解為模型結構的調整(因此損失函數(shù)得到減?。蛊淠芨子谕ㄟ^簡單的基于梯度的方法來進行優(yōu)化。鑒于深度學習的廣泛應用,我們很自然地想到基于隨機梯度下降來搭建聯(lián)邦優(yōu)化算法。

隨機梯度下降可以方便地用于聯(lián)邦優(yōu)化中,其中,一個簡單的小批量(Mini-Batch)梯度計算(以隨機選取的一個參與方為例)在每一輪訓練中都會被執(zhí)行。在這里,“一輪”表示將本地模型更新從參與方發(fā)送至服務器和從服務器,并將聚合結果返回給參與方,即圖7.3中所包含的步驟①~④。這種方法在計算上是非常有效的,但需要經過非常多輪次的迭代訓練才能得到令人滿意的模型。例如,即便使用了批標準化(BatchNormalization,BN)這樣的先進方法,以在MINST數(shù)據(jù)集上的訓練為例,當選擇小批量為60時,仍然需要進行50000輪的訓練。7.2.1聯(lián)邦優(yōu)化對于分布式機器學習,在數(shù)據(jù)中心或計算集群中使用并行訓練,因為有高速通信連接,所以通信開銷相對很小。在這樣的情況下,計算開銷將會占主導地位。最近的研究著重于使用圖形處理單元(GPU)來降低這類計算的時間開銷。與此不同的是,在聯(lián)邦學習的模型訓練中,由于通信需要依靠互聯(lián)網,甚至依靠無線網絡,所以通信代價是占主導地位的。在聯(lián)邦學習中,相對于整個數(shù)據(jù)集的規(guī)模來說,任何單一的在某一臺設備上的數(shù)據(jù)集都是相對較小的,而現(xiàn)代智能手機都擁有相對較快的處理器(包括GPU)。因此,對于許多模型而言,計算代價相比通信代價是微乎其微的。我們可能需要使用額外的計算方法,以減少訓練模型所需要的通信輪次。以下為兩種需要使用的額外的計算方法。增加并行度。我們可以加入更多的參與方,讓它們在通信輪次問各自獨立地進行模型訓練。增加每一個參與方的計算。每一個參與方可以在兩個通信輪次之間進行更復雜的計算,如進行多次本地模型更新法代,而不是僅僅進行單個批次的梯度計算這類簡單的計算。7.2.2算法原理正如一些研究描述的那樣,聯(lián)邦平均算法允許我們使用上述兩種方法來增加計算。計算量由以下3個關鍵參數(shù)控制。(1)參數(shù)ρ,指在每一輪中進行計算的客戶的占比。(2)參數(shù)S,指在每一輪中,每一個客戶在本地數(shù)據(jù)集上進行訓練的步驟數(shù)。(3)參數(shù)M,指客戶更新時使用的Min-Batch的大小。我們使用M=oo來表示完整的本地數(shù)據(jù)集,它被作為一個批量(Batch)來處理。當M=oo和S=l時,對應的就是聯(lián)邦隨機梯度下降。該算法在每一迭代輪次中選取數(shù)量占比為ρ的參與方,并在由這些參與方擁有的數(shù)據(jù)上進行梯度計算和損失函數(shù)計算。因此在該算法中,ρ控制著全局批量大小,當ρ=1時,表示在所有參與方擁有的所有數(shù)據(jù)上使用全部訓練數(shù)據(jù)(亦稱全批量,F(xiàn)ull-Batch)梯度下降(非隨機選擇訓練數(shù)據(jù)〉。我們仍然通過在選定的參與方上使用所有的數(shù)據(jù)來選擇批量,我們稱這種簡單的基線算法為FederatedSGD。假設由不同參與方擁有的數(shù)據(jù)集符合IID條件,且批量的選取機制與隨機選取樣本的方式不同,由Fede剛edSGD算法計算得到的批量梯度g仍然滿E[g]=v'f(w)。7.2.2算法原理假設協(xié)作方或服務器擁有初始模型,且參與方了解優(yōu)化器的設定。對于擁有固定學習率η的分布式梯度下降的典型實現(xiàn),在第t輪更新全局模型參數(shù)時,第k個參與方將會計算

,即它在當前模型參數(shù)的本地數(shù)據(jù)的平均梯度,協(xié)調方將會根據(jù)以下公式聚合這些梯度并使用模型參數(shù)的更新信息這些梯度并使用模型參數(shù)的更新信息其中,

假設由不同參與方擁有的數(shù)據(jù)集符合IID條件。協(xié)調方能夠將更新后的參數(shù)Wt+1發(fā)送給各參與方,或者協(xié)調方可將平均梯度發(fā)送給各參與方,且參與方將根據(jù)上式計算更新后的模型參數(shù)Wt+I,這種方法叫作梯度平均。另有研究提出了一種等價聯(lián)邦模型訓練方法7.2.2算法原理在下面總結了聯(lián)邦平均算法的模型平均算法。當算法以這種方式表示時,人們自然會問,參與方在進入平均操作之前會更新本地模型若干次,參與方在這期間究竟有哪些計算操作?對于一個有nk個本地數(shù)據(jù)點的參與方,每一輪進行的本地更新次數(shù)可以表示為聯(lián)邦平均算法完整的偽代碼及步驟如下所示:1:在協(xié)調方執(zhí)行。2:初始化模型參數(shù)Wo’并將原始的模型參數(shù)Wo廣播給所有的參與方。3:for每一全局模型更新輪次t=1,2,...,執(zhí)行如下步驟。4:協(xié)調方確定Ct即確定隨機選取的max(Kρ,1)個參與方的集合。5:for每一個參與方執(zhí)行如

如下步驟。6:本地更新模型參數(shù):7:將更新后的模型參數(shù)8:endforo7.2.2算法原理9:協(xié)調方將收到的模型參數(shù)聚合,即對收到的模型參數(shù)使用加權平均:(加權平均只考慮

的參與方〉。10:協(xié)調方檢查模型參數(shù)是否己經收斂。若收斂,則協(xié)調方給各參與方發(fā)信號,使其全部停止模型訓練。11:協(xié)調方將聚合后的模型參數(shù)百川廣播給所有參與方。12:endfor。13:在參與方更新

14:從服務器獲得最新的模型參數(shù),即設15:for從l到迭代次數(shù)S的每一次本地迭代1,執(zhí)行如下步驟。16:批量(Batches)←隨機地將數(shù)據(jù)集Dk劃分為批量為M的大小。17:從上一次選代獲得本地模型參數(shù),即設18:for從l到批量數(shù)量

執(zhí)

執(zhí)行如下步驟。7.2.2算法原理19:計算批量梯度20:本地更新模型參數(shù):21:endfor。22:endforo23:獲得本地模型參數(shù)更新并將其發(fā)送給協(xié)調方(對于的參與方)然而,對于一般的非凸目標函數(shù),在模型參數(shù)空間中的模型平均可能會產生一個很差的聯(lián)邦模型,甚至可能導致模型不能收斂。幸運的是,最近的研究表明,充分參數(shù)化的DNJ噸的損失函數(shù)表現(xiàn)得很好,特別是其出現(xiàn)不好的局部極小值的可能性比以前認為的要小。當我們使用相同的隨機初始化策略來初始化模型參數(shù),并分別在數(shù)據(jù)的不同子集上進行獨立訓練時,基于該方法的模型在聚合工作上表現(xiàn)得很好。Dropout訓練方法的成功經驗為模型平均方法提供了一些直觀的經驗解釋??蓪ropout訓練理解為在不同的共享模型參數(shù)的架構中的平均模型,并且模型參數(shù)的推理時間縮放比例類似模型平均方法。7.2.3安全的聯(lián)邦平均算法7.2.2節(jié)中描述的聯(lián)邦平均算法會暴露中間結果的明文內容,如從SGD或DNN模型參數(shù)等優(yōu)化算法中產生的梯度信息。它沒有提供任何安全保護,如果數(shù)據(jù)結構也被泄露,模型梯度或模型參數(shù)的泄露可能會導致重要數(shù)據(jù)和模型信息的泄露。我們可以利用隱私保護技術,如使用各種常用隱私保護方法,從而保護聯(lián)邦平均算法中的用戶隱私和數(shù)據(jù)安全。作為例證,我們可以使用加法同態(tài)加密(AHE)或基于帶錯誤學習(LearningWithErrors,LEW)的加密方法,來加強聯(lián)邦平均算法的安全屬性。AHE是一種半同態(tài)加密算法,支持加法和標量乘法操作(加法同態(tài)和乘法同態(tài))。為便于參考,這里總結了AHE的關鍵特性。設[[u]和[[v]]分別表示對u和v進行同態(tài)加密的結果。對于AHE,有以下特點。7.2.3安全的聯(lián)邦平均算法由于AHE擁有這兩個很適用的特性,因此可以直接將AHE方法用于聯(lián)邦平均算法,以確保相對于協(xié)作方或服務器的安全性。

特別地,通過比較聯(lián)邦平均算法和安全的聯(lián)邦平均算法,我們可以觀察到,諸如AHE這類方法,可以很容易地加入原始的聯(lián)邦平均算法,以提供安全的聯(lián)邦學習。換言之,安全的聯(lián)邦平均算法抵御了誠實但好奇的某一方的攻擊,確保了聯(lián)邦學習系統(tǒng)的安全性。

但是,在AHE方法中,數(shù)據(jù)和模型本身并不會以明文形式傳輸,因此幾乎不可能發(fā)生原始數(shù)據(jù)層面的泄露。然而,加密操作和解密操作將會提高計算的復雜度,并且密文傳輸會增加額外的通信開銷。AHE的另一個缺點是,為了評估非線性函數(shù),需要使用多項式近似(例如,使用泰勒級數(shù)展開來近似計算損失函數(shù)和模型梯度)。因此,需要在精度與隱私性之間進行權衡。仍需要進一步研究用于保護聯(lián)邦平均算法的安全技術。7.2.4聯(lián)邦平均算法的改進通信效率的提升在聯(lián)邦平均算法的實現(xiàn)中,在每一個全局模型的訓練輪次中,每一個參與方都需要給服務器發(fā)送完整的模型參數(shù)更新。由于現(xiàn)代的DNN模型通常有數(shù)百萬個參數(shù),給協(xié)調方發(fā)送如此多的數(shù)值將會產生巨大的通信開銷,并且這樣的通信開銷會隨著參與方數(shù)量和迭代輪次的增加而增加。當存在大量參與方時,從參與方上傳模型參數(shù)到協(xié)調方將成為聯(lián)邦學習的瓶頸。為了降低通信開銷,研究者提出了一些改善通信效率的方法。例如,一些研究提出了以下兩種發(fā)送更新模型參數(shù)的策略,以便降低通信開銷。01

(1)壓縮的模型參數(shù)更新

參與方正常計算模型更新,之后進行本地壓縮。壓縮的模型參數(shù)更新通常是真正更新的無偏估計值,這意味著它們在平均之后是相同的。一種執(zhí)行模型參數(shù)更新壓縮的可行方法是使用概率分層。參與方給協(xié)調方發(fā)送壓縮的模型參數(shù)更新,這樣可以降低通信開銷。

(2)結構化的模型參數(shù)更新

在聯(lián)邦模型訓練過程中,模型參數(shù)更新被限制為允許有效壓縮操作的形式。例如,模型7.2.4聯(lián)邦平均算法的改進參數(shù)可能被強制要求是稀疏的或是低階的,或者可能被要求在一個使用更少變量進行參數(shù)化的限制空間內進行模型參數(shù)更新計算。之后,優(yōu)化過程將找出這種形式下最可能的更新信息,再將這個模型參數(shù)更新發(fā)送給協(xié)調方,以便降低通信開銷。如果仍然可以保證訓練的收斂性,客戶端也可以避免將不相關的模型更新上傳到服務器,以降低通信開銷。例如,有研究者建議向客戶端提供有關模型更新的全局模型趨勢的反饋信息。每個客戶端都檢查其本地模型更新是否符合全局趨勢,以及是否與全局模型改進足夠相關。這樣,每個客戶端可以決定是否將其本地模型更新上傳到服務器。這種方法也可以視為客戶端選擇的一種特殊情況。7.2.4聯(lián)邦平均算法的改進參方的選擇02在一些研究中,參與方選擇的方法被推薦用來降低聯(lián)邦學習系統(tǒng)的通信開銷和每一輪全局聯(lián)邦模型訓練、所需要的時間。以下為安全聯(lián)邦平均算法的偽代碼流程。1:協(xié)調方執(zhí)行。2:初始化模型參數(shù)Wo,并將原始的模型參數(shù)Wo廣播給所有的參與方。3:for每一全局模型更新輪次t=1,2,…,執(zhí)行如下步驟。4:協(xié)調方確定c,’即確定隨機選取的max(Kp,l)個參與方的集合。5:for每一個參與方kεCt,井行執(zhí)行如下步驟。6:本地更新模型參數(shù):7:將更新后的模型參數(shù)8:endfor。9:協(xié)調方檢查損失函數(shù)

是否收斂或是否達到最大訓練輪次。若是,則協(xié)調方給各參與方發(fā)送信號,使其全部停止訓練。7.2.4聯(lián)邦平均算法的改進11:協(xié)調方將聚合后的模型參數(shù)

發(fā)送給所有參與方。12:endfor。13:參與方更新14:15:從服務器獲得最新的模型參數(shù),即設16:for從1到迭代次數(shù)S的每一次本地迭代i,執(zhí)行如下步驟。17:批量(Batches)←隨機地將數(shù)據(jù)集Dk劃分為批量為M的大小。18:從上一次迭代獲得本地模型參數(shù),即設19:for從1到批量數(shù)量20:計算批梯度21:本地更新模型參數(shù):22:endfor。23:endfor。7.2.4聯(lián)邦平均算法的改進24:獲得本地模型參數(shù)更新25:在

上執(zhí)行加法同態(tài)加密以得到

,并將

和相關損失:

發(fā)送給協(xié)調方7.2.5案例分析本次實驗,我們將使用聯(lián)邦平均算法對圖像進行分類,此次實驗選取CIFARIO數(shù)據(jù)集,CIFAR數(shù)據(jù)集共有60000張彩色圖像,這些圖像的像素是32×32,分為10個類,每個類有6000張圖像。本次實驗選取50000張圖像用于訓練,剩下的10000張圖像用于測試。網絡的基本模型采用ResNet,這是一個在分類問題上具有超高性能的網絡。1.基本流程那么本次實驗的基本流程如下。(1)服務器按照配置生成初始化模型,客戶端按照順序將數(shù)據(jù)集橫向不重疊切割。(2)服務器將全局模型發(fā)送給客戶端。(3)客戶端接收全局模型(來自服務器〉,通過本地多次迭代計算本地參數(shù)差值并返回給服務器。(4)服務器聚合各個客戶端差值更新模型,再評估當前模型的性能。(5)如果性能未達標,則重復過程2,否則結束。7.2.5案例分析2.配置文件配置文件包含整個項目的模型、數(shù)據(jù)集、epoch等核心訓練參數(shù)。需要注意的是,一般來說,配置文件需要在所有的客戶端與服務器之間保持一致。首先創(chuàng)建一個配置文件:7.2.5案例分析3.構建訓練數(shù)據(jù)集建立datasets.py文件,用于獲取數(shù)據(jù)集和讀數(shù)據(jù),具體代碼如下:7.2.5案例分析4.服務端服務端的主要功能是對模型進行聚合、評估,最終的模型也是在服務器上生成的,首先創(chuàng)建一個服務器,將所有的程序放在server.py中,定義其構造函數(shù),具體程序如下:7.2.5案例分析7.2.5案例分析7.2.5案例分析7.2.5案例分析7.2.5案例分析7.2.5案例分析7.測試按照以上配置運行主函數(shù),得到如圖7.4所示的測試準確率和損失結果。相應地,聯(lián)邦平均算法與中心化訓練的準確率對比如圖7.5所示,聯(lián)邦平均算法與中心化訓練的損失值對比如圖7.6所示。7.2.5案例分析7.2.5案例分析此外,根據(jù)聯(lián)邦學習的一些研究,聯(lián)邦學習在模型推斷上的效果對比如圖7.7所示。7.2.5案例分析從圖7.7中可以發(fā)現(xiàn),圖中的單點訓練只是在某一個客戶端下利用本地數(shù)據(jù)進行模型訓練的結果??梢钥吹剑瑔吸c訓練的模型效果(三個柱形的第一個)明顯要低于聯(lián)邦訓練的效果(三個柱形中的其他兩個),這也說明了僅僅通過單個客戶端的數(shù)據(jù)不能夠很好地學習數(shù)據(jù)的全局分布特征,模型的泛化能力較差。此外,每一輪參與聯(lián)邦訓練的客戶端數(shù)目Ck值不同,其性能也會有一定的差別,k值越大,每一輪參與訓練的客戶端數(shù)目越多,其性能也越好,但每一輪的完成時間也會相對較長??v向聯(lián)邦學習算法037.3.1安全聯(lián)邦線性回歸第一種算法是安全聯(lián)邦線性回歸。這種算法利用同態(tài)加密方法,在聯(lián)邦線性回歸模型的訓練過程中保護屬于每一個參與方的本地數(shù)據(jù)。為便于參考,本節(jié)所使用的符號及其含義己在表7.1中進行了總結。7.3.1安全聯(lián)邦線性回歸為了使用梯度下降方法訓練一個線性回歸模型,需要一種安全的方法來計算模型損失和梯度。給定學習率η、正則化參數(shù)λ、數(shù)據(jù)集

以及分別與其特征空間

則訓練目標可以表示為:設:則加密損失為:7.3.1安全聯(lián)邦線性回歸7.3.1安全聯(lián)邦線性回歸1.安全聯(lián)邦線性回歸模型的訓練過程表7.2所示為安全聯(lián)邦線性回歸模型的訓練步驟。在實體對齊和模型訓練期間,將A方和B方所擁有的數(shù)據(jù)存儲在本地,并且模型訓練中的交互不會導致隱私數(shù)據(jù)泄露。需要注意的是,由于C方是受信任的,所以C方的潛在信息泄露可能不會被認為是隱私侵犯。為了進一步防止C方從A方或B方學習到相關信息,A方和B方可以將它們的梯度信息加上加密隨機掩碼。7.3.1安全聯(lián)邦線性回歸7.3.1安全聯(lián)邦線性回歸2.安全聯(lián)邦線性回歸模型的預測過程在預測期間,兩方需要協(xié)作計算預測結果,表7.3對預測步驟進行了總結。在預測過程中,屬于每一方的數(shù)據(jù)不會被暴露給其他方。7.3.2安全聯(lián)邦提升樹縱向聯(lián)邦學習介紹的第二個算法就是安全聯(lián)邦提升樹(SecureFederatedTree-Boosting,SecureBoost),一些研究率先在VFL的設定下對SecureBoost進行了研究。研究證明SecureBoost與需要將數(shù)據(jù)收集于一處的非聯(lián)邦梯度提升樹算法具有相同的精確度。換句話說SecureBoost可與不具有隱私保護功能的且在非聯(lián)邦設定下的相同算法提供相同的精確度。需要注意的是,SecureBoost定義的主動方(ActivePaty)不僅是數(shù)據(jù)提供方,同時擁有樣本特征和樣本標簽,還扮演著協(xié)調者的角色,可以計算每個樹節(jié)點的最佳分割點。而另一些研究定義的被動方(PassiveParty)只是數(shù)據(jù)提供者,只提供樣本特征,沒有樣本標簽。因此,被動方需要和主動方共同建構模型來預測標簽。7.3.2安全聯(lián)邦提升樹1.安全的樣本對齊類似7.3.1節(jié)的聯(lián)邦安全線性回歸,SecureBoost包含兩個主要步驟。首先,在隱私保護下對參與方之間具有不同特征的重疊用戶進行樣本對齊。然后,所有參與方通過隱私保護協(xié)議共同學習一個共享的梯度提升樹模型。SecureBoost框架的第一步是實體對齊,即在所有參與方中尋找數(shù)據(jù)樣本的公共集合(如共同用戶),共同用戶可以通過用戶ID被識別出來。特別地,可以通過基于加密的數(shù)據(jù)庫交集算法對樣本進行對齊。7.3.2安全聯(lián)邦提升樹2.XGBoost回顧在完成數(shù)據(jù)對齊后,現(xiàn)在探討在不違反隱私保護規(guī)定的前提下,參與方協(xié)同建立決策樹集成模型(TreeEnsembleModel)的問題。為了達到這一目標,首先需要解答以下3個關鍵問題。被動方如何在不知道類標簽的情況下,基于自己的本地數(shù)據(jù)計算更新的模型?主動方如何高效率地集合所有的己更新模型并獲得一個新的全局模型?在推理過程中,如何在所有參與方之間共享己更新的全局模型,且不泄露任何隱私信息?為了解答以上問題,首先對非聯(lián)邦設定下的決策樹集成算法XGBoost進行一些簡單的回給定一個擁有n個樣本和d個特征的數(shù)據(jù)集D={(Xi,Yi)},XGBoost通過使用K個決策樹,k=1,2,…,K)的集成來預測輸出。7.3.2安全聯(lián)邦提升樹決策樹集成模型的學習通過尋找一組最佳決策樹以達到較小的分類損失,并且具有較低的模型復雜度。在梯度提升樹中,這個目的是通過迭代優(yōu)化真實標簽和預測標簽的損失(如損失的平方或損失函數(shù)的泰勒近似)來實現(xiàn)的。在每一次運代中,我們嘗試添加一棵新的決策樹,以盡可能地減小損失,同時不會引入過大的復雜度。因此,第百百元主代的目標函數(shù)可以寫為:構建一棵決策樹從根節(jié)點開始,然后決定每個節(jié)點的分割,直到達到最大深度為止?,F(xiàn)在的問題是,如何在樹的每-層決定某一節(jié)點的最佳分割(OptimalSplit)?一個“分割”的優(yōu)劣是由分割帶來的增益度量的,分割分數(shù)可以通過前面提到的g和h計算得到。計算分割分數(shù)的具體公式如下7.3.2安全聯(lián)邦提升樹3.SecureBoost的訓練過程現(xiàn)在討論SecureBoost的訓練過程。因為gi和hi的計算需要類標簽,所以gi和hi必須由主動方計算得到,只有主動方擁有樣本的標簽信息。我們將在后面的算法描述中介紹,所有的被動方都需要對其當前節(jié)點的樣本所對應的gi和hi進行聚合。因此,所有被動方需要知道gi和hi。為了保證gi和hi的隱私性,主動方在將gi和hi發(fā)送給被動方之前,對梯度進行了加法同態(tài)加密操作。需要注意的是,由于算法采用加法同態(tài)加密,被動方將不能在gi和hi加密的情況下計算

因此,對分割的評估將由主動方執(zhí)行。相應的聚合梯度統(tǒng)計值的計算步驟如下所示。輸入:I,當前節(jié)點的樣本空間;輸入:d,特征維度:輸入:7.3.2安全聯(lián)邦提升樹7.3.2安全聯(lián)邦提升樹在主動方得到全局最優(yōu)分割之后,將特征id(kopt)和闊值id(Vopt)返回給相應的被動方被動方基于kopt和νopt的值決定選中特征的閻值。然后,被動方i根據(jù)選中特征的閻值對當前樣本空間進行劃分。此外,被動方會在本地建立一個查找表(LookupTable),記錄選中特征的閣值。該查找表可以表示為[記錄id,特征,闕值]。此后,被動方id將記錄id和劃分后節(jié)點左側的樣本空間(I1)發(fā)送給主動方。主動方將會根據(jù)收到的樣本空間I1對當前節(jié)點進行分割,并將當前節(jié)點與[參與方id,記錄idJ關聯(lián)。算法將繼續(xù)對決策樹進行劃分,直到達到停止條件或最大深度為止。最終主動方知道整個決策樹的結構。下面總結了SecureBoost算法中一棵決策樹的訓練過程。輸入:1,當前節(jié)點的樣本空間;輸入

從m位參與方得到的聚合加密梯度統(tǒng)計:輸出:根據(jù)選中特征的闊值對當前樣本空間的劃分。7.3.2安全聯(lián)邦提升樹7.3.2安全聯(lián)邦提升樹21:根據(jù)鳥對當前節(jié)點進行分割,并將當前節(jié)點與[參與方id,記錄id]關聯(lián)· 步驟1從主動方開始,首先計算gi和hi,i{1,…,N},并使用加法同態(tài)加密對其進行加密。其中,N為樣本個數(shù)。主動方將加密的島和鳥(iε{1,··,N})發(fā)送給所有的被動方?!?步驟2對于每一個被動方,根據(jù)聚合梯度統(tǒng)計的方法,將當前節(jié)點樣,本空間中樣本的特征映射至類中,并以此為基礎將加密梯度統(tǒng)計信息聚合起來,將結果發(fā)送給主動方?!?步驟3主動方對各被動方聚合的梯度信息進行解密,并根據(jù)前面所述的決策樹的訓練過程來確定全局最優(yōu)分割,并將k響和問:返回給相應的被動方。· 步驟4被動方根據(jù)從主動方發(fā)送的kopt和飛,pt確定特征的閣值,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論