国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈的公平性聯(lián)邦學(xué)習(xí)模型

2022-06-16 05:24陳乃月李浥東蔡露鑫魏圓夢
計算機工程 2022年6期
關(guān)鍵詞:聯(lián)邦共識協(xié)作

陳乃月,金 一,李浥東,蔡露鑫,魏圓夢

(北京交通大學(xué)計算機與信息技術(shù)學(xué)院,北京 100044)

0 概述

在大數(shù)據(jù)時代下,各種信息逐漸以數(shù)據(jù)的形式存在于人們的日常生活中,例如社交賬號、就診信息、瀏覽記錄、購物記錄等,很多信息會被企業(yè)收集并分析以達成預(yù)測客戶行為或其他目標(biāo)。但在實際中,出于保護用戶數(shù)據(jù)隱私的目的,各大企業(yè)組織之間不進行數(shù)據(jù)共享,這就造成了數(shù)據(jù)通常是以孤島的形式存在[1-3]。當(dāng)前絕大多數(shù)的機器學(xué)習(xí)算法依賴大量數(shù)據(jù),其為訓(xùn)練出理想的模型提供了強有力的支撐。但相關(guān)研究表明,傳統(tǒng)機器學(xué)習(xí)模型由于存在脆弱性而容易被潛在的攻擊所威脅,比如對抗攻擊[4]、中毒攻擊[5]、成員推理攻擊[6]等。由于聯(lián)邦學(xué)習(xí)(Federated Learning,F(xiàn)L)框架存在天然的數(shù)據(jù)分離以及分布式訓(xùn)練過程等特性,其同樣容易受到不確定性攻擊,因此研究聯(lián)邦學(xué)習(xí)的魯棒性問題是保證聯(lián)邦學(xué)習(xí)框架能夠安全穩(wěn)定運行的關(guān)鍵。

在保證數(shù)據(jù)安全和維護數(shù)據(jù)隱私的前提下,為了解決數(shù)據(jù)孤島的問題,研究人員提出一種新的機器學(xué)習(xí)技術(shù),即聯(lián)邦學(xué)習(xí)[7-8]。聯(lián)邦學(xué)習(xí),顧名思義就是協(xié)作學(xué)習(xí),由多個參與方進行聯(lián)合訓(xùn)練,其本質(zhì)上是一種分布式的學(xué)習(xí)算法[9-10]。和傳統(tǒng)的機器學(xué)習(xí)方法相比,聯(lián)邦學(xué)習(xí)不需要匯集所有客戶數(shù)據(jù)至中心端,在一定程度上有效防止了這些數(shù)據(jù)在上傳過程中被泄露的可能性。聯(lián)邦學(xué)習(xí)的主要思想是:在不共享原始數(shù)據(jù)的前提下,各個客戶端利用本地數(shù)據(jù)集進行本地模型訓(xùn)練,完成本地訓(xùn)練后進行模型相關(guān)參數(shù)的交互,從而聯(lián)合聚合出一個高效、共享的全局模型。但這并不意味著聯(lián)邦學(xué)習(xí)方法必定是安全可信的,在聚合的過程中,外部攻擊者也可以利用截獲的模型相關(guān)參數(shù)重構(gòu)出原始數(shù)據(jù)。并且參與客戶如果出現(xiàn)掉線或中途退出等意外行為可能會導(dǎo)致整個聯(lián)邦訓(xùn)練網(wǎng)絡(luò)出現(xiàn)崩潰的情況。因此,在維護數(shù)據(jù)隱私性、解決異構(gòu)性、保證公平性等方面,聯(lián)邦學(xué)習(xí)仍然存在很多亟需解決的問題。

區(qū)塊鏈作為一種去中心化的分布式存儲技術(shù)具有廣闊的應(yīng)用前景[11-12]。不同于傳統(tǒng)的中心化分布式存儲技術(shù),區(qū)塊鏈中的每個節(jié)點都獨立維護一份完整的數(shù)據(jù)記錄,并通過共識機制實現(xiàn)數(shù)據(jù)存儲的一致性,當(dāng)單個節(jié)點發(fā)生故障或者被惡意攻擊時,不會影響其他節(jié)點的正常運行,從而保證了數(shù)據(jù)的安全性,提高了整個系統(tǒng)的魯棒性[13]。區(qū)塊鏈中每個節(jié)點按照時間順序相連的區(qū)塊存儲數(shù)據(jù),每個區(qū)塊的區(qū)塊頭中記錄著上一個區(qū)塊的哈希值,某個區(qū)塊的改變將會影響后面一系列區(qū)塊的計算,所以區(qū)塊鏈上偽造或者更改數(shù)據(jù)的代價很高,遭受惡意節(jié)點篡改全部數(shù)據(jù)的可能性極小。此外,區(qū)塊鏈還通過非對稱加密算法、數(shù)字簽名等密碼學(xué)技術(shù)進一步保證了數(shù)據(jù)的安全。因此,區(qū)塊鏈技術(shù)可以滿足保護數(shù)據(jù)安全和用戶隱私的要求,實現(xiàn)多個參與方之間的可信數(shù)據(jù)交換。結(jié)合聯(lián)邦學(xué)習(xí)的架構(gòu),區(qū)塊鏈技術(shù)可以激勵對聚合全局模型貢獻度高的用戶更加積極地參與訓(xùn)練,形成整體可持續(xù)的學(xué)習(xí)模式。同時,利用共識機制和激勵機制可以更加公平地計算并分配參與方的收益,實現(xiàn)聯(lián)邦學(xué)習(xí)各個節(jié)點間貢獻度的公平性。因此,利用區(qū)塊鏈技術(shù)可以識別出聯(lián)邦訓(xùn)練過程中可能存在的惡意攻擊行為或潛在危險,追溯惡意用戶并進行懲罰。

