譚榮杰,洪智勇,余文華,曾志強(qiáng)
五邑大學(xué) 智能制造學(xué)部,廣東 江門 529020
目前人工智能的算法、算力處于快速發(fā)展中,數(shù)據(jù)量的缺失成為了人工智能進(jìn)一步發(fā)展的瓶頸。在實(shí)際的情況中,數(shù)據(jù)分散在許多不同的組織下,出于對(duì)數(shù)據(jù)隱私的保護(hù),組織之間無法共享所有數(shù)據(jù)來訓(xùn)練人工智能模型,聯(lián)邦學(xué)習(xí)[1-2]應(yīng)運(yùn)而生。聯(lián)邦學(xué)習(xí)讓大量邊緣設(shè)備能在本地上使用私有數(shù)據(jù)計(jì)算自己的模型,并通過聚合算法在云端把邊緣設(shè)備上傳的模型進(jìn)行聚合得到一個(gè)共享模型。聯(lián)邦學(xué)習(xí)不需要邊緣設(shè)備之間的數(shù)據(jù)共享,這在某種程度上保護(hù)了數(shù)據(jù)的隱私和安全,因此逐漸成為機(jī)器學(xué)習(xí)中的熱門研究領(lǐng)域。但傳統(tǒng)聯(lián)邦學(xué)習(xí)仍存在挑戰(zhàn):中心服務(wù)器在聚合邊緣設(shè)備的本地模型時(shí)發(fā)揮著重要作用,在中心服務(wù)器受到安全挑戰(zhàn)的情況下,不穩(wěn)定的中心服務(wù)器會(huì)導(dǎo)致系統(tǒng)崩潰。區(qū)塊鏈有去中心化,不可篡改等安全特性,能解決聯(lián)邦學(xué)習(xí)里中心服務(wù)器的安全問題,因此其與聯(lián)邦學(xué)習(xí)的結(jié)合研究引起了廣泛關(guān)注。
區(qū)塊鏈?zhǔn)且环N去中心化的分布式數(shù)據(jù)庫。與傳統(tǒng)中心化系統(tǒng)不同,區(qū)塊鏈不需要任何中心服務(wù)器,由于“最長(zhǎng)鏈法則”和“梅克爾樹”結(jié)構(gòu)的存在,它存儲(chǔ)的數(shù)據(jù)是不可篡改的,這兩個(gè)特性讓它成為分布式環(huán)境中可靠且值得信賴的系統(tǒng),也讓很多研究工作把區(qū)塊鏈作為聯(lián)邦學(xué)習(xí)的底層基礎(chǔ),通過在區(qū)塊鏈上層設(shè)計(jì)共識(shí)算法或者聚合算法來滿足模型聚合的需求。Kim等[3]提出一種基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)框架,在本地訓(xùn)練過后將本地模型上傳至區(qū)塊鏈網(wǎng)絡(luò),在經(jīng)過礦工節(jié)點(diǎn)共識(shí)后在使用聯(lián)邦平均(Fedavg)[1]進(jìn)行聚合,并且可以根據(jù)設(shè)備的產(chǎn)出速率等參數(shù)為設(shè)備提供獎(jiǎng)勵(lì)。美國(guó)NEC實(shí)驗(yàn)室和佐治亞理工學(xué)院的研究者提出了基于區(qū)塊鏈的自由聯(lián)邦學(xué)習(xí)框架(BAFFLE)[4],他們?cè)谒接械囊蕴豢蚣苌蠈?shí)現(xiàn)了一個(gè)實(shí)用的,生產(chǎn)級(jí)別的BAFFLE,并使用大型的深度神經(jīng)網(wǎng)絡(luò)展示BAFFLE的優(yōu)點(diǎn)。在BAFFLE中可以評(píng)估每個(gè)用戶對(duì)模型的貢獻(xiàn)大小,進(jìn)而決定用戶的獎(jiǎng)勵(lì)。Zhou等[5]提出了一個(gè)基于區(qū)塊鏈和5G網(wǎng)絡(luò)的分布式機(jī)器學(xué)習(xí)安全框架,用5G網(wǎng)絡(luò)的通訊速度解決了聯(lián)邦學(xué)習(xí)的可用性問題,同時(shí)引入了區(qū)塊鏈分片技術(shù)和設(shè)計(jì)了一套梯度異常檢測(cè)策略。2021年,Li等[6]提出了基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)框架BFLC。詳細(xì)制定了模型的存儲(chǔ)方式,重新設(shè)計(jì)了新的訓(xùn)練過程和新的共識(shí)機(jī)制。在論文中探討了BFLC的社區(qū)節(jié)點(diǎn)管理,防御惡意節(jié)點(diǎn)攻擊和優(yōu)化存儲(chǔ)問題,通過在聯(lián)邦學(xué)習(xí)數(shù)據(jù)集上的實(shí)驗(yàn)證明了BFLC的有效,并通過模擬惡意攻擊驗(yàn)證了BFLC的安全性。2021年,Cao等[7]提出了DAG-FL架構(gòu),使用DAG區(qū)塊鏈架構(gòu)改進(jìn)去中心化聯(lián)邦學(xué)習(xí)的模型驗(yàn)證機(jī)制,有效監(jiān)測(cè)異常節(jié)點(diǎn),并通過實(shí)驗(yàn)證明其有效性。
目前已有的基于區(qū)塊鏈的聯(lián)邦學(xué)習(xí)框架工作研究主要集中在降低系統(tǒng)通信運(yùn)算成本,改善資源分配,加強(qiáng)數(shù)據(jù)的安全性和可靠性,加強(qiáng)聯(lián)邦學(xué)習(xí)的魯棒性等方面。但隨著框架的大規(guī)模使用,協(xié)同數(shù)以萬計(jì)的設(shè)備及其私有數(shù)據(jù)集進(jìn)行模型訓(xùn)練,還會(huì)面臨由于場(chǎng)景和用戶不同帶來的數(shù)據(jù)非獨(dú)立同分布問題。聯(lián)邦學(xué)習(xí)可以分為橫向聯(lián)邦學(xué)習(xí)、縱向聯(lián)邦學(xué)習(xí)和聯(lián)邦遷移學(xué)習(xí)三類,其中橫向聯(lián)邦學(xué)習(xí)特點(diǎn)為每個(gè)客戶端的數(shù)據(jù)特征相同,用戶不同,理解為對(duì)樣本數(shù)量的擴(kuò)充;縱向聯(lián)邦和聯(lián)邦遷移學(xué)習(xí)特點(diǎn)為用戶相同,但是數(shù)據(jù)特征不同,是對(duì)樣本數(shù)據(jù)特征的擴(kuò)充。聯(lián)邦學(xué)習(xí)的數(shù)據(jù)非獨(dú)立同分布問題研究集中于橫向聯(lián)邦學(xué)習(xí)分類中[8]。同分布代表著數(shù)據(jù)趨勢(shì)平穩(wěn),分布沒有波動(dòng),所有數(shù)據(jù)的分布都遵循同一個(gè)概率。獨(dú)立性則代表每個(gè)樣本視作獨(dú)立的,相互之間無任何聯(lián)系。對(duì)于傳統(tǒng)的分布式機(jī)器學(xué)習(xí)來說,每個(gè)子數(shù)據(jù)集都是由總數(shù)據(jù)集劃分出來的,這些子數(shù)據(jù)集能夠代表著整體的分布。但對(duì)聯(lián)邦學(xué)習(xí)而言,每個(gè)設(shè)備上的私有數(shù)據(jù)都并非隨機(jī)收集或生成的,這導(dǎo)致了其有一定的關(guān)聯(lián)性,因此不具有獨(dú)立性。而每個(gè)設(shè)備的私有數(shù)據(jù)本地?cái)?shù)據(jù)量不同,因此也違背了同分布性。這種由非獨(dú)立同分布數(shù)據(jù)引起的不平衡數(shù)據(jù)分布會(huì)給模型訓(xùn)練帶來偏差,并可能導(dǎo)致聯(lián)邦學(xué)習(xí)的性能下降。
目前橫向聯(lián)邦學(xué)習(xí)的非獨(dú)立同分布數(shù)據(jù)的問題在進(jìn)行中心化聯(lián)邦學(xué)習(xí)框架上有許多解決方法。Zhao等[8]提出一種策略,創(chuàng)建一個(gè)在所有私有數(shù)據(jù)集之間共享的數(shù)據(jù)子集來縮小每個(gè)模型之間的差距,從而提高非獨(dú)立同分布數(shù)據(jù)的訓(xùn)練精度。Yoshida等[9]提出了新的聯(lián)邦學(xué)習(xí)機(jī)制Hybrid-FL,該機(jī)制設(shè)計(jì)了一種啟發(fā)式算法,讓中心服務(wù)器從隱私敏感度低的設(shè)備中收集數(shù)據(jù)來構(gòu)造獨(dú)立同分布數(shù)據(jù),并利用構(gòu)造的數(shù)據(jù)訓(xùn)練模型并聚合到全局模型。Wang等[10]提出了一種模型選擇的聚合算法,通過識(shí)別并排除對(duì)本地更新有偏差的模型來提高聚合后的全局模型精度。但這些方法和算法都是基于中心化的聯(lián)邦學(xué)習(xí)框架,利用中心服務(wù)器共享一部分?jǐn)?shù)據(jù)或者挑選模型進(jìn)行聚合,去中心化聯(lián)邦學(xué)習(xí)框架對(duì)非獨(dú)立同分布數(shù)據(jù)的精度下降問題依然存在。
因此,針對(duì)去中心化聯(lián)邦學(xué)習(xí)框架的非獨(dú)立同分布數(shù)據(jù)問題,本文受文獻(xiàn)[8]啟發(fā),提出了一種模型相似度的計(jì)算方法,并根據(jù)該模型相似度設(shè)計(jì)新的去中心化聯(lián)邦學(xué)習(xí)策略。該策略將一個(gè)用少量獨(dú)立同分布數(shù)據(jù)訓(xùn)練的模型放于智能合約中,并通過智能合約給每個(gè)上傳的邊緣模型計(jì)算模型相似度,本地設(shè)備可以根據(jù)模型相似度的排序挑選區(qū)塊鏈內(nèi)的模型使用聯(lián)邦平均算法進(jìn)行聚合。利用智能合約的測(cè)試集,由全局模型不斷更新替換用于比較的模型。實(shí)驗(yàn)表明,與文獻(xiàn)[8]的原模型相似度相比,本文改進(jìn)后的模型相似度能達(dá)到更好的效果,并通過對(duì)比實(shí)驗(yàn)驗(yàn)證,本文設(shè)計(jì)的去中心化聯(lián)邦學(xué)習(xí)策略在橫向聯(lián)邦學(xué)習(xí)的非獨(dú)立同分布數(shù)據(jù)環(huán)境下性能優(yōu)于傳統(tǒng)去中心化聯(lián)邦學(xué)習(xí)策略。
本節(jié)介紹一種去中心化聯(lián)邦學(xué)習(xí)框架。如圖1所示,該框架主要由邊緣學(xué)習(xí)層、后端接口層、智能合約層和存儲(chǔ)層組成。
圖1 框架架構(gòu)圖Fig.1 Frame architecture diagram
1.1.1 邊緣學(xué)習(xí)層
邊緣設(shè)備用自己的處理器和私有數(shù)據(jù)訓(xùn)練模型。每個(gè)邊緣設(shè)備會(huì)自行訓(xùn)練本地模型和聚合全局模型。
1.1.2 后端接口層
后端接口層處理邊緣設(shè)備傳輸上來的模型數(shù)據(jù)和http數(shù)據(jù)并轉(zhuǎn)發(fā)至智能合約層。
1.1.3 智能合約層
智能合約層部署超級(jí)賬本的智能合約節(jié)點(diǎn),超級(jí)賬本是由Liunx基金會(huì)托管和管理的區(qū)塊鏈開源框架??梢栽谥悄芎霞s層對(duì)聯(lián)邦學(xué)習(xí)進(jìn)行特殊操作,如檢驗(yàn)精度,發(fā)放模型等。
1.1.4 存儲(chǔ)層
存儲(chǔ)層部署了超級(jí)賬本的存儲(chǔ)節(jié)點(diǎn)和星際文件系統(tǒng)。超級(jí)賬本框架會(huì)為一條聯(lián)盟鏈中的成員組建一個(gè)子網(wǎng)絡(luò),子網(wǎng)絡(luò)的成員才能看到該鏈的交易數(shù)據(jù)和智能合約,以此來保證隱私性。而星際文件系統(tǒng)是一個(gè)集成了P2P網(wǎng)絡(luò)技術(shù)、DHT分布式Hash、BitTorrent傳輸技術(shù)、自認(rèn)證文件系統(tǒng)SFS和Git版本控制系統(tǒng)的文件系統(tǒng),其分片和哈希存儲(chǔ)的特性非常適合用于聯(lián)邦學(xué)習(xí)這種模型參數(shù)多,讀寫多的場(chǎng)景。
大部分去中心化聯(lián)邦學(xué)習(xí)研究都是基于文獻(xiàn)[3]提出的BlockFL架構(gòu)進(jìn)行改良,用于橫向聯(lián)邦學(xué)習(xí)。應(yīng)用到上述框架中,BlockFL架構(gòu)的去中心化聯(lián)邦學(xué)習(xí)策略步驟如下:
步驟1權(quán)威機(jī)構(gòu)設(shè)定聯(lián)邦學(xué)習(xí)目前的輪數(shù)e,初始模型M0。由智能合約發(fā)放初始模型M0給邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)用自己的私有數(shù)據(jù)訓(xùn)練初始模型M0得到本地模型Mn
步驟2每個(gè)邊緣節(jié)點(diǎn)上傳Mn至智能合約處,智能合約根據(jù)自己的測(cè)試集對(duì)模型精確度進(jìn)行工作量證明,并發(fā)放上鏈許可。若一輪聯(lián)邦學(xué)習(xí)時(shí)間到或收集夠足夠的邊緣模型,智能合約給邊緣節(jié)點(diǎn)發(fā)出聚合信號(hào)。
步驟3每個(gè)邊緣節(jié)點(diǎn)從區(qū)塊鏈處讀出一輪聯(lián)邦學(xué)習(xí)中的邊緣模型隊(duì)列,對(duì)邊緣模型隊(duì)列使用聯(lián)邦平均算法進(jìn)行聚合,得到一個(gè)全局模型Mg,并存入?yún)^(qū)塊鏈。
步驟4智能合約發(fā)送下一輪學(xué)習(xí)開始的信號(hào)至邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)用自己聚合好的全局模型開始下一輪的去中心化聯(lián)邦學(xué)習(xí)。
與原論文相比,以上策略將礦工驗(yàn)證改為了智能合約驗(yàn)證,并使用raft[11]算法進(jìn)行區(qū)塊鏈節(jié)點(diǎn)的共識(shí)。但依然保留了其去中心化的思想和機(jī)制。
前文基于一種框架設(shè)計(jì)闡述了普通去中心化聯(lián)邦學(xué)習(xí)策略的流程,本章介紹一種基于同樣框架的去中心化聯(lián)邦學(xué)習(xí)的改進(jìn)策略用于橫向聯(lián)邦學(xué)習(xí)。
通常來說,如果一個(gè)設(shè)備的私有數(shù)據(jù)都具備獨(dú)立同分布特性,則訓(xùn)練出來深度學(xué)習(xí)模型參數(shù)應(yīng)該都有一定的相似性,又如果一個(gè)設(shè)備的模型是由非獨(dú)立同分布特性的數(shù)據(jù)訓(xùn)練出來的,其模型與標(biāo)準(zhǔn)模型的相似度一定小于獨(dú)立同分布數(shù)據(jù)訓(xùn)練出來的模型。文獻(xiàn)[8]中為了研究非獨(dú)立同分布數(shù)據(jù)對(duì)聯(lián)邦平均聚合算法的影響,提出并推導(dǎo)了模型的權(quán)值差異:
其中,WFedAvg為使用聯(lián)邦平均聚合算法的聯(lián)邦學(xué)習(xí)后得到的全局模型里一層的參數(shù),WSGD為使用隨機(jī)梯度下降,即傳統(tǒng)深度學(xué)習(xí)后得到的模型里一層的參數(shù)。
受此啟發(fā),本文在公式(1)的基礎(chǔ)上,經(jīng)過實(shí)驗(yàn)比較,放大每一層之間的參數(shù)差,并把每一層的權(quán)值差異進(jìn)行求和,作為兩個(gè)模型的模型相似度,并以此作為篩選模型的指標(biāo):
其中,n為模型的層數(shù),Pak為模型a于第k層的參數(shù),Pbk為模型b于第k層的參數(shù)。
基于該模型相似度,提出的策略步驟如下:
步驟1權(quán)威機(jī)構(gòu)設(shè)定聯(lián)邦學(xué)習(xí)目前的輪數(shù)e,初始模型M0,并用收集或購(gòu)買來的接近獨(dú)立同分步數(shù)據(jù)訓(xùn)練一個(gè)比較模型Ms,得到精確度acc0。由智能合約發(fā)放初始模型M0給邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)用自己的私有數(shù)據(jù)訓(xùn)練初始模型M0得到本地模型Mn。
步驟2每個(gè)邊緣節(jié)點(diǎn)上傳Mn至智能合約處,智能合約接收Mn后,給每個(gè)模型計(jì)算其與比較模型的模型相似度:,發(fā)送模型相似度至邊緣節(jié)點(diǎn),邊緣節(jié)點(diǎn)將Mn和SMnM0存入?yún)^(qū)塊鏈。若一輪聯(lián)邦學(xué)習(xí)時(shí)間到或收集夠足夠的邊緣模型,智能合約給邊緣節(jié)點(diǎn)發(fā)出聚合信號(hào)。
步驟3每個(gè)邊緣節(jié)點(diǎn)從區(qū)塊鏈處讀出一輪聯(lián)邦學(xué)習(xí)中的邊緣模型隊(duì)列,對(duì)本輪邊緣模型的模型相似度進(jìn)行升序排序,取前η個(gè)模型相似度對(duì)應(yīng)的模型組成新的子集mi。對(duì)新邊緣模型隊(duì)列mi使用聯(lián)邦平均算法進(jìn)行聚合,得到一個(gè)全局模型Mg,并存入?yún)^(qū)塊鏈,且至智能合約。
步驟4智能合約接受邊緣節(jié)點(diǎn)發(fā)來的全局模型后,用自己的測(cè)試集得出全局模型的精確度accn,如果accn>acc0,取Mg為比較模型,acc0=accn。
步驟5智能合約發(fā)送全局模型的準(zhǔn)確率排序和下一輪學(xué)習(xí)開始的信號(hào)至邊緣節(jié)點(diǎn),每個(gè)邊緣節(jié)點(diǎn)用準(zhǔn)確率最高的全局模型開始下一輪的去中心化聯(lián)邦學(xué)習(xí)。
以上步驟如圖2所示。
圖2 改進(jìn)策略流程圖Fig.2 Improvement strategy flowchart
本章將對(duì)模型相似度的改進(jìn)進(jìn)行實(shí)驗(yàn)分析,并對(duì)非獨(dú)立同分布下的去中心化聯(lián)邦學(xué)習(xí)策略的性能提升進(jìn)行對(duì)比實(shí)驗(yàn)。下面從實(shí)驗(yàn)環(huán)境設(shè)置、實(shí)驗(yàn)設(shè)置、實(shí)驗(yàn)評(píng)估指標(biāo)、實(shí)驗(yàn)參數(shù)、對(duì)比實(shí)驗(yàn)五個(gè)方面展開論述。
實(shí)驗(yàn)環(huán)境:GPU服務(wù)器環(huán)境有1個(gè)QuadroP5000GPU(16 GRAM),裝載centos7系統(tǒng)環(huán)境,機(jī)器學(xué)習(xí)功能使用基于python3.7的pytorch框架進(jìn)行編程。后端編程使用gin框架,并使用golang語言編寫超級(jí)賬本的智能合約。超級(jí)賬本方面,實(shí)驗(yàn)使用hyperledgefabric1.4版本,并把peer節(jié)點(diǎn)分為了3個(gè)組織,每個(gè)組織各有2個(gè)peer節(jié)點(diǎn),且每個(gè)組織選一個(gè)節(jié)點(diǎn)部署智能合約,并啟用5個(gè)order節(jié)點(diǎn)執(zhí)行raft共識(shí)服務(wù)。聯(lián)邦學(xué)習(xí)中每次使用GPU單機(jī)訓(xùn)練一個(gè)模型并上傳到其中一個(gè)智能合約節(jié)點(diǎn)。
本文總共進(jìn)行了5個(gè)訓(xùn)練任務(wù)用于評(píng)價(jià)該策略的性能。第一個(gè)訓(xùn)練任務(wù)是用一個(gè)簡(jiǎn)單的CNN[12]模型對(duì)FashionMNIST[13]圖片數(shù)據(jù)集進(jìn)行分類,CNN模型有兩個(gè)5×5的卷積層,第一個(gè)輸出通道為20,第二個(gè)輸出通道為50,兩個(gè)卷積層都由ReLU函數(shù)激活,每個(gè)之間使用2×2的最大池化層,再使用linear層和softmax層輸出。FashionMNIST具有60 000個(gè)樣本的訓(xùn)練集和10 000個(gè)樣本的訓(xùn)練集,里面包括T恤、褲子、外套等10個(gè)分類的圖片。獨(dú)立同分布數(shù)據(jù)組的設(shè)置方法為訓(xùn)練集數(shù)據(jù)平均分給每個(gè)客戶端,即每個(gè)客戶端隨機(jī)分到1 200條數(shù)據(jù)。非獨(dú)立同分布數(shù)據(jù)組的設(shè)置方法為,首先,實(shí)驗(yàn)對(duì)數(shù)據(jù)標(biāo)簽進(jìn)行排序,然后把排序后的訓(xùn)練集分為1 200組,每一組有50個(gè)圖片,然后設(shè)置50個(gè)邊緣節(jié)點(diǎn),每個(gè)邊緣節(jié)點(diǎn)先分到4個(gè)組的數(shù)據(jù),然后剩余的數(shù)據(jù)隨機(jī)分給邊緣節(jié)點(diǎn)。通過使用這種分配方案,每個(gè)節(jié)點(diǎn)都被分配一個(gè)本地?cái)?shù)據(jù)集,其中包括兩個(gè)大的分類和其他一些零碎的分類,而且每個(gè)節(jié)點(diǎn)的數(shù)據(jù)數(shù)量也不一樣。本任務(wù)設(shè)置每個(gè)邊緣節(jié)點(diǎn)用0.005的學(xué)習(xí)率訓(xùn)練10輪,比較模型由被分配到最多數(shù)據(jù)的客戶端訓(xùn)練10輪得出。
第二個(gè)訓(xùn)練任務(wù)是用Alexnet[14]模型對(duì)cifar10數(shù)據(jù)集進(jìn)行圖片分類。cifar10數(shù)據(jù)集有50 000個(gè)訓(xùn)練樣本和10 000個(gè)測(cè)試樣本與FashionMNIST數(shù)據(jù)集的區(qū)別在于,cifar10是3通道的彩色圖片,而且是現(xiàn)實(shí)世界中的真實(shí)物體,噪聲大,物體比例和特征都不同,這讓識(shí)別更加復(fù)雜困難。同F(xiàn)ashionMNIST的實(shí)驗(yàn)設(shè)置相似,獨(dú)立同分布數(shù)據(jù)組為平均分給50個(gè)客戶端,即每個(gè)客戶端隨機(jī)分到1 000條數(shù)據(jù)。非獨(dú)立同分布數(shù)據(jù)組的設(shè)置先對(duì)cifar10的標(biāo)簽進(jìn)行排序,然后把排序后的訓(xùn)練集分為1 000組,每一組有50個(gè)圖片。設(shè)置50個(gè)邊緣節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)分到兩組數(shù)據(jù),剩下的組隨機(jī)分配。本任務(wù)設(shè)置邊緣節(jié)點(diǎn)用0.000 1的學(xué)習(xí)率訓(xùn)練10輪,比較模型由被分配到最多數(shù)據(jù)的客戶端訓(xùn)練10輪得出。
第三個(gè)訓(xùn)練任務(wù)是用TextRNN[15]模型對(duì)THUnews[16]數(shù)據(jù)集進(jìn)行新聞分類。THUnews數(shù)據(jù)集有74萬篇新聞文檔,并劃分出了財(cái)經(jīng)、彩票、房產(chǎn)等14類類別。本任務(wù)隨機(jī)抽取50 000條數(shù)據(jù)作為訓(xùn)練集的和,抽取了10 000條數(shù)據(jù)作為測(cè)試集,并設(shè)置了50個(gè)邊緣節(jié)點(diǎn)。在獨(dú)立同分布數(shù)據(jù)組設(shè)置上,把訓(xùn)練集數(shù)據(jù)平均分給50個(gè)客戶端。在劃分非獨(dú)立同分布數(shù)據(jù)方面,本任務(wù)先對(duì)10 000條數(shù)據(jù)的標(biāo)簽進(jìn)行排序,并平均分配到邊緣節(jié)點(diǎn)中,剩下的數(shù)據(jù)進(jìn)行隨機(jī)分配。本任務(wù)選擇使用TextRNN模型,邊緣節(jié)點(diǎn)以0.001的學(xué)習(xí)率訓(xùn)練5輪,比較模型由被分配到最多數(shù)據(jù)的客戶端訓(xùn)練5輪得出。
第四個(gè)訓(xùn)練任務(wù)是用Resnet18[17]模型對(duì)SVHN[18]數(shù)據(jù)集進(jìn)行圖片分類。SVHN數(shù)據(jù)集包含20多萬張由谷歌街景車拍攝的房屋門牌號(hào)的RGB圖像。每幅圖像中均包含有1到3位0~9的數(shù)字。本任務(wù)設(shè)置了50個(gè)邊緣節(jié)點(diǎn)。在獨(dú)立同分布數(shù)據(jù)組設(shè)置上,把73 257張訓(xùn)練集數(shù)據(jù)幾乎平均分給50個(gè)客戶端,即每個(gè)客戶端分到1 465或1 466張圖片。在劃分非獨(dú)立同分布數(shù)據(jù)方面,實(shí)驗(yàn)對(duì)數(shù)據(jù)標(biāo)簽進(jìn)行排序,然后把排序后的訓(xùn)練集分為1 465組,每一組有50個(gè)圖片,然后設(shè)置50個(gè)邊緣節(jié)點(diǎn),每個(gè)邊緣節(jié)點(diǎn)選4組數(shù)據(jù),剩下的組隨機(jī)分配到不同節(jié)點(diǎn)。訓(xùn)練參數(shù)方面,本任務(wù)設(shè)置每個(gè)邊緣節(jié)點(diǎn)以0.1的學(xué)習(xí)率用殘差網(wǎng)絡(luò)Resnet18訓(xùn)練1輪,比較模型由被分配到最多數(shù)據(jù)的客戶端用同樣學(xué)習(xí)率訓(xùn)練1輪得出。
第五個(gè)訓(xùn)練任務(wù)是用LSTM[19]模型對(duì)sentiment140[20]數(shù)據(jù)集進(jìn)行情感分類。sentiment140包含了1 600 000條從推特爬取的推文,并有正面、中立、負(fù)面3種標(biāo)簽。本次任務(wù)隨機(jī)挑選30 000條作為訓(xùn)練集,10 000條作為測(cè)試集,并設(shè)置50個(gè)邊緣節(jié)點(diǎn)。在獨(dú)立同分布數(shù)據(jù)組設(shè)置中,把訓(xùn)練集數(shù)據(jù)平均分給50個(gè)客戶端,即每個(gè)客戶端有600條數(shù)據(jù)。在劃分非獨(dú)立同分布數(shù)據(jù)方面,本任務(wù)先對(duì)10 000條數(shù)據(jù)的標(biāo)簽進(jìn)行排序,并平均分配到邊緣節(jié)點(diǎn)中,剩下的數(shù)據(jù)進(jìn)行隨機(jī)分配。本任務(wù)設(shè)置每個(gè)邊緣節(jié)點(diǎn)使用傳統(tǒng)的LSTM模型,以0.001的學(xué)習(xí)率訓(xùn)練一輪,比較模型由被分配到最多數(shù)據(jù)的客戶端用同樣學(xué)習(xí)率訓(xùn)練一輪得出。
模型相似度的性能評(píng)價(jià)指標(biāo)為每輪聯(lián)邦學(xué)習(xí)之中邊緣模型與標(biāo)準(zhǔn)模型之間的模型相似度的方差,求方差是為了觀測(cè)每個(gè)邊緣模型與標(biāo)準(zhǔn)模型之間的模型相似度的離散程度,從而判斷該模型相似度計(jì)算方法的性能。公式如下:
其中si為一輪中每個(gè)邊緣模型與標(biāo)準(zhǔn)模型的相似度,sˉ為該輪中邊緣模型與標(biāo)準(zhǔn)模型的相似度的平均數(shù),n為該輪中參與聯(lián)邦學(xué)習(xí)任務(wù)的設(shè)備數(shù)。
本文采用準(zhǔn)確率作為該去中心化聯(lián)邦學(xué)習(xí)策略在五個(gè)深度學(xué)習(xí)任務(wù)的性能指標(biāo)。本文用acc表示,計(jì)算如下:
其中TP為模型正確標(biāo)注的數(shù)據(jù),F(xiàn)P為模型錯(cuò)誤標(biāo)注的數(shù)據(jù)。
在實(shí)驗(yàn)中,分別測(cè)試原模型相似度與改造后的模型相似度的性能,原模型相似度計(jì)算方法與改造模型相似度計(jì)算方法如下:
首先測(cè)試原模型相似度和改造模型相似度在非獨(dú)立同分布數(shù)據(jù)組下的方差,然后測(cè)試改造模型相似度在獨(dú)立同分布數(shù)據(jù)組下的方差。其中模型a為邊緣模型,模型b為標(biāo)準(zhǔn)模型,標(biāo)準(zhǔn)模型由每個(gè)任務(wù)的全部訓(xùn)練集數(shù)據(jù),并采用與邊緣設(shè)備相同的訓(xùn)練參數(shù)得出。測(cè)試中5個(gè)任務(wù)中邊緣設(shè)備訓(xùn)練參數(shù)相同,結(jié)果如圖3~7所示。然后使用兩個(gè)不同的模型相似度計(jì)算方法應(yīng)用于本文去中心化聯(lián)邦學(xué)習(xí)策略中,在數(shù)據(jù)集分配,訓(xùn)練模型相同,訓(xùn)練參數(shù)相同的情況下,5個(gè)任務(wù)設(shè)置50個(gè)節(jié)點(diǎn)使用不同的模型相似度計(jì)算方法的策略在非獨(dú)立同分布數(shù)據(jù)集上進(jìn)行50輪聯(lián)邦學(xué)習(xí),設(shè)置模型聚合數(shù)量為η=25,展示每輪區(qū)塊鏈中存在的準(zhǔn)確率最高的全局模型在測(cè)試集上的準(zhǔn)確率變化,結(jié)果如圖8~12所示。
圖3 CNN模型相似度方差Fig.3 CNN model similarity variance
圖4 Alexnet模型相似度方差Fig.4 Alexnet model similarity variance
圖5 TextRNN模型相似度方差Fig.5 TextRNN model similarity variance
圖7 LSTM模型相似度方差Fig.7 LSTM model similarity variance
圖8 CNN模型訓(xùn)練準(zhǔn)確率變化Fig.8 Changes in training accuracy of CNN model
觀察圖3~7,在同樣的非獨(dú)立同分布數(shù)據(jù)集上進(jìn)行聯(lián)邦學(xué)習(xí),開始的時(shí)候由于每個(gè)邊緣數(shù)據(jù)的不同,所以邊緣模型差別大,對(duì)應(yīng)模型相似度的方差也高。隨著輪數(shù)的增加,經(jīng)過幾次模型聚合,邊緣模型的差別越來越小,模型相似度的方差也趨于比較穩(wěn)定。
圖9 Alexnet模型訓(xùn)練準(zhǔn)確率變化Fig.9 Changes in training accuracy of Alexnet model
圖10 TextRNN模型訓(xùn)練準(zhǔn)確率變化Fig.10 Changes in training accuracy of TextRNN model
圖11 Resnet18模型訓(xùn)練準(zhǔn)確率變化Fig.11 Changes in training accuracy of Resnet18 model
圖12 LSTM模型訓(xùn)練準(zhǔn)確率變化Fig.12 Changes in training accuracy of LSTM model
在原模型相似度和改造模型相似度的對(duì)比實(shí)驗(yàn)中,CNN任務(wù)改造模型相似度的方差比原模型相似度的方差平均高0.008 4,Alexnet任務(wù)改造模型相似度的方差比原模型相似度的方差平均高0.111 5,TextRNN任務(wù)改造模型相似度的方差比原模型相似度的方差平均高1.139 9,Resnet18任務(wù)改造模型相似度的方差比原模型相似度的方差平均高7 968,LSTM任務(wù)改造模型相似度的方差比原模型相似度的方差平均高0.053 4。在不同任務(wù)中,改造模型相似度的方差都比原模型相似度的方差高,即改造模型相似度的分離度比原模型相似度所得分離度大,這種更大的分離度更有利于策略中對(duì)模型相似度進(jìn)行比較。
觀察圖6~8的準(zhǔn)確率變化趨勢(shì),雖然最后結(jié)果的相差并不大,但本文策略使用改造模型相似度后,節(jié)點(diǎn)能挑選出更多接近于獨(dú)立同分布數(shù)據(jù)訓(xùn)練的邊緣模型進(jìn)行聚合,導(dǎo)致訓(xùn)練準(zhǔn)確率的收斂速度顯著快于使用原模型相似度的策略。因此可以認(rèn)為改造的模型相似度計(jì)算方法效果更佳。
圖6 Resnet18模型相似度方差Fig.6 Resnet18 model similarity variance
本文也測(cè)試了在非獨(dú)立同分布數(shù)據(jù)集與獨(dú)立同分布數(shù)據(jù)集下改造模型相似度的性能,CNN任務(wù)非獨(dú)立同分布數(shù)據(jù)集下改造模型相似度方差比在獨(dú)立同分布數(shù)據(jù)集下使用改造模型相似度的方差平均高0.010 6,Alexnet任務(wù)改造模型相似度的方差比原模型相似度的方差平均高0.078 7,TextRNN任務(wù)改造模型相似度的方差比原模型相似度的方差平均高1.164 9,Resnet18任務(wù)改造模型相似度的方差比原模型相似度的方差平均高7 967,LSTM任務(wù)改造模型相似度的方差比原模型相似度的方差平均高0.017 8。在不同任務(wù)中,非獨(dú)立同分布數(shù)據(jù)集下改造模型相似度方差都比在獨(dú)立同分布數(shù)據(jù)集下使用改造模型相似度的方差高,即改造模型相似度在非獨(dú)立同分布數(shù)據(jù)集下分離度更大,這也符合非獨(dú)立同分布數(shù)據(jù)集下每個(gè)邊緣模型差異度大的現(xiàn)象,因此可以選用公式(2)作為本策略的模型相似度計(jì)算方法。
本節(jié)使用文獻(xiàn)[3]中BlockFl的原始去中心化聯(lián)邦學(xué)習(xí)框架的策略與本文的改進(jìn)策略在不同任務(wù),不同設(shè)置模型聚合數(shù)下的性能對(duì)比。在數(shù)據(jù)集分配,訓(xùn)練模型相同,訓(xùn)練參數(shù)相同的情況下,展示5個(gè)任務(wù)設(shè)置50個(gè)節(jié)點(diǎn)使用原始策略和使用本文的策略在非獨(dú)立同分布數(shù)據(jù)集,獨(dú)立同分布數(shù)據(jù)集上進(jìn)行50輪聯(lián)邦學(xué)習(xí)中每輪區(qū)塊鏈中存在的準(zhǔn)確率最高的全局模型在測(cè)試集上的準(zhǔn)確率。同時(shí)為了明確選擇模型數(shù)量與該策略精度的關(guān)系,分別進(jìn)行設(shè)置模型聚合數(shù)量為η=40,η=35,η=30,η=25和η=20的實(shí)驗(yàn),結(jié)果如圖13~17及表1所示。
表1 各任務(wù)精度比較Table 1 Accuracy comparison for each task 單位:%
圖13 CNN模型訓(xùn)練準(zhǔn)確率Fig.13 Training accuracy of CNN model
圖14 Alexnet模型訓(xùn)練準(zhǔn)確率Fig.14 Training accuracy of alexnet model
圖16 Resnet18模型訓(xùn)練準(zhǔn)確率Fig.16 Training accuracy of Resnet18 model
圖17 LSTM模型訓(xùn)練準(zhǔn)確率Fig.17 Training accuracy of LSTM model
實(shí)驗(yàn)結(jié)果表明,采用本文提出這種去中心化聯(lián)邦學(xué)習(xí)策略比起原始策略在5個(gè)不同領(lǐng)域任務(wù)的非獨(dú)立同分布數(shù)據(jù)集下的去中心化聯(lián)邦學(xué)習(xí)精度都有不同程度的提高,在使用簡(jiǎn)單CNN模型訓(xùn)練FashionMNIST的任務(wù)中準(zhǔn)確率最高提升了2.51個(gè)百分點(diǎn),在使用Alexnet模型訓(xùn)練cifar10任務(wù)中準(zhǔn)確率最高提升了5.16個(gè)百分點(diǎn),在使用TextRNN模型訓(xùn)練THUnews任務(wù)中準(zhǔn)確率最高提升17.58個(gè)百分點(diǎn),使用Resnet18模型訓(xùn)練SVHN任務(wù)中準(zhǔn)確率最高提升2.46個(gè)百分點(diǎn),使用LSTM模型訓(xùn)練sentiment140任務(wù)中準(zhǔn)確率最高提升5.23個(gè)百分點(diǎn)。證明該策略不同的任務(wù)下都能通過改造的模型相似度挑選數(shù)據(jù)非獨(dú)立同分布程度更高的邊緣模型進(jìn)行聚合,不讓獨(dú)立同分布數(shù)據(jù)訓(xùn)練的邊緣模型聚合時(shí)污染全局模型,從而提高去中心化聯(lián)邦學(xué)習(xí)性能。值得注意的是,并非選擇的邊緣設(shè)備數(shù)量越少越好,如實(shí)驗(yàn)所示,η太小會(huì)讓聯(lián)邦學(xué)習(xí)任務(wù)的數(shù)據(jù)不足,從而也會(huì)使全局模型收斂的速度降低。這啟示了該策略的劣勢(shì)為某些極端情況下,可能存在訓(xùn)練數(shù)據(jù)不足從而影響聯(lián)邦學(xué)習(xí)性能。因此在使用該策略時(shí)需要選擇合適的η值。
本文提出了一種非獨(dú)立同分布數(shù)據(jù)下的去中心化聯(lián)邦學(xué)習(xí)策略,該策略可以使去中心化聯(lián)邦學(xué)習(xí)克服橫向聯(lián)邦學(xué)習(xí)中非獨(dú)立同分布數(shù)據(jù)的挑戰(zhàn),盡量逼近單機(jī)深度學(xué)習(xí)的精度。其能在不處理訓(xùn)練數(shù)據(jù)的情況下,篩選出近似獨(dú)立同分布的聯(lián)邦學(xué)習(xí)模型集進(jìn)行聚合,并以此提高聯(lián)邦設(shè)備的數(shù)據(jù)質(zhì)量。基本思想是在智能合約處使用改進(jìn)的模型相似度比較模型訓(xùn)練所用數(shù)據(jù)的非獨(dú)立同分布程度。實(shí)驗(yàn)表明,使用該策略的去中心化聯(lián)邦學(xué)習(xí)性能在不同任務(wù)上都能得到了明顯提高。下一步研究方向?yàn)橹悄芎霞s動(dòng)態(tài)選擇策略中的參數(shù)問題,并加入基于模型相似度的激勵(lì)機(jī)制等內(nèi)容,來加強(qiáng)區(qū)塊鏈在聯(lián)邦學(xué)習(xí)中的作用。