周靈靈,付宇釧,李長樂
(西安電子科技大學(xué)空天地一體化綜合業(yè)務(wù)網(wǎng)全國重點(diǎn)實(shí)驗(yàn)室,陜西 西安 710071)
自動駕駛汽車需要從海量數(shù)據(jù)中學(xué)習(xí)與駕駛相關(guān)的功能[1-4]。與傳統(tǒng)的分布式機(jī)器學(xué)習(xí)技術(shù)相比,聯(lián)邦學(xué)習(xí)(Federated Learning,FL)由于其分布式、增強(qiáng)隱私保護(hù)等特性,可以在不共享原始數(shù)據(jù)的前提下實(shí)現(xiàn)大規(guī)模分布式訓(xùn)練[5-8]。隨著通信技術(shù)的發(fā)展,自動駕駛汽車可以通過加入FL來實(shí)現(xiàn)協(xié)作式環(huán)境感知、協(xié)同決策、交通流預(yù)測等。因此,借助于FL,車輛可以從數(shù)據(jù)提供者向智能共享范式轉(zhuǎn)變,有助于降低自動駕駛的開發(fā)成本,為自動駕駛的發(fā)展和運(yùn)行提供顯著的好處[9]。
目前將FL應(yīng)用于車聯(lián)網(wǎng)領(lǐng)域受到廣泛研究。文獻(xiàn)[10]介紹了一種用于自動駕駛車輛的端到端FL方法,并通過車輪轉(zhuǎn)向角預(yù)測驗(yàn)證了所提出的方法,表明FL可以顯著提高局部邊緣模型的質(zhì)量,并加快模型訓(xùn)練速度并減少通信開銷。文獻(xiàn)[9]提出一種選擇性聯(lián)邦強(qiáng)化學(xué)習(xí)策略,綜合考慮模型質(zhì)量、用戶信譽(yù)和資源約束進(jìn)行用戶篩選,提高自動駕駛的準(zhǔn)確性和環(huán)境適應(yīng)性模型。文獻(xiàn)[11]提出了一種聯(lián)邦強(qiáng)化學(xué)習(xí)架構(gòu),以實(shí)現(xiàn)自動駕駛車輛在不同環(huán)境下的碰撞避免。以上工作有效地提升了自動駕駛模型的準(zhǔn)確性,然而由于其基于傳統(tǒng)FL的服務(wù)器/客戶端架構(gòu),可擴(kuò)展性較差,且存在服務(wù)器單點(diǎn)故障的可能性,系統(tǒng)可靠性會下降。另外,車輛參與者涉及不同的駕駛場景、數(shù)據(jù)異構(gòu),在這種架構(gòu)下隨著車輛參與者的增加,整體學(xué)習(xí)效率會下降[12]。區(qū)塊鏈?zhǔn)且环N去中心化的分布式數(shù)據(jù)庫,由于其透明、不可篡改、數(shù)據(jù)可追溯的特點(diǎn),成為分布式環(huán)境中可靠且值得信賴的系統(tǒng),這種天然優(yōu)勢適用于和車聯(lián)網(wǎng)相結(jié)合[13]。首先,區(qū)塊鏈去中心化的特點(diǎn)使得每個節(jié)點(diǎn)都備份完整的數(shù)據(jù)信息,可以彌補(bǔ)集中式管理存在的單點(diǎn)故障的缺陷。其次,利用區(qū)塊鏈的匿名性、不可篡改和可追溯性的技術(shù)特征,確保了數(shù)據(jù)流轉(zhuǎn)的隱私性、安全性和完整性[14]。最后,可以設(shè)計共識算法、智能合約形成有效的管理和自動運(yùn)行機(jī)制,以提高運(yùn)行效率。例如,文獻(xiàn)[15]將FL結(jié)合區(qū)塊鏈引入自動駕駛,考慮了惡意移動邊緣計算(Mobile Edge Computing,MEC)服務(wù)器和惡意車輛,并設(shè)計了相應(yīng)的隱私保護(hù)方案。為了解決FL中的惡意攻擊問題,文獻(xiàn)[16]提出了一種車聯(lián)網(wǎng)中結(jié)合FL和區(qū)塊鏈的去中心化機(jī)器學(xué)習(xí)系統(tǒng),所提出的方法在防止惡意攻擊方面表現(xiàn)良好。然而,能耗和效率問題沒有得到很好的考慮。同樣,文獻(xiàn)[17]提出了一種基于區(qū)塊鏈的分布式自動駕駛架構(gòu),通過提高協(xié)作者和數(shù)據(jù)的質(zhì)量來提升車輛協(xié)作定位精度。
然而,由于缺少相應(yīng)的本地模型質(zhì)量驗(yàn)證機(jī)制,聯(lián)邦學(xué)習(xí)的全局模型容易受到惡意用戶的攻擊從而導(dǎo)致模型訓(xùn)練的準(zhǔn)確率降低。此外,傳統(tǒng)單一區(qū)塊鏈在FL局部和全局模型更新管理問題上的靈活性也需要進(jìn)一步研究。針對有關(guān)移動車聯(lián)網(wǎng)聯(lián)邦學(xué)習(xí)研究中缺乏對各方信譽(yù)的高效管理的問題,本文提出一種基于分層區(qū)塊鏈的聯(lián)邦學(xué)習(xí)信譽(yù)管理架構(gòu),以選擇高質(zhì)量的本地模型并提高系統(tǒng)靈活性以適用于車聯(lián)網(wǎng)環(huán)境。首先介紹整個架構(gòu)的組成以及具體的工作流程,然后設(shè)計智能合約為系統(tǒng)提供更加靈活可信的信譽(yù)意見共享環(huán)境,并開發(fā)一種輕量級的區(qū)塊鏈共識算法,以提升區(qū)塊鏈的運(yùn)行效率,最后通過仿真驗(yàn)證所提方法的性能。
如圖1所示,構(gòu)建的分層區(qū)塊鏈聯(lián)邦學(xué)習(xí)信譽(yù)管理架構(gòu)包括3個主要部分:聯(lián)邦學(xué)習(xí)層、信譽(yù)管理層和區(qū)塊鏈層。在聯(lián)邦學(xué)習(xí)層中,任務(wù)發(fā)布者、路側(cè)設(shè)備和本地車輛用戶參與聯(lián)邦學(xué)習(xí)任務(wù)。信譽(yù)管理層負(fù)責(zé)將任務(wù)發(fā)布者計算得到的本地用戶信譽(yù)值添加到任務(wù)區(qū)塊側(cè)鏈,每個任務(wù)發(fā)布者對應(yīng)一個區(qū)塊側(cè)鏈。在區(qū)塊鏈層中,使用分層聯(lián)盟區(qū)塊鏈結(jié)構(gòu)將任務(wù)側(cè)鏈和公共區(qū)塊鏈結(jié)合起來,以分散和安全地存儲信譽(yù)值,并通過智能合約提供可信的信譽(yù)意見共享環(huán)境[18]。具體流程如下:
圖1 分層區(qū)塊鏈?zhǔn)鼓艿穆?lián)邦學(xué)習(xí)信譽(yù)管理架構(gòu)
(1)建立模型訓(xùn)練側(cè)鏈和本地用戶身份驗(yàn)證:請求者和參與者將他們的身份信息(公/私鑰以及數(shù)字證書)發(fā)給最近的礦工進(jìn)行驗(yàn)證,為用戶創(chuàng)建合法賬戶;
(2)任務(wù)發(fā)布者發(fā)布聯(lián)邦學(xué)習(xí)任務(wù):系統(tǒng)中注冊的請求者將感知任務(wù)請求發(fā)送給距其最近的礦工;
(3)本地車輛用戶請求加入聯(lián)邦學(xué)習(xí)任務(wù):參與者收到平臺發(fā)來的任務(wù)信息后,提出請求加入FL任務(wù);
(4)本地車輛用戶候選人選擇:車輛參與者加入該FL任務(wù)的候選人集合,任務(wù)發(fā)布方選擇相應(yīng)的參與者;
(5)聯(lián)邦學(xué)習(xí)訓(xùn)練的進(jìn)行:車輛使用本地數(shù)據(jù)集獨(dú)立訓(xùn)練模型,然后每輛車將本地更新上傳到模型訓(xùn)練側(cè)鏈;
(6)信譽(yù)意見的計算及上鏈操作:對參與者的模型質(zhì)量和訓(xùn)練行為進(jìn)行評估,更新聲譽(yù)值,并存儲在主鏈中。特別是,在每次迭代之后,參與者的聲譽(yù)都會被記錄為上傳到區(qū)塊鏈;
(7)任務(wù)區(qū)塊側(cè)鏈錨定到主鏈:為了有效監(jiān)控子鏈的行為,避免單個區(qū)塊鏈資源有限,所有子鏈在一段時間后都應(yīng)該錨定到主鏈上。各子鏈的數(shù)據(jù)不存儲在主鏈上,從而實(shí)現(xiàn)隱私保護(hù)、資源節(jié)省和可擴(kuò)展性增加;
(8)選擇高信譽(yù)的本地車輛用戶加入聯(lián)邦學(xué)習(xí)訓(xùn)練:為了獲得高質(zhì)量的全局模型,車輛聲譽(yù)值計算完成后,任務(wù)發(fā)布者下載最新的區(qū)塊數(shù)據(jù),并選擇聲譽(yù)值大于預(yù)設(shè)閾值的車輛加入下一個FL任務(wù)。
為了提高聯(lián)邦學(xué)習(xí)的可信度和可靠性,聯(lián)邦學(xué)習(xí)任務(wù)關(guān)鍵流程由智能合約承擔(dān)。智能合約以代碼形式存儲在區(qū)塊鏈上,包括預(yù)期條件、預(yù)期操作和圖靈完備狀態(tài)機(jī)。圖靈狀態(tài)機(jī)用于判斷觸發(fā)條件是否成立,一旦滿足條件,智能合約將在每個節(jié)點(diǎn)上獨(dú)立自動執(zhí)行。合約及相關(guān)信息對所有網(wǎng)絡(luò)節(jié)點(diǎn)都是公開可見的,從而防止感知系統(tǒng)中可能存在的“合謀”行為。
在任務(wù)執(zhí)行過程中,節(jié)點(diǎn)可以通過調(diào)用相應(yīng)的智能合約來完成任務(wù),主要涉及4個智能合約,包括任務(wù)發(fā)布及車輛用戶FLVC認(rèn)證合約、信譽(yù)上傳合約、信譽(yù)訪問合約、信譽(yù)篩選合約。
(1)任務(wù)發(fā)布及FLVC認(rèn)證合約
通過路側(cè)單元(Roadside Unit,RSU)向平臺發(fā)送請求,經(jīng)礦工驗(yàn)證后任務(wù)發(fā)布者可以發(fā)布任務(wù)。參與者需要在系統(tǒng)中注冊才能加入FL任務(wù),當(dāng)滿足注冊合約觸發(fā)條件時,會觸發(fā)任務(wù)發(fā)布及FLVC認(rèn)證合約。請求者或參與者將身份信息發(fā)送給距離其最近的礦工進(jìn)行身份驗(yàn)證,驗(yàn)證通過后系統(tǒng)為其分配一個合法的用戶ID,并初始化其信譽(yù)值,將車輛客戶端加入到FL任務(wù)的候選人集合。具體流程見算法1。該合約可以自動執(zhí)行,實(shí)現(xiàn)高效任務(wù)發(fā)布和用戶注冊,并且不會干擾下次合約的觸發(fā)。
(2)信譽(yù)上傳合約
任務(wù)發(fā)布后,需要執(zhí)行信譽(yù)上傳合約,任務(wù)發(fā)布方FLTB首先計算得出FLVC的直接信譽(yù)值rep,其次根據(jù)密鑰對信譽(yù)值進(jìn)行加密,并將其上傳任務(wù)區(qū)塊側(cè)鏈,由于任務(wù)區(qū)塊側(cè)鏈隔一段時間將會被錨定到主鏈,所以,信譽(yù)值也被上傳至主鏈,同時主鏈返回信譽(yù)索引。再次驗(yàn)證FLTB的注冊地址和公鑰的關(guān)系,如果通過驗(yàn)證,則合約將通過操作獲取FLVC信譽(yù)索引清單和其對應(yīng)的私鑰清單,否則驗(yàn)證失敗。一方面,側(cè)鏈的數(shù)據(jù)以分散和安全地存儲信譽(yù)值,從而實(shí)現(xiàn)了隱私保護(hù)和可擴(kuò)展性。其次,主鏈返回的信譽(yù)索引便于管理和訪問。
(3)信譽(yù)訪問合約
如算法3的流程描述,F(xiàn)LTB首先將FLVC的注冊地址、信譽(yù)值索引、被訪問的公鑰和任務(wù)發(fā)布方的公鑰發(fā)送到合約。合約驗(yàn)證需要獲取其他FLVC的身份信息以驗(yàn)證間接信譽(yù)值。如果驗(yàn)證通過,當(dāng)信譽(yù)索引值屬于信譽(yù)索引清單時,更新記錄的訪問時間,返回加密密鑰和給請求訪問的FLTB,得到對稱密鑰并查詢被訪問FLVC的間接信譽(yù)值。當(dāng)信譽(yù)索引值不屬于信譽(yù)索引清單時,則無法訪問FLVC的信譽(yù)索引。當(dāng)一切順利,返回允許訪問的結(jié)果,并提供加密密鑰和信譽(yù)索引清單。如果驗(yàn)證不通過,則返回拒絕訪問的結(jié)果,即訪問失敗。該合約能夠自動保護(hù)信譽(yù)訪問的合法性,避免非法用戶獲取信譽(yù)信息。
(4)FLVC信譽(yù)篩選合約
如算法4的流程描述,F(xiàn)LTB通過信譽(yù)訪問合約獲取FLVC的信譽(yù)索引及信譽(yù)分?jǐn)?shù)并建立FLVC任務(wù)群體名單。對于FLVC任務(wù)群體名單中的每個FLVC,F(xiàn)LTB根據(jù)FLVC的信譽(yù)分?jǐn)?shù)以及提前設(shè)置的信譽(yù)閾值進(jìn)行篩選,只有符合要求的FLVC能夠留在任務(wù)群體名單中,并更新記錄其相關(guān)信息。對于不符合要求的FLVC,則將其從任務(wù)群體名單中刪除。該合約能夠提高FLVC篩選效率,并避免低信譽(yù)值的用戶后續(xù)影響任務(wù)質(zhì)量。
在共識算法選擇方面,考慮到大規(guī)模車聯(lián)網(wǎng)環(huán)境的復(fù)雜性和多變性,參考文獻(xiàn)[19]中的方法,對傳統(tǒng)的工作量證明(Proof of Work,PoW)共識算法進(jìn)行改進(jìn),提出了一種基于參數(shù)訓(xùn)練質(zhì)量(Proof of Quality,PoQ)的輕量級區(qū)塊鏈共識算法。其中訓(xùn)練質(zhì)量根據(jù)區(qū)塊鏈上的歷史訓(xùn)練記錄、車輛用戶的信譽(yù)值以及用戶的活躍度進(jìn)行計算。將PoW共識算法中無意義地尋找隨機(jī)數(shù)的計算工作,替換為對模型參數(shù)準(zhǔn)確率進(jìn)行認(rèn)證的工作。利用平均絕對誤差來衡量訓(xùn)練所得模型的質(zhì)量。與PoW共識算法相比,PoQ減少了大量尋找隨機(jī)數(shù)的無意義工作,并且可以節(jié)省大量計算資源和通信資源。其共識過程如圖2所示,流程如下:
圖2 PoQ共識算法流程
(1)從信譽(yù)區(qū)塊鏈中的所有節(jié)點(diǎn)中隨機(jī)選擇一些認(rèn)證節(jié)點(diǎn)作為共識委員會節(jié)點(diǎn);
(2)根據(jù)信譽(yù)區(qū)塊鏈中記錄的歷史性能和一些隨機(jī)因素,選出一個領(lǐng)導(dǎo)節(jié)點(diǎn),收集打包的交易,并將區(qū)塊廣播給其他節(jié)點(diǎn);
(3)共識委員會節(jié)點(diǎn)采用PoQ認(rèn)證模型參數(shù),將結(jié)果返回給領(lǐng)導(dǎo)節(jié)點(diǎn);
(4)領(lǐng)導(dǎo)節(jié)點(diǎn)對返回的認(rèn)證結(jié)果進(jìn)行統(tǒng)計,根據(jù)綜合認(rèn)證結(jié)果判斷區(qū)塊的合法性。
本節(jié)由兩部分組成,第一部分介紹仿真,第二部分分析性能。
為了更好地與其他方法進(jìn)行性能比較,使用 MNIST 數(shù)據(jù)集進(jìn)行了模擬。在FL中,設(shè)置了3個任務(wù)發(fā)布者,全局模型和局部模型的迭代次數(shù)都設(shè)置為10。參與FL的車輛數(shù)量設(shè)置為100,每個任務(wù)選擇10輛車輛進(jìn)行訓(xùn)練FL任務(wù)。假設(shè)這100輛車在車聯(lián)網(wǎng)環(huán)境中位置分布均勻,車輛行駛時速在0 到36 m/s之間。此外,在100個客戶端中設(shè)置了3輛惡意車輛,其中7輛數(shù)據(jù)質(zhì)量較差,其余為行為良好的車輛。在區(qū)塊鏈架構(gòu)中,設(shè)置了1條主鏈和3條任務(wù)側(cè)鏈,所有側(cè)鏈均采用PoQ共識算法。在聲譽(yù)值的計算中,將任務(wù)發(fā)布者與車輛之間的事件設(shè)置為每周10~20個FL任務(wù)的交互頻率。信息交換過程中數(shù)據(jù)包傳輸不成功的概率為1%~40%,參與FL任務(wù)的所有車輛的初始信譽(yù)值設(shè)置為0.5,范圍為0~1。
圖3為不同節(jié)點(diǎn)個數(shù)下數(shù)據(jù)傳輸成功概率為0和不為0情況下PoQ與PoW通信開銷和計算開銷的對比。結(jié)果表明,隨著節(jié)點(diǎn)數(shù)的增加,兩者的通信開銷和計算開銷都在增加,但PoQ的開銷小于PoW的開銷。這是因?yàn)閭鹘y(tǒng)的PoW共識算法在認(rèn)證節(jié)點(diǎn)時需要尋找大量的隨機(jī)數(shù)進(jìn)行計算,這往往具有較高的計算復(fù)雜度。在PoQ算法中,將尋找無意義隨機(jī)數(shù)的工作替換為驗(yàn)證模型參數(shù)準(zhǔn)確性的工作,節(jié)省了計算資源和通信資源。
圖3 不同節(jié)點(diǎn)個數(shù)下PoQ與PoW的通信與計算開銷
圖4驗(yàn)證了FedAvg[20]和提出的基于信譽(yù)篩選的聯(lián)邦學(xué)習(xí)方法在數(shù)據(jù)為IID時網(wǎng)絡(luò)中存在惡意節(jié)點(diǎn)的準(zhǔn)確率性能。將惡意節(jié)點(diǎn)比例設(shè)置為50%。為了使效果最明顯,每個惡意節(jié)點(diǎn)提供的數(shù)據(jù)質(zhì)量為0%。從圖4可以明顯看出,本文提出的方法對惡意節(jié)點(diǎn)的抵抗能力相對較強(qiáng)。在惡意節(jié)點(diǎn)百分比達(dá)到50%時,該方法仍然保持較高的性能,而FedAVG的準(zhǔn)確率受到嚴(yán)重破壞。
圖4 所提方法與FedAvg的FL準(zhǔn)確率對比
圖5驗(yàn)證了分層區(qū)塊鏈結(jié)構(gòu)下單鏈與多側(cè)鏈并行時的交易吞吐量和處理時間對比,通過數(shù)據(jù)以及折線圖對比結(jié)果可以得知,對于單鏈的區(qū)塊鏈系統(tǒng)來說,隨著智能合約和交易數(shù)量增加,系統(tǒng)的吞吐量基本保持不變,大約為1 700 筆交易/s。而基于單主鏈多側(cè)鏈的區(qū)塊鏈系統(tǒng),各側(cè)鏈合約上的交易是并行處理的,隨著智能合約數(shù)量增量即側(cè)鏈數(shù)量增加,系統(tǒng)的交易吞吐量會穩(wěn)步提升,在本實(shí)驗(yàn)的機(jī)器配置下,當(dāng)側(cè)鏈數(shù)量達(dá)到3的時候系統(tǒng)的交易吞吐量到達(dá)最高,大約有4 736 筆交易/s,是單鏈區(qū)塊鏈系統(tǒng)的3倍左右。
圖5 分層區(qū)塊鏈性能對比圖
本文提出了一種車聯(lián)網(wǎng)場景中可擴(kuò)展的分層區(qū)塊鏈支持的聯(lián)邦學(xué)習(xí)信譽(yù)管理方法,可以幫助FL全局模型篩選出惡意用戶,同時保證數(shù)據(jù)隱私和安全,從而提高FL的準(zhǔn)確性。仿真結(jié)果表明,所提出的方法能有效準(zhǔn)確地檢測出惡意用戶,從而提高FL的模型準(zhǔn)確性。此外,采用分層區(qū)塊鏈結(jié)構(gòu)和輕量級共識算法可以提高系統(tǒng)的吞吐量至單鏈的3倍。