目前,結(jié)合聯(lián)邦學(xué)習(xí)和區(qū)塊鏈的研究工作已經(jīng)取得了較好的進展。文獻[14]提出一種結(jié)合區(qū)塊鏈和聯(lián)邦學(xué)習(xí)實現(xiàn)安全數(shù)據(jù)分享的框架,通過許可鏈建立多個參與方之間的安全連接,可以進一步控制節(jié)點對共享數(shù)據(jù)的訪問,降低了聯(lián)邦學(xué)習(xí)協(xié)作過程中數(shù)據(jù)泄露的風(fēng)險。文獻[15]使用區(qū)塊鏈取代聯(lián)邦學(xué)習(xí)中的中央服務(wù)器,使得參與節(jié)點在無可信第三方的情況下依然可以建立可信通信,并對該框架在效率、隱私保護、抗中毒攻擊等方面的性能進行了研究。DeepChain[16]對不信任的參與節(jié)點提供基于區(qū)塊鏈價值驅(qū)動的激勵機制,并且通過區(qū)塊鏈實現(xiàn)聯(lián)邦學(xué)習(xí)協(xié)作過程的可審計性,對不誠實的節(jié)點進行懲罰,對誠實的節(jié)點進行獎勵。以上研究在區(qū)塊鏈的基礎(chǔ)上,對聯(lián)邦學(xué)習(xí)協(xié)作過程中的數(shù)據(jù)安全、隱私保護和公平性等方面的問題進行了改善,但是沒有考慮到不同參與節(jié)點數(shù)據(jù)分布不均衡問題對聯(lián)邦學(xué)習(xí)協(xié)作過程的影響。文獻[17]則提出一種多層分布式防御計算框架,有效改善了本地節(jié)點訓(xùn)練數(shù)據(jù)有限的問題,但是模型結(jié)構(gòu)較復(fù)雜,在應(yīng)用上存在較大的困難。

針對客戶端訓(xùn)練樣本分布不均衡現(xiàn)象導(dǎo)致的訓(xùn)練精度問題,本文結(jié)合區(qū)塊鏈的共識技術(shù)研究高效的公平性聯(lián)邦學(xué)習(xí)機制。首先根據(jù)客戶端本地訓(xùn)練模型參數(shù)計算節(jié)點可信度,構(gòu)建基于信任度的聯(lián)邦學(xué)習(xí)聚合模型,各客戶端結(jié)合本地模型的歷史性能更新本地模型參數(shù),以保證本地數(shù)據(jù)特征不被全局模型遺忘。然后利用區(qū)塊鏈的共識機制技術(shù)保障聯(lián)邦學(xué)習(xí)中各參與方訓(xùn)練數(shù)據(jù)傳輸?shù)目尚判裕_保節(jié)點間數(shù)據(jù)傳輸?shù)碾[私性及不可篡改性。最后通過在各客戶端利用不同數(shù)據(jù)分布的訓(xùn)練集進行實驗仿真,以保證各客戶端的隱私性。

1 基礎(chǔ)內(nèi)容和相關(guān)研究

1.1 基礎(chǔ)內(nèi)容

聯(lián)邦學(xué)習(xí)是一種由多方共同參與進行聯(lián)合學(xué)習(xí)的新型技術(shù)。聯(lián)邦學(xué)習(xí)結(jié)構(gòu)模型如圖1 所示,主要包括擁有數(shù)據(jù)的客戶端和包含聚合模型的中央服務(wù)器兩個主體。相比一般的分布式機器學(xué)習(xí),存在的明顯不同是聯(lián)邦學(xué)習(xí)不需要將數(shù)據(jù)集進行聚合操作,大幅降低了在集合多方數(shù)據(jù)的階段造成隱私泄露問題的可能性。在每輪迭代中,各個參與方持有本地數(shù)據(jù)進行本地模型訓(xùn)練,并將更新后的模型相關(guān)參數(shù)值上傳至中央服務(wù)器,由服務(wù)器聚合參數(shù),從而更新全局模型。

圖1 聯(lián)邦學(xué)習(xí)結(jié)構(gòu)模型Fig.1 Federated learning structure model

作為一種分布式數(shù)據(jù)庫技術(shù),區(qū)塊鏈可以在多個互不了解的參與方之間實現(xiàn)可信的數(shù)據(jù)共享[18]。區(qū)塊鏈?zhǔn)侨ブ行幕?,無需借助可信的第三方,由多個參與方按照嚴(yán)格的規(guī)則共同維護,通過密碼學(xué)、共識機制、智能合約等多種技術(shù)實現(xiàn)交易過程的高度可信性,可以有效減少單個故障節(jié)點或惡意節(jié)點帶來的影響。

區(qū)塊鏈通過以區(qū)塊為單位的數(shù)據(jù)結(jié)構(gòu)保障了數(shù)據(jù)的不可篡改性,每個區(qū)塊包括區(qū)塊頭和區(qū)塊體兩部分,由區(qū)塊頭連接上一個區(qū)塊,由區(qū)塊體記錄交易數(shù)據(jù)。在區(qū)塊鏈系統(tǒng)中,每個參與節(jié)點都會記錄所有的交易信息,并對其他節(jié)點記錄的信息進行正確性驗證。存儲在區(qū)塊鏈中的交易信息是公開透明的,同時交易賬戶的個人信息是高度加密的,這樣既提高了數(shù)據(jù)庫的安全性,又保證了參與方的隱私性,還可以有效追溯非法篡改的惡意節(jié)點,對其進行懲罰。

1.2 國內(nèi)外研究現(xiàn)狀

