胡宇翔,高琛,譚北海
(1.廣東工業(yè)大學(xué)自動(dòng)化學(xué)院,廣州 510006;2.廣州蔚馳科技有限公司,廣州 511455)
隨著經(jīng)濟(jì)的持續(xù)增長(zhǎng),運(yùn)輸需求也在增長(zhǎng),交通行業(yè)正在迅速發(fā)展。交通行業(yè)憑借其獨(dú)特的優(yōu)勢(shì),幫助實(shí)現(xiàn)現(xiàn)代化和提高了人民的生活水平。但隨之出現(xiàn)的是頻繁發(fā)生的交通事故。
隨著世界各地的公路數(shù)量和汽車數(shù)量的急劇增加,交通事故發(fā)生的概率也在迅速增加,導(dǎo)致了許多的人員傷亡和經(jīng)濟(jì)方面的損失。針對(duì)這些問(wèn)題,需要采取相關(guān)有效措施減少交通事故的發(fā)生。根據(jù)相關(guān)數(shù)據(jù)顯示,事故頻繁發(fā)生的一個(gè)很重要的原因是駕駛員在駕駛過(guò)程中的疏忽[1]。為了減少交通事故的發(fā)生,汽車制造商引進(jìn)了各種在保證汽車安全方面對(duì)生命安全起著重要作用的安全保護(hù)設(shè)備,隨著對(duì)汽車安全的重視,汽車安全將不可避免地成為研究領(lǐng)域的熱點(diǎn)。近年來(lái),安全輔助駕駛的相關(guān)研究工作受到了世界各國(guó)的廣泛關(guān)注。目前,許多廠家致力于對(duì)車道偏離警告和保持車輛安全距離兩個(gè)方向的研究和探索。目前這兩個(gè)方面的技術(shù)有紅外探測(cè)、雷達(dá)探測(cè)、超聲波探測(cè)、激光探測(cè)、機(jī)器視覺(jué)探測(cè)等。統(tǒng)計(jì)數(shù)據(jù)顯示,如果可以在車禍發(fā)生前警告司機(jī)危險(xiǎn),許多交通事故就可以減少。因此,通過(guò)駕駛輔助系統(tǒng),獲取司機(jī)駕駛狀態(tài),并在駕駛員不注意時(shí)提供預(yù)警,是減少交通事故的有效措施。
2017年,谷歌首先引入了聯(lián)邦學(xué)習(xí)的概念。從分散的移動(dòng)設(shè)備中訓(xùn)練模型,之后通過(guò)服務(wù)器聚合這些本地模型更新共享模型,聯(lián)邦學(xué)習(xí)可以實(shí)現(xiàn)分散數(shù)據(jù)下模型的協(xié)同訓(xùn)練,其中數(shù)量眾多的客戶端在中央服務(wù)器的協(xié)調(diào)下以協(xié)作的方式共同訓(xùn)練模型,客戶端無(wú)需上傳或者進(jìn)行數(shù)據(jù)交換,只需要向中央服務(wù)器傳輸本地訓(xùn)練好的模型就可以了。這樣,本地客戶端始終都可以保有對(duì)本地私有數(shù)據(jù)的控制權(quán),既可以減少收集數(shù)據(jù)、管理數(shù)據(jù)和保存數(shù)據(jù)的成本,又可以滿足越來(lái)越嚴(yán)格的數(shù)據(jù)隱私保護(hù)的要求。聯(lián)邦學(xué)習(xí)“數(shù)據(jù)不動(dòng),模型動(dòng)”的特點(diǎn)在交通、金融、消費(fèi)等領(lǐng)域都有著非常好的發(fā)展前景[2]。
本文針對(duì)駕駛識(shí)別和聯(lián)邦學(xué)習(xí)的特點(diǎn),提出一種基于聯(lián)邦學(xué)習(xí)的司機(jī)駕駛狀態(tài)識(shí)別的方法,利用聯(lián)邦學(xué)習(xí)“數(shù)據(jù)不動(dòng),模型動(dòng)”的特點(diǎn),在保護(hù)車輛數(shù)據(jù)隱私的情況下,充分利用車載數(shù)據(jù)資源訓(xùn)練出性能好的模型應(yīng)用于實(shí)際交通場(chǎng)景幫助減少交通事故的發(fā)生。實(shí)驗(yàn)以kaggle分心駕駛數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集,以VGG16作為模型特征提取網(wǎng)絡(luò),運(yùn)用基于迭代模型平均的聯(lián)邦學(xué)習(xí)算法協(xié)調(diào)服務(wù)器和客戶端模型訓(xùn)練和聚合,結(jié)果證明該方法具有可行性,訓(xùn)練出的模型性能良好。
作為連接數(shù)據(jù)孤島的橋梁,聯(lián)邦學(xué)習(xí)可以在滿足數(shù)據(jù)安全隱私及相關(guān)部門(mén)監(jiān)管要求的前提下,使得各個(gè)用戶有效利用本地?cái)?shù)據(jù)模型來(lái)獲得高質(zhì)量的聯(lián)邦學(xué)習(xí)模型??墒请S著聯(lián)邦學(xué)習(xí)的不斷發(fā)展,其也暴露出許多問(wèn)題,比如模型訓(xùn)練存在的潛在攻擊、通信效率相對(duì)較慢、用戶數(shù)據(jù)可用性差、設(shè)備的不穩(wěn)定性以及參與用戶處于不公平地位等。所以,聯(lián)邦學(xué)習(xí)需考慮隱私安全、通信效率、異構(gòu)性以及公平性等因素,可以采用安全多方計(jì)算、模型壓縮、知識(shí)蒸餾、博弈論等技術(shù),來(lái)構(gòu)建一個(gè)更加安全、有效、公平的聯(lián)邦學(xué)習(xí)模型[3]。
近年來(lái),國(guó)內(nèi)外許多學(xué)者對(duì)駕駛行為狀態(tài)進(jìn)行了深入研究,慢慢地已經(jīng)從普通傳感器檢測(cè)發(fā)展到通過(guò)機(jī)器視覺(jué)算法對(duì)面部表情、生理參數(shù)、操作行為的檢測(cè)判斷。人體行為識(shí)別作為計(jì)算機(jī)視覺(jué)領(lǐng)域及深度學(xué)習(xí)理論的重要研究熱點(diǎn),最具有代表性的是卷積神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)結(jié)構(gòu)有AlexNet、VGG、InceptionNet模型等,特征提取算法有主成分分析法、局部二值模式、方向梯度直方圖和尺度不變特征變換等,常見(jiàn)的分類器則有決策樹(shù)、支持向量機(jī)、softmax分類器等[4]。
本文建模的應(yīng)用場(chǎng)景為:交通領(lǐng)域的AI部門(mén)根據(jù)實(shí)際需求,想研究出一種根據(jù)司機(jī)駕駛狀態(tài)提前預(yù)警危險(xiǎn)的輔助駕駛系統(tǒng),相關(guān)部門(mén)最終決定選擇結(jié)合聯(lián)邦學(xué)習(xí)和圖像分類網(wǎng)絡(luò)模型來(lái)實(shí)現(xiàn)該任務(wù)。AI部門(mén)工程師采用星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)部署聯(lián)邦學(xué)習(xí)算法中的服務(wù)器和客戶端,中心節(jié)點(diǎn)為服務(wù)器,邊緣節(jié)點(diǎn)是各客戶端,服務(wù)器和客戶端之間通行是雙向的,各個(gè)客戶端之間不進(jìn)行通信[5]。其中,客戶端代表具有不同數(shù)據(jù)資源的各種行駛的車輛,服務(wù)器指的是云服務(wù)器。用于檢測(cè)司機(jī)駕駛狀態(tài)的圖像分類網(wǎng)絡(luò)模型被部署于各個(gè)客戶端,在服務(wù)器端設(shè)置聯(lián)邦學(xué)習(xí)模型參數(shù)的聚合算法以及通行輪換等。訓(xùn)練的時(shí)候,首先在服務(wù)器進(jìn)行全局模型的初始化,之后每輪通信中服務(wù)器首先會(huì)將本輪全局模型向各客戶端廣播,客戶端將接收的模型參數(shù)作為本輪局部模型訓(xùn)練的初始參數(shù)并結(jié)合本地私有數(shù)據(jù)進(jìn)行訓(xùn)練,客戶端訓(xùn)練完成后向服務(wù)器上傳局部模型參數(shù)進(jìn)行模型參數(shù)更新。服務(wù)器接收到各客戶端的局部模型參數(shù)后進(jìn)行新一輪的全局模型更新,依此循環(huán),直到達(dá)到指定的通信輪換次數(shù)。本文假設(shè)服務(wù)器是具備安全性和可靠性,并且所有客戶端設(shè)備不存在受到惡意攻擊或者通信延時(shí)等帶來(lái)的問(wèn)題[6]。本文算法示意圖如圖1所示,其中序號(hào)標(biāo)明了訓(xùn)練過(guò)程模型傳輸流程,其他客戶端依此類推。
圖1 本文算法示意圖
對(duì)于基于迭代模型平均的聯(lián)邦學(xué)習(xí),我們假設(shè)有一個(gè)固定的K個(gè)客戶端集合,每個(gè)客戶端都有一個(gè)固定的本地?cái)?shù)據(jù)集。在每一輪的開(kāi)始,選擇客戶端的一個(gè)隨機(jī)比率C,服務(wù)器將當(dāng)前的全局模型發(fā)送給每個(gè)客戶端。然后,每個(gè)選定范圍內(nèi)的客戶端根據(jù)接收的全局模型及其本地?cái)?shù)據(jù)集執(zhí)行本地計(jì)算進(jìn)行訓(xùn)練,并向服務(wù)器發(fā)送本地訓(xùn)練的局部模型用于全局模型的更新。然后服務(wù)器將這些來(lái)自客戶端的局部模型更新應(yīng)用到其全局模型,然后重復(fù)此過(guò)程。
對(duì)機(jī)器學(xué)習(xí)的問(wèn)題,我們通常采取fi(w)=l(xi,yi;w)來(lái)表述,也就是說(shuō),損失預(yù)測(cè)的例子(xi,yi)由模型參數(shù)w得出。我們假設(shè)有K個(gè)客戶數(shù)據(jù)分區(qū),Pk代表集合中第K個(gè)用戶,nk= ||Pk代表第K個(gè)用戶數(shù)據(jù)集的個(gè)數(shù),因此,我們可以將優(yōu)化的目標(biāo)函數(shù)寫(xiě)為:
大量成功的深度學(xué)習(xí)應(yīng)用幾乎完全依賴于隨機(jī)梯度下降(SGD)來(lái)進(jìn)行優(yōu)化,事實(shí)上,許多進(jìn)步可以理解為調(diào)整模型的結(jié)構(gòu)以及損失函數(shù),使其更易于通過(guò)簡(jiǎn)單的基于梯度的方法進(jìn)行優(yōu)化[7]。因此,本文聯(lián)邦學(xué)習(xí)的優(yōu)化對(duì)象選擇SGD,確立了優(yōu)化的目標(biāo)后,整體的優(yōu)化流程可表述為以下步驟。
假設(shè)有K個(gè)客戶端,以下標(biāo)k作為標(biāo)識(shí),隨機(jī)選取的客戶端比率為C,B是本地客戶端的minibatchsize,E是本地客戶端訓(xùn)練輪換次數(shù),η是學(xué)習(xí)率。
●對(duì)于服務(wù)器端:
Step1:初始化初始全局模型參數(shù)w0
Step2:依通信輪換次數(shù)t=1,2,…循環(huán)執(zhí)行以下步驟:
●對(duì)于客戶端:
Step1:依據(jù)minibatchsize大小B對(duì)本地用戶數(shù)據(jù)集Pk劃分,記為β
Step2:依據(jù)本地訓(xùn)練輪換次數(shù)E循環(huán)執(zhí)行更新:b∈β,w-η?l(w;b)
Step3:上傳w給服務(wù)器端
針對(duì)駕駛狀態(tài)識(shí)別任務(wù)特點(diǎn),本文以VGG16為基礎(chǔ)進(jìn)行修改來(lái)進(jìn)行分類識(shí)別,VGG是由Si?monyan和Zisserman提出的卷積神經(jīng)網(wǎng)絡(luò)模型,該模型參加2014年的ImageNet圖像分類與定位挑戰(zhàn)賽,取得了優(yōu)異成績(jī),VGG模型的主要特點(diǎn)是采用了很小的卷積核尺寸以及相對(duì)其他網(wǎng)絡(luò)更深的網(wǎng)絡(luò)結(jié)構(gòu),本文實(shí)驗(yàn)以pytorch中預(yù)置的VGG16為基礎(chǔ)保留其特征層,將分類層置空并將其接到自定義的分類層,整體的駕駛狀態(tài)識(shí)別模型結(jié)構(gòu)簡(jiǎn)圖如圖2所示。
圖2 駕駛狀態(tài)識(shí)別模型結(jié)構(gòu)簡(jiǎn)圖
本文以kaggle的state-farm-distracted-driverdetection數(shù)據(jù)集為實(shí)驗(yàn)數(shù)據(jù)集,其中,test用于測(cè)試的,Train用于訓(xùn)練的,Train文件夾下共有10個(gè)子文件夾,每個(gè)子文件夾下的圖片屬于同類,每類共有2000多張圖片,這10類及其含義如表1所示,分心駕駛數(shù)據(jù)集示例如圖3所示,Test文件夾下直接是圖片,接近8萬(wàn)張,但是每個(gè)文件分別屬于哪類并不知道:
圖3 分心駕駛數(shù)據(jù)集示例
表1 kaggle分心駕駛數(shù)據(jù)集各分類含義
本實(shí)驗(yàn)共設(shè)置10個(gè)客戶端模擬現(xiàn)實(shí)世界的10個(gè)車輛,從總數(shù)據(jù)中隨機(jī)分配數(shù)據(jù)到各個(gè)客戶端,以獨(dú)立同分布的方式呈現(xiàn)。數(shù)據(jù)集以8∶2的比例劃分為訓(xùn)練集和測(cè)試集,對(duì)原始數(shù)據(jù)集進(jìn)行隨機(jī)分配,分成10份作為各個(gè)客戶端的初始本地私有數(shù)據(jù)集,由于數(shù)據(jù)量有限,客戶端完成數(shù)據(jù)分配后,對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng)操作,本文采用翻轉(zhuǎn)、平移、旋轉(zhuǎn)等數(shù)據(jù)增強(qiáng)方式對(duì)各客戶端數(shù)據(jù)進(jìn)行擴(kuò)充,客戶端的訓(xùn)練輪換次數(shù)為3,批大小設(shè)置為10,初始學(xué)習(xí)率為η=0.001,采用學(xué)習(xí)率衰減策略,衰減因子為0.996,客戶端和服務(wù)器端的通信輪換次數(shù)為10,每輪通信包含3個(gè)主要過(guò)程:服務(wù)器廣播、客戶端局部更新、服務(wù)器聚合??蛻舳伺c服務(wù)器均采用GTX 2080 Ti的GPU,CPU為3核Intel E5系列,運(yùn)行內(nèi)存為10 G,采用10 Gbit/s的以太網(wǎng),操作系統(tǒng)為Ubuntu,Python版本為Python 3.7,深度學(xué)習(xí)框架采用Pytorch 1.3版本。
經(jīng)過(guò)10輪通信循環(huán),在云服務(wù)器端耗時(shí)4小時(shí)訓(xùn)練得到如圖4和圖5的測(cè)試結(jié)果,從圖中比較可以看出經(jīng)過(guò)5次通信輪換后準(zhǔn)確率已經(jīng)達(dá)到了99%以上,測(cè)試的loss也已經(jīng)到0.5以下,隨后基本穩(wěn)定在在一定數(shù)值,整體訓(xùn)練得到了比較高的準(zhǔn)確率。
圖4 測(cè)試準(zhǔn)確率
圖5 測(cè)試損失loss
同時(shí),對(duì)司機(jī)駕駛狀態(tài)的檢測(cè)識(shí)別,本文進(jìn)行了另外兩個(gè)對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)情況如下:
(1)對(duì)比實(shí)驗(yàn)1:基于MobilenetV2司機(jī)駕駛行為。
MobileNetV2作為對(duì)MobileNetV1的改進(jìn)版,同樣也是一個(gè)輕量化的卷積神經(jīng)網(wǎng)絡(luò),MobileNet-V2的特點(diǎn)就是采用depth-wise sepa?rable convolution來(lái)減少運(yùn)算量以及參數(shù)量,而在網(wǎng)絡(luò)結(jié)構(gòu)上,借鑒Resnet采用shortcut的方式。實(shí)驗(yàn)1與上文基于聯(lián)邦學(xué)習(xí)的司機(jī)駕駛狀態(tài)檢測(cè)方法采用同樣的軟硬件實(shí)驗(yàn)環(huán)境,實(shí)驗(yàn)的測(cè)試準(zhǔn)確率和測(cè)試loss如圖6、圖7所示,測(cè)試準(zhǔn)確率最終穩(wěn)定在95%左右,測(cè)試的loss穩(wěn)定在0.1左右。
圖6 測(cè)試準(zhǔn)確率
圖7 測(cè)試損失loss
(2)對(duì)比實(shí)驗(yàn)2:基于VGG16司機(jī)駕駛行為檢測(cè)。
VGG16網(wǎng)絡(luò)作為卷積神經(jīng)網(wǎng)絡(luò)中的一個(gè)經(jīng)典網(wǎng)絡(luò)有著優(yōu)秀的檢測(cè)性能,實(shí)驗(yàn)二同樣采用與上文基于聯(lián)邦學(xué)習(xí)的司機(jī)駕駛狀態(tài)檢測(cè)方法采用同樣的軟硬件實(shí)驗(yàn)環(huán)境,實(shí)驗(yàn)的測(cè)試準(zhǔn)確率和測(cè)試loss如圖8、圖9所示,測(cè)試準(zhǔn)確率最終穩(wěn)定在98%左右,測(cè)試的loss穩(wěn)定在0.05左右。
圖8 測(cè)試準(zhǔn)確率
圖9 測(cè)試損失loss
綜合對(duì)比以上三個(gè)實(shí)驗(yàn)可知,本文提出的基于聯(lián)邦學(xué)習(xí)加VGG16的司機(jī)駕駛狀態(tài)檢測(cè)訓(xùn)練周期更短,訓(xùn)練出的模型性能更加優(yōu)異。
本文將聯(lián)邦學(xué)習(xí)機(jī)制引入輔助駕駛識(shí)別場(chǎng)景中,部署單服務(wù)器-多客戶端結(jié)構(gòu)用于模型訓(xùn)練,讓多個(gè)車輛客戶端合作訓(xùn)練完成司機(jī)駕駛狀態(tài)識(shí)別模型,各個(gè)客戶端始終保有著對(duì)本地私有數(shù)據(jù)的控制,不需要與其他用戶共享自己的私有數(shù)據(jù),整套系統(tǒng)充分利用現(xiàn)有的車輛數(shù)據(jù)資源,這樣的方法可以幫助交通領(lǐng)域相關(guān)部門(mén)在節(jié)省數(shù)據(jù)收集管理等成本的同時(shí)又可以訓(xùn)練出性能非常優(yōu)異的模型用于輔助駕駛識(shí)別,減少交通事故的發(fā)生,并且這樣的方法可以在模型性能發(fā)生變化時(shí)很方便地更新模型。