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