谷歌提出關(guān)于聯(lián)邦學(xué)習(xí)的算法,使用該算法來處理安卓手機終端的本地模型更新。近年來由聯(lián)邦學(xué)習(xí)結(jié)合其他算法有效地處理了一系列實際問題,而其中如何提高通信開銷、解決異構(gòu)性、保證公平性和隱私性等問題都是當(dāng)前聯(lián)邦學(xué)習(xí)算法主要的研究方向。聯(lián)邦平均(FedAvg)[10]算法是由MCMAHAN等提出的,和傳統(tǒng)FedSGD 算法相比,在一定程度上降低了通信成本,但是其存在所有客戶共用相同模型的問題,無法滿足持有非獨立同分布數(shù)據(jù)客戶端的需求。為了解決不同客戶端設(shè)備狀況存在差異、所處網(wǎng)絡(luò)環(huán)境存在不同以及非獨立同分布數(shù)據(jù)等問題,文獻[19]在聯(lián)邦平均的基礎(chǔ)上提出了一種異步聯(lián)邦優(yōu)化算法處理設(shè)備異構(gòu)性,文獻[20]則針對模型異構(gòu)性將聯(lián)邦學(xué)習(xí)與元學(xué)習(xí)相融合。在FedAvg算法的基礎(chǔ)上添加L2 正則化項而構(gòu)造的FedProx 模型[21],是通過添加約束項使得客戶端局部更新過程中的參數(shù)盡可能與服務(wù)端模型的參數(shù)相近。通過此簡單且有效的操作,使得模型可以有效緩解數(shù)據(jù)異質(zhì)性的問題,同時能夠安全地聚合來自不同客戶端具有模型差異性的梯度信息進而提高模型的預(yù)測性能。文獻[22]通過利用一階模型優(yōu)化來計算模型聚合的權(quán)重,客戶端可以根據(jù)其與其他客戶端的權(quán)重系數(shù)進行加權(quán)聚合,因而不同的客戶端可以擁有不同的全局個性化模型,進而利用合理的權(quán)重信息來得到更加精確的全局模型。然而,這些聯(lián)邦學(xué)習(xí)優(yōu)化方法只考慮了客戶端在本輪模型訓(xùn)練的性能,在節(jié)點選擇過程中容易造成歷史模型的遺忘,本文方法將根據(jù)歷史模型個性化更新本地模型,以更實際地體現(xiàn)整體模型與本地模型的關(guān)系。

區(qū)塊鏈技術(shù)最早由中本聰于2008 年提出,并在2009 年得到實踐。區(qū)塊鏈的發(fā)展經(jīng)歷了以數(shù)字貨幣為特點的1.0 時代、以智能合約為特點的2.0 時代與正在邁向更加安全和完備的3.0 時代。區(qū)塊鏈通過塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)存儲數(shù)據(jù),根據(jù)分布式共識算法更新數(shù)據(jù),通過智能合約操作數(shù)據(jù)。目前,區(qū)塊鏈的共識算法主要包括工作量證明、權(quán)益證明、委托權(quán)益證明和實用拜占庭容錯等。文獻[23]提出優(yōu)化算法T-PBFT,通過團隊簽名和相互監(jiān)督選擇信用較好的節(jié)點參與到共識過程中,提高系統(tǒng)的容錯性。文獻[24]提出一種改進的委托權(quán)益證明共識機制,引入信用機制,通過監(jiān)測節(jié)點行為及時剔除不積極參與協(xié)作的惡意節(jié)點。

目前,很多聯(lián)邦學(xué)習(xí)算法在處理一些實際應(yīng)用時得到的模型效果存在一定局限,只有當(dāng)問題的數(shù)據(jù)類型為獨立同分布或數(shù)據(jù)規(guī)模較小時,這些算法能夠?qū)崿F(xiàn)較為理想的結(jié)果。

然而,在實際問題中面對的情況往往更加復(fù)雜,一般的聯(lián)邦學(xué)習(xí)技術(shù)缺乏一定的可行性,不能有效地平衡例如隱私保護、公平性等一系列重要因素。因此,很多研究的方向是將聯(lián)邦學(xué)習(xí)與其他技術(shù)相結(jié)合來優(yōu)化訓(xùn)練模型的性能,其中,將其與區(qū)塊鏈技術(shù)進行融合是一個熱門方向?,F(xiàn)有的一些區(qū)塊鏈結(jié)合聯(lián)邦學(xué)習(xí)的算法主要動機是通過激勵更多高質(zhì)量的數(shù)據(jù)擁有者參與到協(xié)作學(xué)習(xí)過程中以提升模型的訓(xùn)練效果。區(qū)塊鏈中有很多設(shè)計成熟的激勵機制,包括增加收益型激勵機制、賦予權(quán)利型激勵機制和提高聲譽型激勵機制等類型。文獻[25]提出一種基于樣本數(shù)目大小的激勵機制,給予區(qū)塊鏈中礦工與其關(guān)聯(lián)設(shè)備訓(xùn)練中使用數(shù)據(jù)量成正比的獎勵,但在該機制中,惡意節(jié)點可能通過造假騙取獎勵。文獻[26]則通過引入與數(shù)據(jù)質(zhì)量相關(guān)的參數(shù),不僅考慮到樣本數(shù)據(jù)量的大小,還考慮到樣本數(shù)據(jù)對聯(lián)邦學(xué)習(xí)訓(xùn)練過程準(zhǔn)確率的影響,激勵更多擁有高質(zhì)量數(shù)據(jù)的用戶參與協(xié)作學(xué)習(xí)。文獻[27]則使用聲譽作為礦工的選擇標(biāo)準(zhǔn),通過主觀邏輯對礦工進行聲譽評價,并將聲譽評價公開透明地記錄在區(qū)塊鏈中,用于可信的聲譽計算,實現(xiàn)聯(lián)邦學(xué)習(xí)過程中可靠參與者的選擇。

