施宏建 馬汝輝 張衛(wèi)山 管海兵
1(上海交通大學電子信息與電氣工程學院 上海 200240)
2(上海市可擴展計算與系統(tǒng)重點實驗室(上海交通大學)上海 200240)
3(中國石油大學(華東)青島軟件學院、計算機科學與技術(shù)學院 山東青島 266580)
(shhjwu5@sjtu.edu.cn)
隨著網(wǎng)絡(luò)技術(shù)[1-2]的發(fā)展,網(wǎng)絡(luò)用戶之間的交互變得十分普遍和重要.而在社會、經(jīng)濟和工程等各大領(lǐng)域數(shù)字化轉(zhuǎn)型的過程中,網(wǎng)絡(luò)信任問題成為了主要矛盾.構(gòu)建可信任的新一代信息管理系統(tǒng)[3]成為了迫切的需求.此種信息管理系統(tǒng)可以提高社會運行效率,降低社會協(xié)作成本,對經(jīng)濟發(fā)展和工程技術(shù)開發(fā)均有十分重大的意義,也是推動我國技術(shù)進步并在國際競爭中形成核心競爭力的關(guān)鍵.而近些年在網(wǎng)絡(luò)信任領(lǐng)域興起的區(qū)塊鏈技術(shù)[4-6]則是現(xiàn)階段發(fā)展的主要方向之一.
區(qū)塊鏈(blockchain)系統(tǒng)是集合分布式網(wǎng)絡(luò)、加密技術(shù)、智能合約等多種技術(shù)的新型數(shù)據(jù)存儲系統(tǒng),能夠記錄和驗證交易并保護數(shù)據(jù)的安全性,是基于信任的數(shù)據(jù)管理基礎(chǔ)設(shè)施.在區(qū)塊鏈系統(tǒng)中,每個參與者都可以共同驗證交易,并且整體交易信息被保存在一個不斷增長的鏈式結(jié)構(gòu)中,稱為區(qū)塊鏈數(shù)據(jù)庫,每個鏈上的區(qū)塊都包含有一定數(shù)量的交易信息.區(qū)塊鏈的去中心化使其不需要可信第三方控制交易;透明性保證所有參與者都可以共同查看和驗證交易;不可篡改性則確保了交易信息不會被修改或刪除.區(qū)塊鏈系統(tǒng)涉及數(shù)據(jù)存儲、事務(wù)處理、智能合約執(zhí)行、安全隱私保護等核心技術(shù),但現(xiàn)今大部分區(qū)塊鏈研究仍集中于經(jīng)濟金融等數(shù)據(jù)存儲領(lǐng)域,并未與目前最急需發(fā)展的數(shù)據(jù)計算領(lǐng)域融合.與數(shù)據(jù)存儲相似,在網(wǎng)絡(luò)數(shù)據(jù)計算[7-8]中也需要考慮網(wǎng)絡(luò)用戶之間的信任問題.
另一方面,隨著人工智能技術(shù)[9]的發(fā)展,開發(fā)者對數(shù)據(jù)量和數(shù)據(jù)多樣性的需求逐步增加,但是單一開發(fā)者并不能收集到高質(zhì)量高數(shù)量的研究數(shù)據(jù),進而導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)計算領(lǐng)域出現(xiàn)了數(shù)據(jù)孤島問題.用戶需和他人聯(lián)合訓練人工智能算法,這就涉及到了隱私性問題.在這種需求下,聯(lián)邦學習[10-13]應(yīng)運而生.
聯(lián)邦學習(federated learning,FL)是近幾年發(fā)展起來的新興機器學習技術(shù),可以在去中心化的數(shù)據(jù)存儲下,讓多個設(shè)備及用戶共同學習和構(gòu)建機器學習或深度學習模型.在聯(lián)邦學習中,每個設(shè)備或用戶都被視作一個客戶端,其擁有自己的本地數(shù)據(jù)集,且并不需要將這些本地數(shù)據(jù)在網(wǎng)絡(luò)中進行直接傳輸或發(fā)送到服務(wù)器端.聯(lián)邦學習架構(gòu)為人工智能算法提供了聯(lián)合學習的可能,打破了數(shù)據(jù)孤島,使得研究人員能夠在保障數(shù)據(jù)隱私性的情況下構(gòu)建出適用于大部分用戶的神經(jīng)網(wǎng)絡(luò)模型.
但實際場景下,可信的服務(wù)器端極難獲取,相對應(yīng)的,能夠提供去中心化、透明、不可篡改的數(shù)據(jù)存儲框架的區(qū)塊鏈系統(tǒng)正好能夠彌補聯(lián)邦學習架構(gòu)這一方面的需求,進而區(qū)塊鏈聯(lián)邦學習[14-17]成為了網(wǎng)絡(luò)數(shù)據(jù)計算領(lǐng)域的新型應(yīng)用.過去幾年中,有若干在區(qū)塊鏈聯(lián)邦學習框架領(lǐng)域開展的研究,主要集中于聯(lián)邦學習架構(gòu)的客戶端選擇[18-19]、聚合權(quán)重[20-21]、本地訓練調(diào)整[20,22]、隱私保護[23-29]、安全防護[24,30-31]、模型壓縮[32]設(shè)計,以及區(qū)塊鏈系統(tǒng)的共識機制[18-19,30]、區(qū)塊結(jié)構(gòu)[30,33-34]、委員會選取[21,34]、激勵機制[23,25-26,29]設(shè)計上,另一方面,也有在兩方結(jié)合的層次化結(jié)構(gòu)[22,32,35]或者異步聚合[19,20,36-37]進行探索的.
但是文獻[18-37]所述的主要問題在于底層聯(lián)邦學習架構(gòu)沒有完全發(fā)掘區(qū)塊鏈系統(tǒng)的潛力,頂層區(qū)塊鏈系統(tǒng)也沒有為聯(lián)邦學習架構(gòu)提供完整的支撐.具體來說,現(xiàn)有的聯(lián)邦學習區(qū)塊鏈框架并未利用實際物聯(lián)網(wǎng)場景中所有可用的網(wǎng)絡(luò)連接,帶來了較大的通信開銷,在異構(gòu)資源場景下限制了整體的訓練效率;同時缺少在區(qū)塊鏈與聯(lián)邦學習結(jié)合的場景下較為完整合理的區(qū)塊結(jié)構(gòu)設(shè)計,不能夠保障用戶的知識產(chǎn)權(quán)和維護需求.
基于上述需求,本文設(shè)計了基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架,從實際場景出發(fā),通過利用不同種的網(wǎng)絡(luò)連接輔助訓練,并通過區(qū)塊鏈系統(tǒng)為聯(lián)邦學習架構(gòu)提供完整的分布式訓練支持,以減少區(qū)塊鏈聯(lián)邦學習框架的通信開銷并提高其普適性.框架主要包含兩大設(shè)計,其一為半中心化的聯(lián)邦學習架構(gòu)設(shè)計,主要通過將聚合任務(wù)放到客戶端上,并利用客戶端之間的可信連接減少聚合所用時間開銷,同時通過區(qū)塊鏈輔助對不可信客戶端的模型進行集中聚合,保障本地模型泛用性和性能;其二為區(qū)塊鏈系統(tǒng)中的聯(lián)邦區(qū)塊設(shè)計,主要通過對上傳區(qū)塊、下載區(qū)塊、評分區(qū)塊的設(shè)計,使區(qū)塊鏈能夠支持底層聯(lián)邦學習訓練的需求.本文的主要貢獻有4 個方面:
1)提出了基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習架構(gòu),能夠在物聯(lián)網(wǎng)場景下對分散的數(shù)據(jù)提供可信的協(xié)同訓練環(huán)境,提高了人工智能任務(wù)的準確率和訓練效率,為區(qū)塊鏈聯(lián)邦學習算法設(shè)計提供了指導(dǎo);
2)對半中心化架構(gòu)進行了建模和公式化表述,基于物聯(lián)網(wǎng)場景給出了更加實際、更加全面的分布式架構(gòu),并在其基礎(chǔ)上設(shè)計了聯(lián)邦學習算法,利用損失函數(shù)和延遲輪次進行權(quán)重設(shè)計,提高算法準確率和效率;
3)針對聯(lián)邦學習任務(wù)的區(qū)塊鏈區(qū)塊進行了結(jié)構(gòu)設(shè)計,包括模型下載對應(yīng)的下載區(qū)塊、模型上傳對應(yīng)的上傳區(qū)塊和模型評分對應(yīng)的評分區(qū)塊,為聯(lián)邦學習任務(wù)提供了區(qū)塊鏈系統(tǒng)支持,便于系統(tǒng)部署;
4)通過實驗證明了所提框架在2 個數(shù)據(jù)集上相比傳統(tǒng)聯(lián)邦學習算法提高了至少8%的準確率,并大幅度提高了設(shè)備計算時間比例,進而提高了訓練效率.
本節(jié)主要介紹區(qū)塊鏈系統(tǒng)和聯(lián)邦學習架構(gòu)的相關(guān)工作.
傳統(tǒng)聯(lián)邦學習的研究有很多[38-52].FedAvg[38]算法是所有聯(lián)邦學習架構(gòu)中最基礎(chǔ)也是最早的算法,其利用服務(wù)器端的模型聚合方法在含有不同數(shù)據(jù)分布的客戶端之間進行參數(shù)交互,同時通過提高本地訓練輪次數(shù)來減少通信開銷提高收斂性.FedProx[39]算法在FedAvg 算法基礎(chǔ)上,往損失函數(shù)中加入了近端項(proximal term)來應(yīng)對聯(lián)邦環(huán)境中的系統(tǒng)異構(gòu)性問題.MOON[40]算法則是利用全局模型中區(qū)分度更高的特征表征來指導(dǎo)本地訓練,通過在損失函數(shù)中加入對比學習項來減少2 個特征表征之間的區(qū)別,以此來進一步提高聯(lián)邦學習算法的效果.FedDyn[41]從損失函數(shù)的收斂性入手,通過在損失函數(shù)上添加一個一階泰勒展開項,使其從理論上可以證明本地損失函數(shù)收斂性和全局損失函數(shù)收斂性是可以統(tǒng)一的,保證了聚合操作的合理性和有效性.
很多區(qū)塊鏈聯(lián)邦學習算法都是基于傳統(tǒng)聯(lián)邦學習架構(gòu)的,主要將原本的服務(wù)器替換為區(qū)塊鏈,負責聚合等任務(wù),然后對應(yīng)在通信效率、安全性等方面進行了優(yōu)化.文獻[35]采用了層次化的區(qū)塊鏈聯(lián)邦學習框架,上層負責管理全局模型,下層負責調(diào)度底層資源更新本地模型,以使本地訓練去中心化,可以有效地減少通信延時和提高通信效率.Biscotti[24]重點關(guān)注了中心化區(qū)塊鏈聯(lián)邦學習框架中的安全隱私性,其在傳統(tǒng)框架中加入了Multi-Krum,VRF,PoF,Shamir秘密共享和差分隱私等多個安全防護技術(shù).文獻[22]在傳統(tǒng)區(qū)塊鏈聯(lián)邦學習中通過A2C 算法確定各節(jié)點本地訓練參數(shù).文獻[27]和FedTwin[23]類似地運用了基于GAN 的差分隱私防護機制,其定性地分析了區(qū)塊鏈聯(lián)邦學習框架在延遲和解決數(shù)據(jù)孤島問題上的有效性.文獻[28]則是運用差分隱私保護了客戶端數(shù)據(jù)隱私,但還利用了零知識證明對客戶端上傳模型的有效性和安全性進行了驗證.BFCL[32]在中心化區(qū)塊鏈聯(lián)邦學習框架中引入了TopK的模型壓縮機制,從理論和實驗上證明了其性能的提升.SAGIN[31]在空天地架構(gòu)中利用區(qū)塊鏈聯(lián)邦強化學習優(yōu)化了任務(wù)卸載問題,對空天地架構(gòu)的拓撲優(yōu)化問題進行建模優(yōu)化,并提供了基于準確度的拜占庭防御機制.
但是傳統(tǒng)聯(lián)邦學習中出現(xiàn)的一大問題是其并不適用于物聯(lián)網(wǎng)或邊緣計算中.在這2 種場景下,數(shù)據(jù)中的統(tǒng)計異構(gòu)性較強,也就是說各個客戶端上的標簽分布數(shù)量、分布比例不同,導(dǎo)致用同一個全局模型無法在所有客戶上都有較高的準確度,使得模型泛用性和有效性降低.
為了解決統(tǒng)計異構(gòu)性所帶來的特征偏移的問題,個性化聯(lián)邦學習成為了一大研究方向.個性化聯(lián)邦學習會在不同客戶端上維護不同模型以在各數(shù)據(jù)集上得到更高的準確率,主要包含部分聚合、個性化訓練和獨立聚合3 種模式.
部分聚合只聚合模型中的全局層,而不聚合個性化層,以此滿足個性化要求.FedBN[42]與FedAvg 類似,只是將批次化歸一層(batch normalization)留在本地,不參與聚合,以此來應(yīng)對特征偏移問題.FedPer[43]則是將模型分成了數(shù)據(jù)端的全局層和標簽端的個性化層,并只對全局層進行聚合,這樣可以得到更高的訓練準確度.FedRep[44]則是在FedPer 的目的和算法的基礎(chǔ)上,進一步分析了本地訓練階段的效果和合理性,進而提出了將全局層和個性化層分開訓練的算法來提升效果.FedBABU[45]也使用了類似FedPer和FedRep 的神經(jīng)網(wǎng)絡(luò)切分方式,并且在訓練中只聚合全局層,但是與FedPer 和FedRep 兩種算法不同的是,F(xiàn)edBABU 在訓練階段并不會訓練個性化層,而是在訓練結(jié)束后會對個性化層進行微調(diào).
個性化訓練通過運用全局模型和本地模型信息輔助本地訓練,而并不直接用全局模型或上一輪本地模型進行訓練,主要以調(diào)整損失函數(shù)及聚合權(quán)重為主.FedPHP[47]的關(guān)注點在于聚合后的全局模型在本地數(shù)據(jù)集上的表現(xiàn)其實不一定比上一輪本地模型要好,于是其在全局模型本地訓練的基礎(chǔ)上,將上一輪次的本地模型信息,也用于監(jiān)督本輪次的本地模型訓練.Ditto[48]則關(guān)注的是聯(lián)邦學習算法的公平性和魯棒性,更是提出了統(tǒng)一的性能指標來表征這2個特性,并且運用求解器優(yōu)化這2 個指標.APPLE[51]則是在上述相關(guān)性聚合的基礎(chǔ)上,適應(yīng)性地調(diào)整了全局損失函數(shù)和本地損失函數(shù)之間的比例,使算法能夠更好地收斂到一個較高的準確度.APFL[46]提出了混合權(quán)重的概念,即將上一輪全局模型也納入考量之后生成的聚合權(quán)重.其在分析了本地模型和全局模型的泛化能力的基礎(chǔ)上對混合權(quán)重進行了優(yōu)化,這個混合權(quán)重最終被用于混合本地模型參數(shù)和全局模型參數(shù)以得到效果更好的模型.
獨立模型并不通過聚合的方式維護全局模型,而是直接維護各個客戶端的模型來達到個性化的目的.FedFomo[49]對每一個客戶端都維護了單獨的服務(wù)端模型,每個客戶端會根據(jù)其他服務(wù)端模型計算相關(guān)性權(quán)重矩陣,然后根據(jù)相關(guān)性權(quán)重矩陣聚合相關(guān)的服務(wù)端模型,這種方法提高了模型的個性化能力和本地模型效果.FedAMP[50]則采用了類似FedFomo的方式,進一步給出了凸優(yōu)化和非凸優(yōu)化下的理論證明.
部分聚合和個性化訓練的問題在于雖然它們在部分任務(wù)上能夠適當增加各個客戶端在本地數(shù)據(jù)集上的模型準確率,但是其泛用性較差,面對新類型數(shù)據(jù)無法有效判斷其所屬類別;獨立模型的問題在于由于維護對象的變更,網(wǎng)絡(luò)中需要傳輸?shù)臄?shù)據(jù)量變大,導(dǎo)致通信開銷大幅度提升.故而現(xiàn)有個性化模型較難在實際場景中進行部署運行.
物聯(lián)網(wǎng)及邊緣計算中的聯(lián)邦學習還存在系統(tǒng)異構(gòu)性的問題,由于不同設(shè)備計算能力和網(wǎng)絡(luò)連接情況的不同,會導(dǎo)致其單次訓練時長不同,而傳統(tǒng)聯(lián)邦學習采用同步聚合的方式,客戶端之間相互等待會帶來極大的通信開銷,解決此問題最常用的方法是異步聚合.FedAsync[52]提出了異步聯(lián)邦學習架構(gòu),傳統(tǒng)聯(lián)邦學習架構(gòu)會對上傳的模型進行同步聚合,而FedAsync則是在每一個本地模型傳到服務(wù)器端時都會單獨地將此模型和當前全局模型進行聚合以減少通信開銷.
也有部分文獻嘗試運用區(qū)塊鏈優(yōu)化異步聯(lián)邦學習.BAFL[20]從理論層面求解了最優(yōu)聚合權(quán)重,提高了算法的收斂性和最終的準確率;另一方面BAFL 對本地訓練過程進行了適應(yīng)性調(diào)整,進一步提高了訓練效率.文獻[19]類似文獻[18],利用深度強化學習做客戶端選擇.BLADE-FL[36]利用了去中心化網(wǎng)絡(luò),會在網(wǎng)絡(luò)中進行廣播操作,通信開銷較大,但給出了較為詳盡的理論分析和實驗證明其方法的收斂性.
但是異步聯(lián)邦學習的問題在于其中傳輸?shù)哪P蛥?shù)或模型更新實時性不強,低實時性模型會破壞全局模型或各客戶端模型的效果.
關(guān)于區(qū)塊鏈聯(lián)邦學習框架的研究在近幾年發(fā)展較快[18-28,30-36].在共識機制上,文獻[18]利用容器技術(shù)為聯(lián)邦學習提供后端支撐,同時利用A3C 算法做了客戶端選擇,提高了算法的收斂性和效果.而其在區(qū)塊鏈端共識機制的設(shè)計也提高了區(qū)塊鏈系統(tǒng)的效率.文獻[33]對Proof of Work 進行了理論上的優(yōu)化,降低了區(qū)塊鏈聯(lián)邦學習算法的延遲.同時其對區(qū)塊的生成過程和過程性能都做了分析和優(yōu)化,提高了區(qū)塊生成過程的效率.
在委員會機制和區(qū)塊結(jié)構(gòu)設(shè)計上,BFLC[34]使用了基礎(chǔ)的中心化區(qū)塊鏈聯(lián)邦學習框架,設(shè)計了委員會機制和區(qū)塊結(jié)構(gòu)來輔助模型存儲和模型下載.BytoChain[30]給出了針對聯(lián)邦學習訓練系統(tǒng)的區(qū)塊設(shè)計,并定性地分析了各種聯(lián)邦學習中的攻擊方式,為后續(xù)防御方式的設(shè)計給出了指導(dǎo)方向.FGFL[21]在區(qū)塊鏈委員會利用計算的客戶端可信度進行選取,在模型聚合的時候利用計算的客戶端貢獻度確定聚合權(quán)重,通過2 個客戶端指標的結(jié)合提升系統(tǒng)收斂性和效果.
在獎勵機制上,F(xiàn)edTwin[23]在原有的中心化區(qū)塊鏈聯(lián)邦學習框架的基礎(chǔ)上,用對抗生成網(wǎng)絡(luò)(generative adversarial network,GAN)進行了隱私保護,同時根據(jù)各個模型的效果提供了獎勵機制.另一方面其引入了全局模型回滾機制,防止因服務(wù)器錯誤導(dǎo)致的訓練失效.PF-PoFL[25]從任務(wù)層面對區(qū)塊鏈進行了設(shè)計,在區(qū)塊鏈中加入了任務(wù)隊列,通過下發(fā)任務(wù)接受模型參數(shù),然后通過驗證者(validator)對上傳的模型參數(shù)進行評分,并用此評分設(shè)計激勵機制,還附帶著提供了差分隱私方案.文獻[26]特別考慮了區(qū)塊鏈聯(lián)邦學習框架對多模態(tài)Transformer 任務(wù)的訓練效果,同時加入了激勵機制和差分隱私技術(shù).
當前區(qū)塊鏈聯(lián)邦學習框架的相關(guān)工作重點關(guān)注聯(lián)邦學習或者區(qū)塊鏈本身的優(yōu)化和改進.本文將重點放在了區(qū)塊鏈系統(tǒng)和聯(lián)邦學習架構(gòu)的協(xié)同設(shè)計上,從區(qū)塊鏈系統(tǒng)設(shè)計上支持聯(lián)邦學習全流程訓練,從聯(lián)邦學習架構(gòu)設(shè)計上合理利用區(qū)塊鏈透明和不可篡改的特性.同時針對系統(tǒng)異構(gòu)性和通信效率進行了優(yōu)化,以提高整體框架的訓練效率,并能夠適應(yīng)不同的運行場景.
本節(jié)主要介紹聯(lián)邦學習架構(gòu)及其公式化表達,并且將區(qū)塊鏈的概念引入聯(lián)邦學習中.
聯(lián)邦學習的核心框架是將機器學習算法推送到數(shù)據(jù)源頭,即客戶端上,并在客戶端本地對算法進行訓練.傳統(tǒng)中心化聯(lián)邦學習架構(gòu)遵循服務(wù)器-客戶模型,如圖1(a)所示,客戶端負責在本地數(shù)據(jù)集上訓練各自的本地模型,最終目的是通過聚合各本地模型,在服務(wù)器端上得到適用于大部分本地數(shù)據(jù)集的全局模型.而去中心化聯(lián)邦學習架構(gòu)則拋棄了傳統(tǒng)的服務(wù)器-客戶模型,而是轉(zhuǎn)用純分布式客戶端架構(gòu),如圖1(b)所示,客戶端既負責在本地數(shù)據(jù)集上訓練各自的本地模型,又需要根據(jù)接收到的其他客戶端的模型進行聚合得到新一輪的本地模型.更加貼合實際的則是半中心化的聯(lián)邦學習架構(gòu),如圖1(c)所示,這種架構(gòu)在服務(wù)器-客戶模型的基礎(chǔ)上也考慮了客戶與客戶之間的連接,在去中心化架構(gòu)的基礎(chǔ)上引入服務(wù)器對不可信或者距離較遠的客戶端之間進行模型交互,使得架構(gòu)既能保持一個較少的通信開銷,又能解決客戶端之間的數(shù)據(jù)孤島問題.
Fig.1 Federated learning structures,blockchain structures,and blockchain-based federated learning frameworks圖1 聯(lián)邦學習架構(gòu)、區(qū)塊鏈架構(gòu)及區(qū)塊鏈聯(lián)邦學習框架
區(qū)塊鏈的核心架構(gòu)是一個去中心化的區(qū)塊鏈系統(tǒng)和鏈狀的數(shù)據(jù)庫,如圖1(d)所示.鏈狀的數(shù)據(jù)庫用于存儲實際的區(qū)塊信息,每個數(shù)據(jù)庫包含一些數(shù)據(jù)、1 個時間戳和前一個區(qū)塊的哈希值.每個區(qū)塊的數(shù)據(jù)可以是任何形式的信息,例如交易記錄、合約代碼等;時間戳記錄了該區(qū)塊被創(chuàng)建的時間;而前一個區(qū)塊的哈希值則將當前區(qū)塊與之前的所有區(qū)塊鏈連接在一起,形成一個不可篡改的鏈式結(jié)構(gòu).而區(qū)塊鏈系統(tǒng)中的每個節(jié)點都可以維護一個副本,任何修改都需要得到網(wǎng)絡(luò)中多數(shù)節(jié)點的確認才能生效,這使得區(qū)塊鏈具有高安全性和可靠性,因為攻擊者需要修改網(wǎng)絡(luò)上大多數(shù)節(jié)點的數(shù)據(jù)才能破壞整個系統(tǒng).
在圖1(a)~(d)的基礎(chǔ)上,衍生出了中心化的區(qū)塊鏈聯(lián)邦學習框架,如圖1(e)所示.該學習框架遵循了中心化聯(lián)邦學習的架構(gòu),但是將聯(lián)邦學習中原有的服務(wù)器端替換成了一個區(qū)塊鏈系統(tǒng),使其能夠擁有去中心化、透明和不可篡改的特性.區(qū)塊鏈的功能和原有的服務(wù)器相似,負責收集本地模型,并負責聚合、存儲、下發(fā)全局模型.
本文考慮了實際場景中,尤其基于5G/6G 技術(shù)的物聯(lián)網(wǎng)場景下,客戶端之間是相互聯(lián)通的,所以本質(zhì)上是一個純分布式的架構(gòu).但是另一方面,基于可信度和網(wǎng)絡(luò)延遲的考慮,并不是所有連接都是可用的,客戶端會因為不信任對方或者對方在直連范圍之外導(dǎo)致雙方不能實現(xiàn)點對點的數(shù)據(jù)傳輸.在這種場景下,本文提出了半中心化的區(qū)塊鏈聯(lián)邦學習框架,如圖1(f)所示.將去中心化架構(gòu)和中心化架構(gòu)結(jié)合,利用去中心化架構(gòu)提升中心化架構(gòu)的傳輸效率,減少區(qū)塊鏈端的計算量;利用中心化架構(gòu)的高可信度和連通性,提高客戶端準確度,更好地解決數(shù)據(jù)孤島問題.
3)各客戶端將其新的本地模型上傳至區(qū)塊鏈.4)區(qū)塊鏈通過式(2)對上傳的本地模型進行聚合得到下一輪的全局模型 θt.聯(lián)邦學習會重復(fù)上述步驟直至輪次達到一定數(shù)量或是全局模型收斂,其中Ni表示客戶端Ci上本地數(shù)據(jù)集Di的樣本數(shù),表示第t輪中Ci對應(yīng)的聚合權(quán)重.
其中最常用的聚合權(quán)重是根據(jù)各客戶端上的樣本量決定的,如式(3)所示.
而針對半中心化的區(qū)塊鏈聯(lián)邦學習框架,由于其聚合步驟并不在區(qū)塊鏈系統(tǒng)中進行,而是各個客戶端各自進行聚合,在客戶端Ci的聚合過程中包含3種模型:第一種模型是本地模型,第二種模型來源于Ci的可信鄰居客戶端集中,第三種模型來源于區(qū)塊鏈系統(tǒng)中存儲的剩余客戶端的模型.在這種半中心化區(qū)塊鏈聯(lián)邦學習框架下,各客戶端的聚合公式就變成了式(4).
為了方便理解和引用,本文將文中所用的符號及其表述解釋整合在表1 中.
Table 1 The Used Notations and Their Descriptions in Our Paper表1 本文所用符號及其表述
本節(jié)詳細介紹本文所設(shè)計的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架及其模塊設(shè)計.本文提出了半中心化的區(qū)塊鏈聯(lián)邦學習框架,通過去中心化的高效點對點連接和中心化的區(qū)塊鏈可信機制,統(tǒng)一實現(xiàn)了可信高效的聯(lián)邦學習架構(gòu).整體模塊設(shè)計如圖2 所示,分別在聯(lián)邦學習部分和區(qū)塊鏈系統(tǒng)部分進行了設(shè)計和構(gòu)造.
Fig.2 Our proposed blockchain-assisted semi-centralized federated learning framework圖2 本文提出的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架
Fig.3 The training procedure of the semi-centralized federated learning framework圖3 半中心化聯(lián)邦學習框架的訓練流程
在聯(lián)邦學習設(shè)計部分,主要包含聚合流程的設(shè)計.聚合組件中基于Gossip 的通信機制可以在去中心化的網(wǎng)絡(luò)中利用P2P 的連接提高模型傳輸和聚合效率;基于去中心化的聚合模式使得聚合操作可以在各個客戶端上單獨進行,使得區(qū)塊鏈上的計算量大大減小,提高了整體的訓練效率;基于損失函數(shù)的聚合權(quán)重計算方案可以通過模型效果決定聚合比例,進而提高模型的準確率;基于延遲的聚合權(quán)重補償方案則根據(jù)不同本地模型所在輪次調(diào)整模型聚合時的權(quán)重,防止過時參數(shù)影響聚合后模型的準確度.
在區(qū)塊鏈系統(tǒng)設(shè)計部分,主要集中于支持半中心化聯(lián)邦學習訓練的區(qū)塊設(shè)計部分.從區(qū)塊類型來看,主要包含上傳區(qū)塊、下載區(qū)塊和評分區(qū)塊;從區(qū)塊屬性來看,主要包含了區(qū)塊頭信息、區(qū)塊個性化信息和區(qū)塊驗證信息的設(shè)計.
本文提出了半中心化的聯(lián)邦學習架構(gòu),其采用去中心化的點對點通信模式提高整體訓練效率,同時采用中心化的區(qū)塊鏈輔助解決數(shù)據(jù)孤島問題,防止模型收斂到局部最優(yōu).在聯(lián)邦學習聚合算法方面,本文主要對聚合通信模式和聚合權(quán)重計算兩方面進行了設(shè)計研究.在傳統(tǒng)中心化聯(lián)邦學習的場景下,往往采用的是同步聚合的方式,這種方式會使得計算快的客戶端需要等待計算慢的客戶端計算完成之后才能進行聚合,導(dǎo)致通信開銷較大;另一方面,為了保障可信性而將服務(wù)器端替換成區(qū)塊鏈系統(tǒng)之后,會導(dǎo)致聚合操作所花費的時間變長,這就降低了整體訓練效率.而在去中心化聯(lián)邦學習的場景下,純分布式的通信模式會導(dǎo)致距離較遠的客戶端模型參數(shù)會在很長時間之后才能夠傳輸?shù)疆斍翱蛻舳?,降低了客戶端模型泛化能力和準確度;另一方面,由于可信度考量,并非所有客戶端之間都是連通的,這就導(dǎo)致了如果采用完全去中心化通信模式,部分客戶端所聚合的模型無法表征所有數(shù)據(jù)信息,限制了模型的準確度和泛化能力.因此我們將中心化和去中心化聯(lián)邦學習架構(gòu)組合,提出了更加符合現(xiàn)實場景的半中心化聯(lián)邦學習架構(gòu).
在聚合通信模式下,本文主要采取了去中心化的聚合方案和基于Gossip 的通信機制.去中心化的聚合方案將聚合過程放在了客戶端上,每個客戶端都獨自對其本地模型、從鄰居可信客戶端接收到的本地模型和從區(qū)塊鏈系統(tǒng)中獲取的其他客戶端的可信模型3 組模型進行聚合,得到新的本地模型.同時,為了減少模型參數(shù)傳輸時數(shù)據(jù)交換請求帶來的傳輸延時,模型采用Gossip 通信機制在去中心化架構(gòu)中進行傳輸.Gossip 機制在模型本地訓練完后會向鄰居可信客戶端廣播新的本地模型參數(shù),而鄰居客戶端會重復(fù)這一操作直到所有連通客戶端均接收到此模型,這種機制可以有效減少通信等待時長,提高通信效率.
特別地,本文考慮了客戶端之間數(shù)據(jù)分布的不一致性,又稱統(tǒng)計異構(gòu)性.統(tǒng)計異構(gòu)性是由于客戶端所處環(huán)境不同,故其所能獲取到的數(shù)據(jù)種類和數(shù)據(jù)分布不同,如果將所有模型直接根據(jù)樣本數(shù)量進行加權(quán)平均,并不能很好地在本地客戶端上得到一個適用于本地數(shù)據(jù)集的模型.故而需要根據(jù)各個客戶端之間的模型表現(xiàn)進行加權(quán),提高聚合后新一輪本地模型在對應(yīng)數(shù)據(jù)集上的表現(xiàn).基于此,本文設(shè)計了基于損失函數(shù)的聚合權(quán)重調(diào)整方案,根據(jù)接收和下載到的模型對在本地數(shù)據(jù)集上推理所得到的損失函數(shù)進行加權(quán),對應(yīng)權(quán)重如式(5)所示.需要說明的是,考慮到在整個客戶端訓練集上進行推理耗時較長,本文所提出的方法采用單次推理的方式,即從客戶端數(shù)據(jù)集中隨機采樣一個批次的數(shù)據(jù)進行推理,此次推理得到的損失函數(shù)被近似作為整個數(shù)據(jù)集上的損失函數(shù)進行評價.
同時本文也考慮到了客戶端之間設(shè)備計算能力的不一致性,又稱系統(tǒng)異構(gòu)性.系統(tǒng)異構(gòu)性是由于客戶端計算硬件及計算環(huán)境不同,故其本地訓練所用時長均不相同,雖然通過去中心化的聚合方案和基于Gossip 的通信機制將客戶端之間的等待時間降到了最低,但是由于各客戶端訓練速度不同,在聚合的時候會出現(xiàn)模型所處訓練輪次不同,也就是在式(4)中會出現(xiàn)式(6)的情況.
這種情況下,如果直接聚合會導(dǎo)致過時的模型參數(shù)影響本地模型的準確度,故而需要對過時的模型參數(shù)進行一定程度上的補償和調(diào)整以提高聚合后新一輪本地模型的準確度.基于此,本文設(shè)計了基于延遲輪次的過時模型補償方案,根據(jù)接收和下載到的模型和當前模型所處輪次的差值對權(quán)重進行調(diào)整,對應(yīng)權(quán)重如式(7)所示.
基于上述聚合權(quán)重的調(diào)整和補償措施設(shè)計,本文所提出的區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架中聚合階段的總體聚合公式如式(8)所示.
式(8)中聚合權(quán)重包含了歸一化流程,其中歸一化參數(shù)wt滿足式(9).
在上述組件設(shè)計動機和設(shè)計方案下,本文所提出的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架整體訓練流程如算法1 所示.需要說明的是,所有客戶端本地模型都是由初始模型 θ0進行初始化的,而所有客戶端訓練過程都是并行進行的.
算法1.基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架中客戶端Ci在第t輪的訓練過程.
3.1 節(jié)介紹了基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架的訓練流程,其中一共存在著3 個上鏈步驟,算法1 中的④⑦⑩三個步驟分別對應(yīng)客戶端從區(qū)塊鏈系統(tǒng)下載模型所生成的下載區(qū)塊、客戶端對下載模型進行評估所生成的評分區(qū)塊以及客戶端上傳聚合后的本地模型所生成的上傳區(qū)塊.這3 種區(qū)塊設(shè)計要能夠支持半中心化聯(lián)邦學習的訓練流程,提供聯(lián)邦學習訓練所需的必要信息.總體區(qū)塊結(jié)構(gòu)設(shè)計如圖4 所示,下面會詳細描述這3 種區(qū)塊的組成結(jié)構(gòu).
Fig.4 The design of the block structures in the blockchain system圖4 區(qū)塊鏈系統(tǒng)中的區(qū)塊結(jié)構(gòu)設(shè)計
所有區(qū)塊設(shè)計都包含主要三大部分內(nèi)容:區(qū)塊頭信息、區(qū)塊個性化信息和區(qū)塊驗證信息.
1)區(qū)塊頭信息.區(qū)塊頭主要記錄了區(qū)塊本身的一些用于區(qū)塊鏈的歷史記錄和追溯所需要的信息.區(qū)塊頭中統(tǒng)一的信息有3 個:區(qū)塊ID 賦予了當前區(qū)塊一個唯一的標識,使得其他區(qū)塊能夠?qū)Ξ斍皡^(qū)塊進行區(qū)分和引用;區(qū)塊時間戳記錄了當前區(qū)塊上鏈的時間,方便后續(xù)對于異常情況的追溯和時間線構(gòu)建;區(qū)塊類型則是記錄了當前區(qū)塊是下載區(qū)塊、評分區(qū)塊和上傳區(qū)塊的哪一種,便于后續(xù)對區(qū)塊個性化信息的處理.客戶端ID 記錄了當前區(qū)塊所包含的操作涉及的客戶端識別信息,便于追溯操作者.
2)區(qū)塊個性化信息.主要包含了用于聯(lián)邦學習訓練過程所需的信息和屬性.此部分和區(qū)塊類型強相關(guān),后續(xù)會根據(jù)區(qū)塊類型做詳細介紹.
3)區(qū)塊驗證信息.主要是區(qū)塊鏈本身用于其內(nèi)容準確性驗證的信息,通過記錄父區(qū)塊的哈希值和本區(qū)塊的哈希值,可以保障攻擊者沒有辦法通過修改單一區(qū)塊破壞整個區(qū)塊鏈,保障了區(qū)塊鏈的不可篡改性.
在上述區(qū)塊設(shè)計的基礎(chǔ)上,針對不同功能的區(qū)塊進行了一定的個性化設(shè)計以支撐區(qū)塊的指定功能.
下載區(qū)塊負責記錄某客戶端從區(qū)塊鏈系統(tǒng)中下載的某一個模型,以此可以對此模型上傳者的貢獻度進行更新,或者根據(jù)其知識產(chǎn)權(quán)提供獎勵.另一方面如果系統(tǒng)中某客戶端本地模型出現(xiàn)了不安全或是錯誤,可以通過追溯下載記錄確定是否是區(qū)塊鏈系統(tǒng)中存儲的模型導(dǎo)致的,這樣可以保障系統(tǒng)的可追溯性.在區(qū)塊頭信息中,下載區(qū)塊的客戶端ID 會記錄是哪一個客戶端進行的下載操作,便于追溯;而在區(qū)塊個性化信息中,會記錄此次下載操作是下載的哪一個上傳區(qū)塊中的模型參數(shù),記錄的內(nèi)容是模型參數(shù)所在的區(qū)塊ID.通過記錄區(qū)塊ID 而非模型參數(shù)可以有效減少此區(qū)塊占用的存儲空間.
評分區(qū)塊負責記錄某客戶端對區(qū)塊鏈系統(tǒng)中某個模型參數(shù)的評價,主要是記錄對用模型在此客戶端上推理所得的損失函數(shù)值,使得系統(tǒng)能夠?qū)δ骋荒P蛥?shù)的質(zhì)量和可信度進行跟蹤和記錄.這樣可以根據(jù)其質(zhì)量給予對應(yīng)模型參數(shù)上傳的客戶端以激勵,以推動客戶端進行高質(zhì)量訓練.在區(qū)塊頭信息中,評分區(qū)塊的客戶端ID 會記錄是哪一個客戶端進行的評分操作,便于追溯;而在區(qū)塊個性化信息中,會記錄此次評分操作是評價的哪一個上傳區(qū)塊中的模型參數(shù),記錄的內(nèi)容是模型參數(shù)所在的區(qū)塊ID 和對應(yīng)的評分.本文主要對評分區(qū)塊進行了設(shè)計,暫未對評分區(qū)塊的后續(xù)利用進行展開.
上傳區(qū)塊負責存儲某客戶端進行本地聚合后得到的新一輪本地模型,主要是用于為其他客戶端提供可信的模型參數(shù)用于聚合,以提高各客戶端本地模型的準確性和泛化性.在區(qū)塊頭信息中,上傳區(qū)塊的客戶端ID 會記錄是哪一個客戶端上傳的模型參數(shù),便于追溯;而在區(qū)塊個性化信息中,會記錄此次上傳的全部模型參數(shù).
在本節(jié)中,我們在4.1 節(jié)提供了實驗設(shè)置,4.2 節(jié)對本文提出的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架進行了測試.
本節(jié)提供了本文中后續(xù)實驗部分的硬件設(shè)備、數(shù)據(jù)集介紹、數(shù)據(jù)分布、神經(jīng)網(wǎng)絡(luò)模型選取、超參數(shù)設(shè)定、基準算法和測試指標等.
1)硬件設(shè)備.實驗是在Intel?Xeon?Gold 6140 CPU 和一個8 節(jié)點 GeForce RTX 2080 Ti GPU 的硬件環(huán)境下進行的.
2)數(shù)據(jù)集介紹.實驗在FMNIST[53]和CIFAR10[54]數(shù)據(jù)集上均進行了測試.FMNIST 數(shù)據(jù)集涵蓋了來自10 個類別的7 萬個不同商品的正面圖片,其訓練集包含6 萬個商品,測試集包含1 萬個商品,每個商品為28×28 的灰度圖像.CIFAR10 數(shù)據(jù)集涵蓋了來自10個類別的6 萬張普適物體的圖像,其訓練集包含5 萬個物體,測試集包含1 萬個物體,每個物體為32×32的彩色RGB 圖像.
3)數(shù)據(jù)分布.實驗在病態(tài)獨立同分布(Pathelogical,PAT)和基于Dirichlet 的非獨立同分布(DIR)上均進行了對比,如圖5 所示.PAT 中每個客戶端只包含2 種標簽,并且在擁有同樣標簽的客戶端中隨機分配數(shù)據(jù);而DIR 則根據(jù)數(shù)據(jù)標簽,基于Dirichlet分布對數(shù)據(jù)進行了分配.圖5 中不同顏色代表了不同客戶端的數(shù)據(jù)集上含有對應(yīng)標簽的比例.
Fig.5 The PAT and DIR distribution of FMNIST dataset for different clients圖5 不同客戶端在FMNIST 數(shù)據(jù)集的PAT 分布和DIR 分布
4)神經(jīng)網(wǎng)絡(luò)模型選取.實驗在FMNIST 數(shù)據(jù)集和CIFAR10 數(shù)據(jù)集上均采用了雙層卷積神經(jīng)網(wǎng)絡(luò),如圖6 所示.2 個數(shù)據(jù)集上的模型結(jié)構(gòu)相同,因輸入輸出不同,故模型中參數(shù)數(shù)量略有不同.
5)超參數(shù)設(shè)定.實驗中對于場景設(shè)定有若干超參數(shù)設(shè)置.其中客戶端數(shù)量設(shè)置為20;除非特殊說明,50%的客戶端計算速度相比另外的50%慢了一倍,即存在系統(tǒng)異構(gòu)性;每個實驗結(jié)果均經(jīng)過5 次評估并取統(tǒng)計學結(jié)果.對于聯(lián)邦學習訓練過程也有若干超參數(shù)設(shè)置.其中批次大小設(shè)置為10,即同一個批次內(nèi)包含10 條數(shù)據(jù);設(shè)置本地學習率 α=0.005;本地訓練次數(shù)設(shè)置為1,即客戶端只在本地數(shù)據(jù)集上進行1次遍歷并進行梯度下降操作;最大訓練輪次被設(shè)置為100,即所有客戶端在聚合100 次后停止訓練;聚合比例為100%,即在中心化聯(lián)邦學習算法中所有客戶端均參與每一輪聚合.其他未提及的超參數(shù)均按各算法在原論文中的設(shè)置.
6)基準算法.本文主要構(gòu)建了基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架,在訓練準確率和效率上進行了優(yōu)化,故將其主要和傳統(tǒng)聯(lián)邦學習算法[38-39,42,45,47]、個性化聯(lián)邦學習算法[43-44,46,48-51]和異步聯(lián)邦學習算法[52]做了對比.
7)測試指標.本文主要考慮所提出的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架的準確率和效率,故采用了測試集準確率和測試集AUC 作為準確率指標,這兩者值越高代表模型準確率越高;采用了平均訓練時間和設(shè)備計算時長比例作為效率指標,其中平均訓練時間越低代表計算效率越高,設(shè)備計算時長比例越高,代表設(shè)備之間訓練時間差距越小,設(shè)備利用率越高.設(shè)備計算時長比例由式(10)計算得出.
在本節(jié)中,我們對比了基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架與傳統(tǒng)聯(lián)邦學習算法的準確率和效率,在FMNIST 數(shù)據(jù)集的DIR 分布下的結(jié)果如表2所示,在CIFAR10 數(shù)據(jù)集的DIR 分布下的結(jié)果如表3所示.從表2 和表3 可以看出,本文所提出的方案在準確率和效率上存在著若干特性.從測試準確率和測試AUC 上可以看出,本文所提出的方法比傳統(tǒng)聯(lián)邦學習算法和異步聯(lián)邦學習算法效果要好得多,主要是由于在非獨立同分布的數(shù)據(jù)分布下,采用統(tǒng)一的全局模型作為最終的模型是不合適的.對各個客戶端本地模型進行加權(quán)得到統(tǒng)一的全局模型會破壞在各個客戶端上學習到的個性化信息,這也是個性化聯(lián)邦學習算法擬解決的問題.故而在準確率上,個性化聯(lián)邦學習算法均得到了較好的效果,而我們算法的準確率比個性化聯(lián)邦學習的算法準確率低了8%~13%,這主要是由于本文所提出的框架并未在算法層面進行個性化設(shè)計.但是本文框架可用性較好,后續(xù)會在本文框架基礎(chǔ)上對個性化算法的嵌入進行進一步研究以提高框架準確率.
Table 2 Results of Our Framework and Other Federated Learning Frameworks Under FMNIST-DIR表2 本文框架與其他聯(lián)邦學習框架在FMNIST-DIR 下的結(jié)果
Table 3 Results of Our Framework and Other Federated Learning Frameworks Under CIFAR10-DIR表3 本文框架與其他聯(lián)邦學習框架在CIFAR10-DIR 下的結(jié)果
從平均訓練時間和設(shè)備計算時長比例可以看出,本文所提框架所用平均訓練時間和傳統(tǒng)聯(lián)邦學習算法相當,主要是因為并未引入大量額外計算,所以本地訓練和傳統(tǒng)聯(lián)邦學習算法計算量相似.唯一引入的額外計算是對接收和下載到的模型進行評價,但是由于本文的評價方式是采用隨機采樣的一個批次數(shù)據(jù)的損失函數(shù)作為對應(yīng)模型的評價指標,并未對整個數(shù)據(jù)集進行遍歷,故而相比本地訓練,本文評價過程并未引入過多的計算開銷.同時可以看出大部分個性化聯(lián)邦學習算法由于在客戶端進行了額外的計算,其平均訓練時間均相比傳統(tǒng)聯(lián)邦學習算法長.另一方面,從設(shè)備計算時長比例可以看出,在50%的客戶端訓練時間較長時,傳統(tǒng)聯(lián)邦學習算法和個性化聯(lián)邦學習算法的比例均不到50%,而本文框架算法和異步聯(lián)邦學習算法FedAsync 均有100%的設(shè)備計算時長比例.FedAsync 有此等效果主要是因為其并沒有聚合過程,而只是在每一個本地模型上傳到服務(wù)器后單獨進行聚合,并沒有客戶端之間相互等待的時間;而本文所提框架的聚合過程是分布式的,雖然依舊是在各個客戶端上進行同步聚合,但是由于不限制只對當前輪次的模型進行聚合,故而不需要等待其他客戶端訓練完成來進行聚合,所以也不存在等待時間.
特別地,本文對框架設(shè)計的聚合權(quán)重進行了消融實驗,主要針對基于損失函數(shù)的聚合權(quán)重設(shè)計(loss)和基于延遲輪次的過時參數(shù)補償方案(delay)這2 種權(quán)重.Ours-delay 表示從我們的方法中刪除基于損失函數(shù)的聚合權(quán)重設(shè)計.可以看出,基于損失函數(shù)的聚合權(quán)重設(shè)計在任何情況下均能提高框架的最終準確率,這是因為這種方法可以有效避免統(tǒng)計異構(gòu)性帶來的最優(yōu)模型參數(shù)的區(qū)別,使得各個客戶端可以去選取更適合本地數(shù)據(jù)集的模型參數(shù)進行聚合;而在存在系統(tǒng)異構(gòu)性的情況下,基于延遲輪次的過時參數(shù)補償方案可以進一步提升最終準確率,這是因為這種設(shè)計可以有效避免過時參數(shù)影響聚合模型.
另外,本文對系統(tǒng)異構(gòu)性的存在與否也進行了測試,如表4 所示.從表4 可以看出,針對測試準確度和測試AUC,系統(tǒng)異構(gòu)性不影響傳統(tǒng)聯(lián)邦學習算法和個性化聯(lián)邦學習算法,也不影響其訓練準確度,故最終的結(jié)果均沒有太大變化.但對于異步聯(lián)邦學習和本文提出的算法而言,系統(tǒng)異構(gòu)性會造成一定的負面影響,但本文方法可以有效減少此影響.在平均訓練時間和設(shè)備計算時長比例方面,平均訓練時間本身就是系統(tǒng)異構(gòu)性的指標體現(xiàn),故而有系統(tǒng)異構(gòu)性時,會表現(xiàn)為平均訓練時間變長;隨著系統(tǒng)異構(gòu)性的減小,雖然設(shè)備計算時長比例均有所提升,但是仍舊不超過55%,說明在系統(tǒng)中,尤其本文的訓練任務(wù)和網(wǎng)絡(luò)模型下,設(shè)備本身的波動就會帶來極大的通信開銷,導(dǎo)致系統(tǒng)訓練效率降低,設(shè)備利用率低,進而證明了采用本文所提出的半中心化的聯(lián)邦學習架構(gòu)的必要性和有效性.
Table 4 Results of Our Framework and Other Federated Learning Frameworks Under CIFAR10-DIR Without Straggler表4 本文框架與其他聯(lián)邦學習框架在沒有系統(tǒng)異構(gòu)性時CIFAR10-DIR 下的結(jié)果
另外,本文對PAT 分布下的實驗效果也進行了測試,如表5 所示.從表5 可以看出,在PAT 分布下,測試準確率、測試AUC、平均訓練時間和設(shè)備計算時長比例這4 項指標的變化趨勢均與DIR 分布下的指標變化趨勢相同,說明我們提出的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架能夠在不同的非獨立同分布數(shù)據(jù)下均有相同的效果和表現(xiàn).
Table 5 Results of Our Framework and Other Federated Learning Frameworks Under CIFAR10-PAT表5 本文框架與其他聯(lián)邦學習框架在CIFAR10-PAT 下的結(jié)果
表5 (續(xù))
本文提出了一種基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架,可以在適配物聯(lián)網(wǎng)場景的前提下,提高聯(lián)邦學習算法的準確率和效率,其設(shè)計能夠知道實際環(huán)境中的框架部署.半中心化的聯(lián)邦學習框架可以有效利用物聯(lián)網(wǎng)中的網(wǎng)絡(luò)連接以輔助聯(lián)邦學習任務(wù)的完成,同時可以分散聚合操作至各個客戶端以減少通信開銷.而針對聯(lián)邦學習的區(qū)塊鏈區(qū)塊設(shè)計則基于聯(lián)邦學習訓練過程,設(shè)計了下載區(qū)塊、上傳區(qū)塊和評分區(qū)塊以指導(dǎo)區(qū)塊鏈聯(lián)邦學習系統(tǒng)部署.實驗結(jié)果表明,本文提出的基于區(qū)塊鏈輔助的半中心化聯(lián)邦學習框架在準確度方面相較于傳統(tǒng)聯(lián)邦學習算法至少提高了8%,在效率方面則大幅度降低了因客戶端相互等待帶來的通信開銷.因此,本文的方法是可行且高效的.但本文也有部分限制:1)雖然實驗可以證明方法有效性,但是算法收斂性缺乏一定的理論證明,相關(guān)研究對于異步聯(lián)邦學習和同步聯(lián)邦學習均有理論依據(jù),故本文后續(xù)會從理論角度對半中心化聯(lián)邦學習框架進行分析;2)算法中對區(qū)塊鏈中的共識算法等內(nèi)容并未進行對應(yīng)聯(lián)邦學習任務(wù)的設(shè)計,且評分區(qū)塊雖有設(shè)計,但并未加以利用,故本文后續(xù)會從區(qū)塊鏈中的算法設(shè)計和聯(lián)邦學習任務(wù)進一步適配展開;3)本文框架準確率相較個性化聯(lián)邦學習仍有優(yōu)化空間,故而本文后續(xù)會研究個性化聯(lián)邦學習算法的嵌入.
作者貢獻聲明:施宏建負責實驗方法設(shè)計、實驗數(shù)據(jù)整理與分析、論文初稿撰寫;馬汝輝負責實驗設(shè)計驗證與核實、論文審閱與修訂;張衛(wèi)山負責論文審閱與修訂;管海兵負責論文審閱與修訂.