李佳灝,畢國耀
(廣東工業(yè)大學(xué),廣東廣州 510006)
隨著社會發(fā)展水平的不斷提升,交通運輸技術(shù)和通信技術(shù)兩者憑借著高速的信息物質(zhì)交流方式得以在近年來得到高速發(fā)展,大大提高了人們的生活質(zhì)量水平,但另一方面,由于運輸車輛的膨脹式增加,導(dǎo)致多地交通事故頻發(fā),給人們的生活帶來了一定的安全問題,由于互聯(lián)網(wǎng)的高速發(fā)展以及人們的網(wǎng)絡(luò)安全知識相對并未有較大提升,網(wǎng)絡(luò)安全問題也給人們的隱私安全問題帶來了困擾。為了解決這些問題,人們也在不斷探索著相關(guān)方面的內(nèi)容。為了避免駕駛員駕駛過程中因為疏忽導(dǎo)致的交通安全問題,企業(yè)在車輛方面進行了一系列的改進,如美國汽車工程學(xué)會通過分級的形式對自動駕駛提出了從Level 0到Level 5的等級劃分[1],其中駕駛輔助等級表示駕駛員和車輛系統(tǒng)共同操作駕駛過程,減輕駕駛員的部分駕駛工作,目前在多個領(lǐng)域已有落地方案,如紅外線探測、超聲波探測、計算機視覺探測等[2],通過對外部環(huán)境的提前判斷,及時給予駕駛員正確的提示,能夠大大減少交通事故的發(fā)生。然而,隨著大數(shù)據(jù)的發(fā)展,數(shù)據(jù)集的需求性也隨之提升,因此數(shù)據(jù)集的隱私安全問題越來越成為不可忽視的一環(huán),為了避免人們的隱私信息數(shù)據(jù)的泄露,谷歌提出了一種稱為聯(lián)邦學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練模式,其目的是在不共享各自隱私數(shù)據(jù)的前提下,通過共同構(gòu)建一個神經(jīng)網(wǎng)絡(luò)總模型,聚合各節(jié)點的權(quán)重更新,也能達到利用多邊數(shù)據(jù)協(xié)同訓(xùn)練模型的效果。
本文根據(jù)以上所述的駕駛輔助和聯(lián)邦學(xué)習(xí)模型,提出一種基于聯(lián)邦學(xué)習(xí)的交通標(biāo)志識別方法,利用聯(lián)邦學(xué)習(xí)中多設(shè)備協(xié)同訓(xùn)練的方式訓(xùn)練預(yù)測模型,在不泄露駕駛員的駕駛數(shù)據(jù)隱私的前提下,利用車輛計算設(shè)備的算力資源為預(yù)測模型提供本地訓(xùn)練,輔助駕駛員辨識交通標(biāo)志,提高駕駛安全性。實驗以GTSRB數(shù)據(jù)集作為訓(xùn)練用數(shù)據(jù)集,以AlexNet作為基礎(chǔ)模型,以聯(lián)邦學(xué)習(xí)模式更新共享模型,實驗結(jié)果證明相較傳統(tǒng)模型訓(xùn)練方式有更好的可行性。
聯(lián)邦學(xué)習(xí)是一種多方協(xié)同訓(xùn)練模型的訓(xùn)練模式[3],能通過多客戶節(jié)點不相互透露隱私數(shù)據(jù)的前提下,只通過向服務(wù)節(jié)點提供模型更新參數(shù),以達到更新整體預(yù)測模型的目的。在這種訓(xùn)練模式下,駕駛系統(tǒng)先下載網(wǎng)絡(luò)模型至本地后,使用本地的視頻數(shù)據(jù)進行訓(xùn)練,再把訓(xùn)練更新的模型權(quán)重參數(shù)上傳至服務(wù)節(jié)點。服務(wù)節(jié)點在接收到各地上傳的模型權(quán)重參數(shù)后,把所有權(quán)重參數(shù)聚合,再對預(yù)測模型進行優(yōu)化,由于數(shù)據(jù)的提取和分析都在駕駛系統(tǒng)客戶端,解決了數(shù)據(jù)孤島以及安全隱私的問題。
由于交通行業(yè)的發(fā)展,針對駕駛識別的相關(guān)研究也在不斷深入,常見的檢測方法都是基于圖像傳感器作為輸入,再基于不同的識別方法進行細(xì)致的判斷,如顏色、形狀、多特征融合、深度學(xué)習(xí)等[4]。而深度學(xué)習(xí)方法相比其他方法,在解決光照變化、局部遮擋等問題帶來的影響方面具有更為突出的優(yōu)勢,因此基于深度學(xué)習(xí)的交通標(biāo)志識別在未來將會有更多的展望與發(fā)揮。
本文以模擬實際駕駛場景出發(fā),構(gòu)建出一種輔助駕駛員判斷交通標(biāo)志含義的識別分類系統(tǒng),為了保護駕駛員的數(shù)據(jù)安全和隱私內(nèi)容,同時實現(xiàn)多邊數(shù)據(jù)訓(xùn)練提高檢測精度,該系統(tǒng)由多個客戶端和一個服務(wù)端組成,其中客戶端指在駕駛車輛安裝的邊緣計算設(shè)備,用于完成對駕駛數(shù)據(jù)采集、訓(xùn)練、存儲等任務(wù),而服務(wù)端則是一個具有算力的云服務(wù)器,用于接收各客戶端發(fā)送來的迭代數(shù)據(jù)等任務(wù),以聚合多邊信息提升總模型精度。整體大致的過程為:服務(wù)端先對總模型進行初始化和分發(fā)至客戶端,客戶端接收到對應(yīng)的模型數(shù)據(jù)后,基于該模型進行本地數(shù)據(jù)的訓(xùn)練任務(wù),再將模型參數(shù)上傳回服務(wù)端,各客戶端之間的訓(xùn)練任務(wù)相互獨立,不會相互傳輸數(shù)據(jù),服務(wù)端接收到所有客戶端的模型參數(shù)后,把所有參數(shù)進行聚合更新,得到一個新的總模型,由于總模型聚合了所有客戶端的權(quán)重更新信息,具有一定的識別分類能力,不斷循環(huán)如上步驟,從而達到所需的模型預(yù)測精度。在傳輸方面,由于在整個過程中并不涉及客戶端本地數(shù)據(jù)集的傳輸通信操作,所以能保障用戶的信息安全和個人隱私,在訓(xùn)練方面,聯(lián)邦學(xué)習(xí)算法通過加權(quán)平均更新模型參數(shù),相比傳統(tǒng)的訓(xùn)練迭代方式,能在相對較少的通信次數(shù)下完成更快的模型參數(shù)收斂[5]。聯(lián)邦學(xué)習(xí)流程結(jié)構(gòu)如圖1所示。
本文使用迭代平均聚合方式來構(gòu)建聯(lián)邦學(xué)習(xí)模型[6],具體流程可用數(shù)學(xué)模型表示,設(shè)通訊訓(xùn)練輪次t,t∈{1,2,3,…},當(dāng)前總模型參數(shù)權(quán)重wt,基于各客戶端本地數(shù)據(jù)的模型參數(shù)權(quán)重wt+1i,共有n個客戶端,i代表其中一個客戶端,m代表每一輪隨機選擇的用戶數(shù)量。服務(wù)端在每輪中隨機選擇m個客戶端作為本輪聚合對象,并向這些客戶端發(fā)送當(dāng)前總模型wt,m的值可通過當(dāng)前模型權(quán)重參數(shù)量進行調(diào)整以提高通信效率。當(dāng)被選擇的客戶端收到了當(dāng)前模型后,通過本地訓(xùn)練網(wǎng)絡(luò)得到新的模型權(quán)重其與原模型的權(quán)重參數(shù)差就是后續(xù)上傳回服務(wù)端的數(shù)據(jù),客戶端i在t輪中訓(xùn)練后得到的權(quán)重更新值為:
因此可以把系統(tǒng)模型更新函數(shù)定義為:
本文應(yīng)用方案采用的是橫向聯(lián)邦學(xué)習(xí)方案[7],其關(guān)聯(lián)在于用戶特征與用戶本身維度,即通過用戶的維度來切分?jǐn)?shù)據(jù)集的場景,可用于共同訓(xùn)練來自不同用戶但有相同特征空間的神經(jīng)網(wǎng)絡(luò)模型。當(dāng)存在兩個不同的用戶x、y,數(shù)據(jù)集的特征空間為S,標(biāo)簽空間為L,用戶的樣本空間為I,則可將其定義為:
本文采用GTSRB交通信號數(shù)據(jù)集進行訓(xùn)練,該數(shù)據(jù)集分為訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集兩部分,其中訓(xùn)練數(shù)據(jù)集包含43種交通標(biāo)志類型及其對應(yīng)標(biāo)簽作為模型訓(xùn)練,測試數(shù)據(jù)集中隨機包含以上43種交通類型數(shù)據(jù)及其對應(yīng)標(biāo)簽,數(shù)據(jù)集圖片示例如圖2所示。
圖2 GTSRB數(shù)據(jù)集圖片示例
本文提出的基于聯(lián)邦學(xué)習(xí)的交通標(biāo)志識別輔助系統(tǒng)架構(gòu),以獨立分布形式隨機抽樣數(shù)據(jù)平均分配到各個客戶端中,實驗環(huán)境硬件配置采用AMD Ryzen7 CPU、GTX3060GPU、16G內(nèi)存,軟件配置為Python3.9、PyTorch1.8。
實驗內(nèi)容為搭建40個客戶端和1個服務(wù)端,將數(shù)據(jù)集隨機平均分配至全部客戶端后,讓客戶端對持有的數(shù)據(jù)集圖片調(diào)整成固定尺寸后進行本地模型訓(xùn)練,具體訓(xùn)練細(xì)節(jié)如下:總訓(xùn)練通信輪次為50次,客戶端訓(xùn)練模型的批量大小為64,客戶端訓(xùn)練更新的學(xué)習(xí)率為0.001,每次訓(xùn)練中客戶端本地數(shù)據(jù)集訓(xùn)練次數(shù)為5。
本文使用的網(wǎng)絡(luò)模型使用遷移學(xué)習(xí)的方式[8],以AlexNet預(yù)訓(xùn)練模型為基礎(chǔ),將模型結(jié)構(gòu)分成特征提取層和分類層,特征提取層用于提取數(shù)據(jù)中的固有屬性;分類層用于預(yù)測離散值,輸出網(wǎng)絡(luò)最終的判斷結(jié)果。本文保留了預(yù)訓(xùn)練模型的特征提取層,并接入可用于該數(shù)據(jù)集的網(wǎng)絡(luò)結(jié)構(gòu)作為分類層。
經(jīng)過以上設(shè)置參數(shù)得出的實驗數(shù)據(jù)結(jié)果如圖3、圖4所示,分別為測試數(shù)據(jù)集的準(zhǔn)確率精度及其訓(xùn)練數(shù)據(jù)集的損失值指標(biāo),在經(jīng)過50次通信迭代后,總模型精度達到了99.26%,損失值降到了0.0024,可見總模型在經(jīng)過整體訓(xùn)練后達到了較高的準(zhǔn)確率精度,損失值下降也相對穩(wěn)定。
圖3 準(zhǔn)確率精度
圖4 損失值指標(biāo)
圖5、圖6為在同樣環(huán)境下,若干個客戶端對本地數(shù)據(jù)集迭代訓(xùn)練50次的實驗結(jié)果,綠色虛線、紅色破折線、藍色實線分別代表客戶端數(shù)量為1、5、20個的情況下的實驗結(jié)果,最終總模型的測試準(zhǔn)確率分別達到了90.76%、97.69%、99.26%。損失值分別穩(wěn)定在0.0522、0.0077、0.0028,相比聯(lián)邦學(xué)習(xí)系統(tǒng)下的迭代過程,單個客戶端的訓(xùn)練精度(即不使用聯(lián)邦學(xué)習(xí)模式的場景),得到的模型測試準(zhǔn)確率偏低,總體過程中的損失值下降過程出現(xiàn)較為明顯震蕩,而在使用了聯(lián)邦學(xué)習(xí)模式下的模型精度有了較為明顯的提升,并且隨著客戶端數(shù)量的增多,模型精度也會逐漸提高,損失值下降更快,且不容易出現(xiàn)震蕩,整體模型穩(wěn)定性有所提高。
圖5 準(zhǔn)確率精度對比
圖6 損失值指標(biāo)對比
本文基于聯(lián)邦學(xué)習(xí)框架,針對智能輔助駕駛中的目標(biāo)檢測分類這一方向展開研究,構(gòu)建出一種可部署于駕駛車輛和云服務(wù)器的交通標(biāo)志識別系統(tǒng),對比了聯(lián)邦學(xué)習(xí)模式和單客戶端之間的模型訓(xùn)練效果,通過客戶端對數(shù)據(jù)參數(shù)化,服務(wù)端對模型聚合化,實現(xiàn)了在不泄露駕駛員隱私數(shù)據(jù)的前提下,也能達到訓(xùn)練總模型的效果,從而加快識別系統(tǒng)的訓(xùn)練速度和精度,充分發(fā)揮了用戶本地資源的有效性,泛化駕駛輔助系統(tǒng)的感知判斷能力。