本文與現(xiàn)有的基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)工作相比,主要貢獻為采用基于損失函數(shù)的梯度投影算法保證數(shù)據(jù)分布不均衡情況下各個用戶的數(shù)據(jù)特征,同時,采用結(jié)合本地模型的歷史性能更新本地模型參數(shù),以保證本地數(shù)據(jù)特征的不被全局模型遺忘。并且,通過區(qū)塊鏈技術(shù)來保證節(jié)點間數(shù)據(jù)傳輸?shù)碾[私性以及不可篡改性。同時,設(shè)計了PoT 共識機制作為聯(lián)邦學(xué)習(xí)聚合的引擎,適用于輕量級智能邊緣計算中的聯(lián)邦學(xué)習(xí)。該方法能夠降低模型中心化參數(shù)泄露的風(fēng)險,降低區(qū)塊鏈節(jié)點的通信開銷。

2 系統(tǒng)模型分析

2.1 本地模型訓(xùn)練

相較于傳統(tǒng)的分布式機器學(xué)習(xí),聯(lián)邦學(xué)習(xí)模型可以保證網(wǎng)絡(luò)數(shù)據(jù)高效處理,中心節(jié)點不需要訓(xùn)練網(wǎng)絡(luò)中所有的數(shù)據(jù),而是將各個參與節(jié)點上傳的參數(shù)進行綜合處理,進而返回給各個節(jié)點相應(yīng)的學(xué)習(xí)參數(shù)。

分布式機器學(xué)習(xí)利用多個計算節(jié)點進行機器學(xué)習(xí)或深度學(xué)習(xí),提供擴展大規(guī)模訓(xùn)練數(shù)據(jù)的計算和存儲能力。其中,訓(xùn)練數(shù)據(jù)被分為不相交的數(shù)據(jù)分片并被發(fā)送給各個工作節(jié)點,工作節(jié)點在本地執(zhí)行隨機梯度下降后,將模型參數(shù)返回給中心服務(wù)器。由于在該過程中,中心節(jié)點不會接觸到各個節(jié)點的原始數(shù)據(jù),因此能夠保證各個節(jié)點本地數(shù)據(jù)的隱私性。同時,由于中心節(jié)點只需處理邊緣節(jié)點上傳的相關(guān)參數(shù),因此降低了中心節(jié)點的計算量,提高了機器學(xué)習(xí)的工作效率。

本文將結(jié)合聯(lián)邦學(xué)習(xí)框架和區(qū)塊鏈的思想設(shè)計公平性的聯(lián)邦學(xué)習(xí)模型,采用信任機制量化工作節(jié)點的本地模型性能,通過區(qū)塊鏈傳遞各個節(jié)點模型參數(shù),其框架如圖2 所示。

圖2 系統(tǒng)模型框架Fig.2 System model framework

在聯(lián)邦學(xué)習(xí)框架中,參與工作的節(jié)點定義為M={m1,m2,…,mk},其中每個工作節(jié)點訓(xùn)練本地機器學(xué)習(xí)模型,其模型參數(shù)為W={w1,w2,…,wk}。在本地模型中采用成熟的神經(jīng)網(wǎng)絡(luò)進行數(shù)據(jù)特征的分類,本文采用卷積神經(jīng)網(wǎng)絡(luò)方法構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,提取原始數(shù)據(jù)中最有效的特征表示。該網(wǎng)絡(luò)的構(gòu)建包括卷積層、池化層和全連接層。如圖3 所示,該模型采用兩個卷積層和池化層交疊,然后連接全連接層。

圖3 本地CNN 模型Fig.3 Local CNN model

卷積層主要將網(wǎng)絡(luò)連接和系統(tǒng)審計數(shù)據(jù)轉(zhuǎn)化為特征圖,有效提取數(shù)據(jù)特征。在卷積層中,隨機初始化其權(quán)重w和偏置值b。卷積計算以滑動窗口的形式進行,計算公式如下:

其中:xi表示原始數(shù)據(jù);ci表示計算后的數(shù)據(jù)特征。

池化層階段主要進行降采樣操作,降低特征圖的特征空間,否則過多的特征圖參數(shù)不利于高層特征的抽取。特征的降維操作一般采用最大池和平均池的兩種計算方式。

其中:最大池化是保留每個小區(qū)域中的最大值,即重點在于該區(qū)域是否匹配上,而非具體某一處的高度匹配。

在全連接層,將根據(jù)前兩層進行的特征提取進行數(shù)據(jù)特征的分類操作。該層類似于前饋神經(jīng)網(wǎng)絡(luò)中的隱含層,不再以空間拓?fù)浣Y(jié)構(gòu)進行計算,而是將其通過激勵函數(shù)展開為向量的形式。

2.2 PoT 共識算法

由于區(qū)塊鏈具有分布式記賬的特點,可以保證區(qū)塊鏈網(wǎng)絡(luò)中聯(lián)邦學(xué)習(xí)的參與方之間交互是安全可靠的,且共享的數(shù)據(jù)具備透明、一致、防篡改等特性。以區(qū)塊鏈為基礎(chǔ)的聯(lián)邦學(xué)習(xí)框架需要通過共識機制來保證參與聯(lián)邦學(xué)習(xí)的各個節(jié)點進行可信的協(xié)作學(xué)習(xí)。在該框架中利用區(qū)塊鏈來接收和保存參與節(jié)點相關(guān)的認(rèn)證信息和模型參數(shù),再經(jīng)由共識協(xié)議對其進行認(rèn)證處理,有效保證了協(xié)作訓(xùn)練的公平性。

目前,一般的區(qū)塊鏈共識機制并不能夠滿足聯(lián)邦學(xué)習(xí)在通信開銷和公平性方面的需求。區(qū)塊鏈中最基本的共識機制包括工作量證明(Proof of Work,PoW)[26-27]共識機制和權(quán)益證明(Proof of Stake,PoS)[28-29]共識機制。雖然PoW 的原理更簡單,由于該機制選擇的依據(jù)是節(jié)點的算力競爭,需要被證明人執(zhí)行大量重復(fù)的計算工作,容易導(dǎo)致資源嚴(yán)重?fù)p耗,達成共識的周期較長。PoS 能夠有效緩解資源浪費的問題,達成共識的時間較短,但是需要被證明人擁有一定數(shù)量的加密貨幣所有權(quán),安全性能低,擁有加密貨幣多的用戶容易被攻擊。因此,本文對共識機制進行適當(dāng)改進,提出一種更適合聯(lián)邦學(xué)習(xí)應(yīng)用場景的基于信任值證明(Proof of Trust,PoT)的共識機制,引入了信任值來衡量參與節(jié)點在聯(lián)邦學(xué)習(xí)協(xié)作過程中的表現(xiàn)情況。

PoT 通過利用每個節(jié)點在聯(lián)邦學(xué)習(xí)協(xié)作過程中的可信度來達成節(jié)點間的共識,且實現(xiàn)的去中心化程度和安全性能較高,既可以保證較低的通信開銷,也能保證每個參與節(jié)點在協(xié)作過程中公平地獲益,從而鼓勵更多高質(zhì)量、可信任的節(jié)點積極參與到協(xié)作過程中。在PoT 中,每個節(jié)點都按照共識規(guī)則進行數(shù)據(jù)處理,使得整個分布式系統(tǒng)中所有節(jié)點保持一致性。節(jié)點通過選擇性地參與到聯(lián)邦學(xué)習(xí)協(xié)作過程中來更新信任值,在一段時間內(nèi),具有最高信任值的節(jié)點被選取作為主節(jié)點,獲取唯一記賬權(quán),生成新區(qū)塊時需要節(jié)點提供一個有效的信任值證明,并且這個證明應(yīng)可以被其他協(xié)作節(jié)點驗證。通過對節(jié)點在聯(lián)邦學(xué)習(xí)協(xié)作過程中的表現(xiàn)進行認(rèn)證來證明該節(jié)點擁有一定的可信度,增大了節(jié)點作假的成本,在一定程度上保證了整個網(wǎng)絡(luò)的安全性。因此,PoT 解決了PoW 中資源損耗嚴(yán)重和PoS 中安全性能低的問題,可以更好地運用于聯(lián)邦學(xué)習(xí)應(yīng)用場景。

在聯(lián)邦學(xué)習(xí)協(xié)作過程中,如果惡意節(jié)點上傳虛假的本地參數(shù),會導(dǎo)致最終聚合的全局模型質(zhì)量受到影響。為了防止惡意節(jié)點破壞協(xié)作過程,本文通過信任值來衡量每個節(jié)點上傳的本地模型參數(shù)的可信度。本文中計算信任值的主要依據(jù)是本地模型和全局模型的相似程度,定義如下:

在每一輪訓(xùn)練中,當(dāng)隨機選擇的所有參與節(jié)點完成本地訓(xùn)練后,各個節(jié)點將在區(qū)塊鏈網(wǎng)絡(luò)中共享透明的、不能隨意篡改的全局模型參數(shù),隨后進行共識驗證。在共識過程中,首先根據(jù)參與本輪訓(xùn)練的節(jié)點組在前幾輪的整體訓(xùn)練效果選出信任值最高的節(jié)點P;eader,即主節(jié)點,并由主節(jié)點處理交易請求。當(dāng)接收到一條交易請求時,該節(jié)點根據(jù)擁有的本地數(shù)據(jù)和模型參數(shù)進行訓(xùn)練,將訓(xùn)練得到的損失loss(f(xi),yi)通過廣播的形式發(fā)送給區(qū)塊鏈網(wǎng)絡(luò)上的其他參與節(jié)點pj,同時收集相關(guān)的交易信息并包裝成一個區(qū)塊Blockt進行廣播。由主節(jié)點主持的新區(qū)塊主要包含兩部分內(nèi)容,即Blockt={,T[wi,loss(f(xi),yi)],}。其中:區(qū)塊頭中存儲前一區(qū)塊的哈希值Ht-1和本區(qū)塊相關(guān)哈希值Hm;主節(jié)點的信任值證明以及主要的交易信息T則保存在區(qū)塊體中。

除主節(jié)點外的其他參與節(jié)點pi對該區(qū)塊Blockt進行共識驗證,只有當(dāng)廣播的區(qū)塊通過這些節(jié)點的驗證,才能證實主節(jié)點發(fā)布的內(nèi)容是可信的。在共識節(jié)點pj驗證區(qū)塊的過程中,首先需要驗證存儲在區(qū)塊頭中的哈希值確保區(qū)塊發(fā)布者不可隨意篡改區(qū)塊內(nèi)容,其次驗證主節(jié)點的數(shù)字簽名和其他信息來認(rèn)證節(jié)點身份。此外,這些共識節(jié)點利用本地數(shù)據(jù)對接收到的模型參數(shù)wi以及l(fā)oss(f(xi),yi)驗證主節(jié)點的信任值的可信程度,并將最終的驗證結(jié)果進行廣播。綜合其他節(jié)點對該區(qū)塊的驗證結(jié)果,最終認(rèn)證為合法的區(qū)塊Blockt則由主節(jié)點添加到對應(yīng)的區(qū)塊鏈中。

2.3 聯(lián)邦模型成員審計

在區(qū)塊鏈網(wǎng)絡(luò)中,可能存在某些參與節(jié)點通過廣播造假其模型參數(shù)以惡意影響全局模型更新的效果。為了避免這種情況的發(fā)生,本文提出一種由參與節(jié)點共同制約不同節(jié)點的本地模型質(zhì)量評估的聯(lián)邦模型審計算法。在該算法中,當(dāng)節(jié)點完成一次迭代訓(xùn)練就會將其訓(xùn)練更新的本地模型參數(shù)廣播給其他參與節(jié)點,也就是協(xié)作節(jié)點,由協(xié)作節(jié)點對該模型參數(shù)進行質(zhì)量評估。其中,評估的方法是協(xié)作方基于本地數(shù)據(jù)集對模型參數(shù)進行測試,最終以計算得到的模型誤差作為評價結(jié)果并廣播至鏈上。不同于簡單地以節(jié)點自身的模型訓(xùn)練損失作為衡量本地模型質(zhì)量的唯一評價指標(biāo)的方法,聯(lián)邦模型成員審計通過綜合考慮節(jié)點的直接評價和其他協(xié)作節(jié)點的間接評價,可以得到一個更加公正客觀的模型質(zhì)量評價結(jié)果。

節(jié)點本地模型質(zhì)量評估的聯(lián)邦模型審計算法通過區(qū)塊鏈上的交易完成。參與聯(lián)邦學(xué)習(xí)訓(xùn)練過程的節(jié)點在完成本地訓(xùn)練之后,得到本地模型參數(shù)wi和訓(xùn)練損失loss(wi),然后發(fā)送交易請求,將wi、loss(wi)等交易數(shù)據(jù)發(fā)送給其他參與協(xié)作的節(jié)點。為了保證交易過程的安全性,本文通過使用數(shù)字簽名算法確保交易信息的來源安全可靠,并通過使用非對稱加密算法確保交易數(shù)據(jù)的安全。發(fā)送節(jié)點使用接收節(jié)點的公鑰對交易數(shù)據(jù)進行加密,同時使用自己的私鑰進行數(shù)字簽名,最后將加密的交易數(shù)據(jù)、數(shù)字簽名和自己的公鑰一起發(fā)送出去。接收節(jié)點在接收到交易信息后,通過發(fā)送節(jié)點的公鑰對數(shù)字簽名進行驗證,在確認(rèn)數(shù)據(jù)未被篡改且交易有效之后,通過自己的私鑰對交易數(shù)據(jù)進行解密,最后根據(jù)所擁有的本地數(shù)據(jù)在收到的模型上進行訓(xùn)練,得到訓(xùn)練誤差loss(wi),同樣通過交易的方式將loss(wi)廣播給參與到聯(lián)邦學(xué)習(xí)訓(xùn)練過程的其他節(jié)點。被驗證模型的質(zhì)量評價結(jié)果綜合了所有節(jié)點測試該模型得到的訓(xùn)練誤差,質(zhì)量評價結(jié)果的計算公式如下:

在執(zhí)行PoT 共識的階段,為了實現(xiàn)更加公平可信的聯(lián)邦協(xié)作學(xué)習(xí),當(dāng)主節(jié)點P;eader將區(qū)塊Blockt廣播給其他參與節(jié)點pj后,這些訓(xùn)練協(xié)作節(jié)點測試接收到的模型參數(shù)wi,計算出對應(yīng)的模型損失作為審計結(jié)果。這種方法大幅降低了節(jié)點上傳造假的模型損失至區(qū)塊鏈且不被發(fā)現(xiàn)的可能性。并且,由于具有獨特的不可篡改的分布式賬本特性,區(qū)塊鏈可以實現(xiàn)聯(lián)邦學(xué)習(xí)協(xié)作過程的全程可追溯,參與節(jié)點在訓(xùn)練過程中產(chǎn)生的數(shù)據(jù)記錄被永久儲存且不可偽造,從而有效預(yù)防不誠實的節(jié)點上傳低質(zhì)量的模型參數(shù)而危害整體模型聚合。

2.4 本地更新算法

通過PoT 共識機制選出主節(jié)點,區(qū)塊鏈上其他節(jié)點收集到參與訓(xùn)練節(jié)點的本地模型后進行模型聚合,現(xiàn)有的模型聚合方法主要是聯(lián)邦平均算法,但是聯(lián)邦平均算法沒有考慮各個節(jié)點間數(shù)據(jù)的異質(zhì)性以及樣本標(biāo)簽的不均衡問題,這會導(dǎo)致標(biāo)簽少的樣本的特征提取不公平。

在區(qū)塊鏈選擇工作節(jié)點的過程中,不能確保每一輪的工作節(jié)點都具有相同的數(shù)據(jù)分布、數(shù)據(jù)規(guī)模等特征。每個本地區(qū)塊都有本地的數(shù)據(jù)特征,特別是當(dāng)數(shù)據(jù)是非獨立同分布時,不同本地模型之間參數(shù)模型的差異就會增大。這種現(xiàn)象會造成在聯(lián)邦學(xué)習(xí)框架中產(chǎn)生梯度的沖突,僅通過對各個區(qū)塊參數(shù)的加權(quán)平均可能會消除梯度方向間的差異,造成梯度方向差別信息的遺漏。為了緩解節(jié)點間樣本標(biāo)簽不均衡問題,本文在聚合本地模型參數(shù)前,計算梯度之間是否存在很明顯的方向沖突,進而采用梯度投影的思想聚合全局模型。其中的模型梯度沖突一方面來源于擁有相同特征的數(shù)據(jù)客戶在某輪通信中占據(jù)多數(shù),導(dǎo)致與其他特征用戶模型梯度產(chǎn)生明顯差異,另一種可能性來源于訓(xùn)練的數(shù)據(jù)量不均衡所導(dǎo)致的模型梯度之間的差異。因此,本文在本地模型參數(shù)出現(xiàn)過大差異時,選擇采用按序投影的方式以保留各個用戶的數(shù)據(jù)特征。由于在梯度投影過程中最后被投影的參數(shù)所保留的方向最全面,因此本文采用按照本地訓(xùn)練損失函數(shù)的逆序進行全局沖突的梯度投影。

同時,為了使得本地更新模型可以更好地適合其自身數(shù)據(jù)集的特征,在模型每個區(qū)塊中節(jié)點更新本地模型參數(shù)時,將對比上一輪全局模型的性能和本次本地模型的性能,以自適應(yīng)地調(diào)整更適配本地數(shù)據(jù)集的模型權(quán)重。本文將結(jié)合本地模型的歷史性能優(yōu)化全局模型在區(qū)塊鏈中各個節(jié)點的模型訓(xùn)練參數(shù)。

當(dāng)上一輪的全局模型在本地的表現(xiàn)相較于本地模型較差時,可能是由于本地數(shù)據(jù)分布的特征與全局模型聚合中大部分的分布特征不相同,此時需要考慮本地的數(shù)據(jù)特征,因此,在本地模型更新過程中,將會調(diào)整全局模型所占比例,強調(diào)本地模型所表現(xiàn)的數(shù)據(jù)特征,以更好地優(yōu)化本地模型更新,其模型聚合更新算法描述如算法1 所示。

3 實驗與結(jié)果分析

為了驗證本文算法的有效性,采用機器學(xué)習(xí)中圖像識別任務(wù)中被廣泛使用的MNIST 數(shù)據(jù)集和CIFAR-10 數(shù)據(jù)集進行實驗,與聯(lián)邦平均算法進行異常檢測精度和數(shù)據(jù)處理效率的對比。MNIST 數(shù)據(jù)集由0 到9 手寫數(shù)字圖片和數(shù)字標(biāo)簽所組成,每個樣本都是28×28 像素的灰度手寫圖片,共計60 000 個訓(xùn)練樣本和10 000 個測試樣本。相較于MNIST 數(shù)據(jù)集,CIFAR-10 數(shù)據(jù)集是3 通道的彩色RGB 圖像,且圖片尺寸為32×32 像素,比MNIST 稍大。相比于手寫字符,CIFAR-10 含有的是現(xiàn)實世界中真實的物體,不僅噪聲很大,而且物體的比例、特征都不盡相同,這為識別帶來很大困難。本文實驗代碼基于Python、PyTorch 實現(xiàn)聯(lián)邦學(xué)習(xí)協(xié)作式模型訓(xùn)練,通過線程池模擬多節(jié)點分布式并行訓(xùn)練。

3.1 實驗環(huán)境及測試標(biāo)準(zhǔn)

本文實驗計算機配置為16 GB內(nèi)存,i7-9700 3.2 GHz處理器,操作系統(tǒng)為Centos,實驗語言為Python,框架搭建使用Pytorch 平臺完成。本文使用查全率(AC)對模型進行評估。計算公式如式(9)所示:

其中:TTP表示正確分類的正樣本數(shù),即預(yù)測為正樣本,實際也是正樣本;FFP表示被錯誤地標(biāo)記為正樣本的負(fù)樣本數(shù),即實際為負(fù)樣本而被預(yù)測為正樣本,所以是False;TTN指正確分類的負(fù)樣本數(shù),即預(yù)測為負(fù)樣本,實際也是負(fù)樣本;FFN指被錯誤地標(biāo)記為負(fù)樣本的正樣本數(shù),即實際為正樣本而被預(yù)測為負(fù)樣本,所以是False;TTP+FFN+FFP+TTN表示樣本總數(shù);TTP+FFN表示實際正樣本數(shù);TTP+FFP表示預(yù)測結(jié)果為正樣本的總數(shù),包括預(yù)測是正確的和錯誤的;FFP+TTN表示實際負(fù)樣本數(shù);TTN+FFN表示預(yù)測結(jié)果為負(fù)樣本的總數(shù),包括預(yù)測是正確的和錯誤的。

3.2 結(jié)果分析

本文實驗主要有3 個方面:首先分析在獨立同分布情況下該算法與對比算法的性能差別;其次面向非獨立同分布數(shù)據(jù)特征進行模型訓(xùn)練,更貼近真實場景下聯(lián)邦學(xué)習(xí)的各個節(jié)點數(shù)據(jù)分布特征,從而驗證本文算法的公平性,對于不同的節(jié)點可以公平地滿足各自的特征需求;最后驗證區(qū)塊鏈模型聚合的服務(wù)性能,保證該算法能夠在區(qū)塊鏈框架下高效運行。

為了證明提出算法的有效性,該實驗將MNIST數(shù)據(jù)集和CIFAR-10 數(shù)據(jù)集按照數(shù)據(jù)集規(guī)格分割為同等比例的10 份數(shù)據(jù)集分給各個工作節(jié)點,其中每個數(shù)據(jù)集中包含各類照片數(shù)據(jù)。通過這種數(shù)據(jù)分割方式可以使得各個節(jié)點之間的數(shù)據(jù)達到獨立同分布的狀態(tài)。將本文算法與原始聯(lián)邦學(xué)習(xí)算法作為比較基準(zhǔn),結(jié)果如圖4、圖5 所示。

圖4 MNIST 數(shù)據(jù)集中不同算法性能對比Fig.4 Performance comparison of different algorithms in MNIST dataset

圖5 CIFAR-10 數(shù)據(jù)集中不同算法性能對比Fig.5 Performance comparison of different algorithms in CIFAR-10 dataset

如圖4 所示,在MNIST 數(shù)據(jù)集中各算法的表現(xiàn)均較好,但是本文算法無論在初始狀態(tài)還是隨輪次的迭代,均高于Fedavg 算法。并且該算法在迭代15 次達到了收斂狀態(tài),相較于Fedavg 算法和FedFa 算法都是最先達到收斂狀態(tài)的。如圖5 所示,本文算法在訓(xùn)練CIFAR-10 數(shù)據(jù)集時,迭代60 輪次達到收斂,且準(zhǔn)確率達到70.2%,F(xiàn)edFa 算法訓(xùn)練65 輪次直至收斂,且準(zhǔn)確率為68.7%。因此,通過與baseline 和基于公平性的聯(lián)邦學(xué)習(xí)方法對比,本文算法可以在較少的迭代次序中得到更高的準(zhǔn)確率,減少了通信次數(shù)。

為了分析該算的公平性,本次實驗將MNIST 數(shù)據(jù)集按照標(biāo)簽進行預(yù)處理,使得每個工作節(jié)點僅僅存在部分標(biāo)簽數(shù)據(jù),而不包含全部的10 類標(biāo)簽以符合實際工作中數(shù)據(jù)分布不均衡的現(xiàn)象。

通過圖6 可以發(fā)現(xiàn),隨著通信輪次的增加,模型的準(zhǔn)確率也在提高,本文算法在開始幾輪通信中并沒有顯著的優(yōu)勢,這是由于開始時模型參數(shù)的隨機性較大,但是很快就實現(xiàn)了準(zhǔn)確率的提升,并且提升的速度較于Fedavg 算法有很大的進步。Fedfv 算法采用梯度投影方法緩和梯度沖突造成的影響,該算法通過設(shè)計不同客戶端的投影順序以優(yōu)化整體模型準(zhǔn)確率,其準(zhǔn)確率隨著迭代次數(shù)的增加而提高。但是該算法沒有考慮各個節(jié)點的歷史表現(xiàn)性能,因此,本文提出的算法隨著模型訓(xùn)練的迭代,其性能均優(yōu)于其他3 種算法,且較快地達到模型的收斂狀態(tài)。因此,可以證明在節(jié)省通信成本和完成非獨立同分布情況下,本文算法在分類任務(wù)方面具有一定的優(yōu)勢。

圖6 non-IID 數(shù)據(jù)集中不同算法性能對比Fig.6 Performance comparison of different algorithms in non-IID dataset

本文實驗采用Python Flask 框架實現(xiàn)區(qū)塊鏈服務(wù)功能,能夠提供創(chuàng)建交易、鏈狀態(tài)查詢、節(jié)點注冊等服務(wù)。通過區(qū)塊鏈網(wǎng)絡(luò)構(gòu)建搭載聯(lián)邦學(xué)習(xí)中的工作節(jié)點,假設(shè)每個節(jié)點存儲10 次聯(lián)邦學(xué)習(xí)模型聚合和更新的交易,本次實驗在MNIST 數(shù)據(jù)集中分析基于區(qū)塊鏈公平性聯(lián)邦學(xué)習(xí)模型在區(qū)塊鏈中的吞吐量和時延性能。

如圖7 所示,本實驗分析在不同交易數(shù)量情況下的吞吐量與時延的比例,可以發(fā)現(xiàn)隨著發(fā)送交易數(shù)量的增加,交易吞吐量的也隨之增加,在2 000 以內(nèi)的交易數(shù)量中吞吐量穩(wěn)步線性增長。但是隨著交易數(shù)量的再度增大,其吞吐量的增長速度變得緩慢,這是由于在預(yù)備塊的生成和區(qū)塊達成共識時需要保持一定數(shù)量節(jié)點的一致性,從而產(chǎn)生較高時延以產(chǎn)生吞吐量增速下降的現(xiàn)象。本文進行30 次實驗取得均值以展示交易吞吐量相對穩(wěn)定的狀態(tài)。因此,通過區(qū)塊鏈結(jié)構(gòu)同時打包區(qū)塊信任度以及模型參數(shù)進行區(qū)塊交易是可行的,并且能夠滿足一定的性能需求。

圖7 區(qū)塊鏈的交易吞吐量Fig.7 Transaction throughput of blockchain

4 結(jié)束語

本文主要研究在數(shù)據(jù)分布不均衡情況下數(shù)據(jù)共享模型公平性問題,通過結(jié)合聯(lián)邦學(xué)習(xí)和區(qū)塊鏈技術(shù),提出基于本地數(shù)據(jù)特征的公平性聯(lián)邦學(xué)習(xí)模型。設(shè)計基于信任度的共識機制,利用區(qū)塊鏈記錄工作節(jié)點的本地模型參數(shù)作為證據(jù)實現(xiàn)模型聚合功能。實驗結(jié)果表明,本文算法可以優(yōu)化非獨立同分布下的模型訓(xùn)練精度,防止中間參數(shù)傳輸信息泄露,實現(xiàn)區(qū)塊鏈在公平性的聯(lián)邦學(xué)習(xí)框架中的應(yīng)用。下一步將擴展本文節(jié)點信任機制,研究更公平的整體模型聚合方法及加入隱私保護的梯度更新方法,以降低隱私泄露的風(fēng)險。

猜你喜歡
聯(lián)邦共識協(xié)作
聯(lián)邦學(xué)習(xí)在金融數(shù)據(jù)安全領(lǐng)域的研究與應(yīng)用
共識 共進 共情 共學(xué):讓“溝通之花”綻放
一“炮”而紅 音聯(lián)邦SVSound 2000 Pro品鑒會完滿舉行
論思想共識凝聚的文化向度
商量出共識
團結(jié)協(xié)作成功易
303A深圳市音聯(lián)邦電氣有限公司
監(jiān)督橋 溝通橋 協(xié)作橋
狼|團結(jié)協(xié)作的草原之王
協(xié)作
连山| 穆棱市| 富蕴县| 高邑县| 三江| 叙永县| 闽清县| 山阳县| 竹山县| 灵台县| 漳州市| 阳东县| 麻阳| 克东县| 潜山县| 高密市| 邵阳县| 芒康县| 堆龙德庆县| 新营市| 宁明县| 汝城县| 句容市| 阳原县| 锦屏县| 穆棱市| 错那县| 大邑县| 恩平市| 阿拉善盟| 渭源县| 东山县| 苗栗市| 宁德市| 横山县| 教育| 石城县| 九龙县| 英吉沙县| 广平县| 阿瓦提县|