楊云開 范文兵 彭東旭
(鄭州大學(xué)信息工程學(xué)院 河南 鄭州 450001)
駕駛行為分類在過(guò)去幾年里受到了不同行業(yè)的關(guān)注。在汽車行業(yè)中,對(duì)駕駛行為進(jìn)行分類,對(duì)于保證駕駛員的安全至關(guān)重要,尤其是在半自動(dòng)和高度自動(dòng)化的車輛中。同樣,在汽車保險(xiǎn)行業(yè),對(duì)駕駛行為進(jìn)行分類和監(jiān)控對(duì)于風(fēng)險(xiǎn)評(píng)估和保險(xiǎn)費(fèi)都至關(guān)重要[1]。雖然駕駛行為分類是一個(gè)有趣的研究主題,但是目前缺乏可用的數(shù)據(jù)限制了該領(lǐng)域的進(jìn)展。機(jī)器學(xué)習(xí)技術(shù)可以極大地促進(jìn)研究,但是它們依賴于大量的數(shù)據(jù),這些數(shù)據(jù)可以使用三種不同的方法獲得:(1) 駕駛風(fēng)格問(wèn)卷:每位駕駛員在自我報(bào)告表中評(píng)估自己的駕駛行為,但這種方法報(bào)告的數(shù)據(jù)很少,并且會(huì)生成主觀的度量。(2) 駕駛模擬器:該方法通過(guò)對(duì)實(shí)驗(yàn)條件進(jìn)行精確控制來(lái)模擬駕駛環(huán)境,但是環(huán)境的人為性質(zhì)不容易模擬。(3) 真實(shí)車輛:真實(shí)車輛在日常駕駛過(guò)程中采集的數(shù)據(jù)精度最高,是三種方法中最客觀的,在最近的文獻(xiàn)中這種方法被稱為自然駕駛研究(NDS)[2]。一些代表性的例子如文獻(xiàn)[3]中使用100輛車進(jìn)行研究和最近的公路研究項(xiàng)目(SHRP2)[4]。本文采用第三種方法,使用嵌入不同類型傳感器的智能手機(jī)在車輛行駛中采集駕駛數(shù)據(jù)。
通過(guò)傳感器采集到的駕駛數(shù)據(jù)往往呈現(xiàn)出高維度和非線性的特點(diǎn),使用經(jīng)典的降維算法例如PCA、LDA和LPP等有可能會(huì)造成數(shù)據(jù)特征信息的丟失。t-SNE是目前效果最好的數(shù)據(jù)降維與可視化方法之一,但是它的缺點(diǎn)也很明顯,比如:占內(nèi)存大,運(yùn)行時(shí)間長(zhǎng)。BH-SNE是t-SNE的改進(jìn)算法,解決了t-SNE計(jì)算復(fù)雜度和內(nèi)存復(fù)雜度高的問(wèn)題,而且同樣能挖掘高維數(shù)據(jù)的非線性特性。RBF神經(jīng)網(wǎng)絡(luò)能夠逼近任意的非線性函數(shù),并有很快的學(xué)習(xí)收斂速度。因此,本文選擇使用BH-SNE來(lái)進(jìn)行降維,使用RBFNN進(jìn)行分類,并提出一個(gè)應(yīng)用于駕駛行為分類的混合模型:BH-SNE+RBFNN。
t-SNE最小化了兩個(gè)分布之間的差異[5]:(1) 度量原始數(shù)據(jù)對(duì)象之間成對(duì)相似性的分布;(2) 度量嵌入中對(duì)應(yīng)點(diǎn)之間成對(duì)相似性的分布。假設(shè)有一個(gè)對(duì)象的數(shù)據(jù)集D={x1,x2,…,xN},目標(biāo)是學(xué)習(xí)一個(gè)s維嵌入,其中每個(gè)對(duì)象由一個(gè)點(diǎn)表示,ε={y1,y2,…,yN},yi∈Rs。為此,t-SNE定義了聯(lián)合概率pij,通過(guò)對(duì)兩個(gè)條件概率進(jìn)行對(duì)稱,來(lái)度量對(duì)象xi和xj之間的成對(duì)相似性,計(jì)算式為:
(1)
(2)
式中:高斯核δi的帶寬設(shè)置使得條件分布Pi的復(fù)雜度(perplexity)等于預(yù)先確定的u(u是一個(gè)正整數(shù))。δi的最佳值隨對(duì)象的不同而變化,并使用簡(jiǎn)單的二進(jìn)制搜索找到。在嵌入過(guò)程中,利用重尾(Heavy-tailed)分布來(lái)測(cè)量yi和yj兩個(gè)對(duì)應(yīng)點(diǎn)之間的相似性qij,計(jì)算式為:
(3)
式中:yl和yk為集合ε中任意兩點(diǎn)。
嵌入點(diǎn)yi的位置通過(guò)最小化聯(lián)合分布P和Q之間的Kullback-Leibler(KL)距離來(lái)確定,計(jì)算式為:
(4)
這個(gè)代價(jià)函數(shù)是非凸的,它通常通過(guò)沿梯度下降方向來(lái)最小化,代價(jià)函數(shù)梯度計(jì)算式為:
(5)
BH-SNE使用優(yōu)勢(shì)點(diǎn)(Vantage-point)樹[6]對(duì)原始數(shù)據(jù)對(duì)象之間的相似性進(jìn)行稀疏近似計(jì)算,然后使用巴恩斯哈特(Barnes-Hut)算法[7]對(duì)嵌入過(guò)程中各點(diǎn)之間的力進(jìn)行近似計(jì)算,該算法通常被天文學(xué)家用來(lái)執(zhí)行n體模擬。Barnes-Hut算法通過(guò)利用一組點(diǎn)對(duì)一個(gè)相對(duì)較遠(yuǎn)的點(diǎn)施加的力都非常相似這一事實(shí),減少了需要計(jì)算的成對(duì)力的數(shù)量。
由于輸入相似性是使用歸一化高斯核計(jì)算的,所以不同輸入對(duì)象i和j對(duì)應(yīng)的概率pij(幾乎)是無(wú)窮小的。因此,對(duì)概率pij使用稀疏逼近時(shí)不會(huì)對(duì)最終嵌入的效果產(chǎn)生負(fù)面影響。通過(guò)找到N個(gè)數(shù)據(jù)對(duì)象中每個(gè)對(duì)象的最鄰近的|3u|個(gè)對(duì)象來(lái)計(jì)算稀疏近似值,并將成對(duì)相似性pij重新定義為:
(6)
式中:Ni表示xi的|3u|個(gè)近鄰的集合;δi被設(shè)置為使得條件分布的復(fù)雜度等于u。通過(guò)在數(shù)據(jù)集上構(gòu)建一個(gè)優(yōu)勢(shì)點(diǎn)樹,可以找到最近鄰集Ni。
為了近似計(jì)算t-SNE的梯度,將梯度分成如下兩部分:
(7)
式中:Fattr為所有引力之和;Frep為所有斥力之和。計(jì)算Fattr比較容易,效率也很快,因?yàn)樗梢酝ㄟ^(guò)對(duì)稀疏分布P中的所有非零元素求和來(lái)實(shí)現(xiàn)。由于Frep的計(jì)算并不容易,且費(fèi)時(shí),所以本文采用Barnes-Hut算法來(lái)有效地逼近Frep。
RBFNN是基于函數(shù)逼近理論建立的一種前饋網(wǎng)絡(luò),它比BP網(wǎng)絡(luò)具有更好的函數(shù)逼近性能、更簡(jiǎn)單的結(jié)構(gòu)和更快的訓(xùn)練過(guò)程。RBFNN是一個(gè)包括輸入層、隱藏層和輸出層的三層網(wǎng)絡(luò)[8]。
在RBFNN中,輸入層由源節(jié)點(diǎn)組成,隱藏層提取輸入數(shù)據(jù)中的聚類特征。從輸入層到隱藏層的變換是非線性的,從隱藏層到輸出層的變換是線性的。隱藏層的傳遞函數(shù)為徑向基函數(shù),是局部分布的中心點(diǎn)徑向?qū)ΨQ衰減非負(fù)非線性函數(shù)。
基函數(shù)的形式多種多樣,但最常用的是高斯函數(shù),因此隱藏層神經(jīng)元的輸出如下:
(8)
式中:x={x1,x2,…,xNi}是具有Ni維度的輸入特征向量;ci是第i個(gè)高斯函數(shù)的中心;Nh是隱藏神經(jīng)元的數(shù)量;δi是RBF隱藏神經(jīng)元的寬度。
(9)
式中:λ是重疊系數(shù)。整個(gè)RBF的輸出是所有隱藏神經(jīng)元輸出的線性組合,定義為:
(10)
式中:wi為神經(jīng)網(wǎng)絡(luò)的權(quán)重。
使用t-SNE算法能很好地挖掘高維數(shù)據(jù)的非線性特性,且可以將其高維空間數(shù)據(jù)的內(nèi)在結(jié)構(gòu)在二維空間內(nèi)顯示出來(lái),揭示數(shù)據(jù)內(nèi)在的分類特點(diǎn),并通過(guò)數(shù)據(jù)可視化直觀地表達(dá)數(shù)據(jù)間的相似性。但是t-SNE的計(jì)算復(fù)雜度和內(nèi)存復(fù)雜度為數(shù)據(jù)量n的平方,這使得t-SNE只適用于數(shù)據(jù)量低于幾千個(gè)點(diǎn)的數(shù)據(jù)集,一旦數(shù)據(jù)集過(guò)大,t-SNE的處理速度會(huì)變得非常慢,降維結(jié)果也會(huì)變差。駕駛數(shù)據(jù)集的數(shù)量特別大,顯然t-SNE并不適用于駕駛行為分析。BH-SNE是t-SNE的改進(jìn)算法,它只需要O(NlogN)的運(yùn)算和O(N)的內(nèi)存,能處理大量的數(shù)據(jù)集,而且BH-SNE同樣能挖掘高維數(shù)據(jù)的非線性特性。因此本文選擇使用BH-SNE進(jìn)行降維。RBF神經(jīng)網(wǎng)絡(luò)能夠逼近任意的非線性函數(shù),可以處理系統(tǒng)內(nèi)難以解析的規(guī)律性,具有良好的泛化能力和很快的學(xué)習(xí)收斂速度,而且不需要調(diào)整各種超參數(shù),所以本文選擇使用RBFNN進(jìn)行駕駛行為分類。識(shí)別模型的結(jié)構(gòu)如圖1所示。
圖1 基于BH-SNE和RBFNN的識(shí)別模型
可以看出,該模型自左向右由三個(gè)模塊組成,分別如下:
(1) 數(shù)據(jù)預(yù)處理:使用滑動(dòng)窗口來(lái)提取數(shù)據(jù)片段,數(shù)據(jù)片段為一個(gè)250×3的矩陣,再將此矩陣歸一化并使用中位值平均濾波器去除噪聲干擾,最后得到輸入樣本V{ax,gy,mz}。
(3) 分類識(shí)別:將特征矩陣P輸入RBFNN,識(shí)別出直線行駛、左轉(zhuǎn)、右轉(zhuǎn)、起步、停車、掉頭和靜止這七種駕駛行為。
算法流程進(jìn)一步解釋了該模型的實(shí)現(xiàn)細(xì)節(jié):
輸入:三種傳感器數(shù)據(jù)。
輸出:七種駕駛行為的概率值。
步驟1數(shù)據(jù)預(yù)處理得到樣本V{ax,gy,mz}。
步驟2將ax、gy、mz依次輸入到式(6)得到高維空間中的條件概率pij,低維空間中的模擬數(shù)據(jù)集ε={y1,y2,…,yN},對(duì)ε進(jìn)行數(shù)據(jù)初始化,將ε代入式(3) 得到低維空間中的條件概率qij。
步驟3將pij和qij代入式(4)得到代價(jià)函數(shù)C。
步驟5初始化聚類中心ci,確定基函數(shù)的個(gè)數(shù),不斷地調(diào)整ci直到不再變化,初始化權(quán)值wi。
步驟6將ci代入式(9)得到δi,將δi代入到式(8)得到Ri(x),最后將Ri(x)和wi代入式(10),輸出當(dāng)前樣本在各個(gè)類別下的概率。
過(guò)去大多數(shù)駕駛模式識(shí)別系統(tǒng)只使用加速度計(jì)的數(shù)據(jù)。本文決定使用加速度計(jì)、陀螺儀和磁力傳感器的傳感器融合輸出來(lái)檢測(cè)和識(shí)別駕駛運(yùn)動(dòng)。因?yàn)橥勇輧x測(cè)量的是車輛的轉(zhuǎn)向加速度,所以可以用來(lái)檢測(cè)車輛轉(zhuǎn)彎運(yùn)動(dòng),而磁力傳感器可以檢測(cè)到車輛行駛方向的磁感性強(qiáng)度,每個(gè)方向的磁感性強(qiáng)度都是固定的,當(dāng)車輛行駛方向變化時(shí)磁感性強(qiáng)度也隨之改變(相當(dāng)于一個(gè)羅盤)。三者配合使用,可以更準(zhǔn)確地讀出車輛的姿態(tài)(方向)。本文采用的陀螺儀、加速度計(jì)和磁力傳感器可以測(cè)得運(yùn)動(dòng)物體三個(gè)坐標(biāo)軸上的分量,假設(shè)這三個(gè)傳感器測(cè)得的數(shù)據(jù)分別為G={gx,gy,gz} rad/s,加速度計(jì)值A(chǔ)={ax,ay,az} m/s2,設(shè)備磁力傳感器M={mx,my,mz} μT。
本文使用ax、gy、mz作為樣本數(shù)據(jù)進(jìn)行分類,因?yàn)樵贏、G、M中只有這三個(gè)單軸數(shù)據(jù)能反映車輛方向的變化。認(rèn)為集合T={ax,gy,mz}是區(qū)分駕駛行為的最佳信號(hào)選擇。最后使用中位值平均濾波法對(duì)集合T進(jìn)行濾波處理,濾除由偶然因素所引起脈沖性干擾致使的數(shù)據(jù)突變。
獲取到集合T的數(shù)據(jù)后,提取n個(gè)樣本數(shù)據(jù)段。數(shù)據(jù)段的數(shù)量取決于所涉及的應(yīng)用的類型。增加段的長(zhǎng)度可以提高識(shí)別精度,但同時(shí)會(huì)使不同活動(dòng)之間的邊界變得不那么清晰。綜合考慮本文采用10 s的非重疊窗口大小對(duì)原始慣性時(shí)間序列數(shù)據(jù)進(jìn)行分割(幾乎所有的駕駛行為如轉(zhuǎn)向、起步、停車和掉頭等都能在10 s內(nèi)完成)。使用分段而不是單個(gè)數(shù)據(jù)點(diǎn)的原因是原始慣性測(cè)量的高度波動(dòng)使得單個(gè)數(shù)據(jù)點(diǎn)的分類不切實(shí)際。因此,使用分別應(yīng)用于ax、gy、mz軸上的滑動(dòng)窗口來(lái)獲得數(shù)據(jù)片段[9]。在25 Hz的數(shù)據(jù)采集頻率下,250次數(shù)據(jù)作為一個(gè)數(shù)據(jù)段,將這個(gè)250×3的矩陣V{ax,gy,mz}作為識(shí)別模型的輸入樣本。
本文是以內(nèi)置ARM處理器的智能手機(jī)作為駕駛行為數(shù)據(jù)采集硬件。智能手機(jī)使用配置了線性加速度傳感器和陀螺儀以及磁力傳感器的榮耀V10和iPhone 6S。智能手機(jī)被水平地放置在汽車儀表盤中間位置,x軸與儀表盤平齊,y軸垂直地面向上,z軸面向前進(jìn)方向。汽車平臺(tái)為起亞賽拉圖和雪佛蘭賽歐3,數(shù)據(jù)收集軟件為phyphox(一個(gè)國(guó)外的傳感器數(shù)據(jù)測(cè)試軟件),實(shí)驗(yàn)采集了4名用戶的駕駛行為數(shù)據(jù),分別為直線行駛(SR)、左轉(zhuǎn)(L)、右轉(zhuǎn)(R)、起步(ST)、停車(P)、掉頭(U)和靜止(S)。采樣頻率為25 Hz,共收集了超過(guò)2 800份樣本數(shù)據(jù),如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)集
整個(gè)實(shí)驗(yàn)過(guò)程在MATLAB 仿真環(huán)境中進(jìn)行。把實(shí)驗(yàn)數(shù)據(jù)分成三份:60%的訓(xùn)練集,20%的交叉驗(yàn)證集,20%的測(cè)試集。
BH-SNE算法的參數(shù)設(shè)置[10]:從方差為10-4的高斯函數(shù)中采樣來(lái)初始化嵌入點(diǎn)。1 000次迭代梯度下降一次,初始步長(zhǎng)設(shè)置為200。復(fù)雜度設(shè)置為30。所有維數(shù)大于50的數(shù)據(jù)集都使用PCA進(jìn)行預(yù)處理,將維數(shù)降為50。
RBFNN模型的參數(shù)設(shè)置:徑向基函數(shù)的擴(kuò)展(spread) 設(shè)置為1,中心點(diǎn)的個(gè)數(shù)設(shè)置為7。
實(shí)驗(yàn)1探討t-SNE與BH-SNE在降維方面的優(yōu)劣,將集合T的三個(gè)數(shù)據(jù)集A、G和M分別輸入t-SNE與BH-SNE進(jìn)行降維,將數(shù)據(jù)從250維降到2維并顯示在二維坐標(biāo)中,可視化結(jié)果如圖2所示。
圖2 t-SNE與BH-SNE的可視化效果對(duì)比
圖2中,點(diǎn)的顏色(灰度表示)對(duì)應(yīng)駕駛行為的類別可以看出,BH-SNE可以構(gòu)建高質(zhì)量的傳感器數(shù)據(jù)嵌入。由圖2(c)可以看出,數(shù)據(jù)集G的可視化效果非常差,表明t-SNE不能很好地提取數(shù)據(jù)集G的特征,而圖2(d)的可視化效果非常好。同時(shí)在數(shù)據(jù)集A和M上,使用BH-SNE和t-SNE的可視化效果相差不大。綜合對(duì)比,BH-SNE的可視化效果比t-SNE好,因此BH-SNE的駕駛行為數(shù)據(jù)特征提取能力比t-SNE更好,而且從計(jì)算時(shí)間上可以看出,BH-SNE的效率遠(yuǎn)高于t-SNE。綜上可以說(shuō)明BH-SNE比t-SNE更適用于駕駛行為研究。
實(shí)驗(yàn)2探討使用BH-SNE進(jìn)行降維的原因,將輸入數(shù)據(jù)T分別用自編碼器(AE)、主成分分析(PCA)、線性判別分析(LDA)、局部保持投影(LPP)、t-SNE和BH-SNE進(jìn)行降維,然后將降維數(shù)據(jù)分別輸入到BP神經(jīng)網(wǎng)絡(luò)、SVM、AdaBoostM2和RBF網(wǎng)絡(luò)中進(jìn)行分類,結(jié)果如表2所示。
表2 不同降維模型的降維效果對(duì)比
可以看出,t-SNE和BH-SNE的降維效果要優(yōu)于其他降維算法,其中t-SNE的降維效果要優(yōu)于BH-SNE,但是t-SNE的運(yùn)行速度太慢,且t-SNE和RBFNN結(jié)合的分類效果并不好,所以本文選用BH-SNE進(jìn)行降維。t-SNE+RBFNN模型的具體識(shí)別結(jié)果如表3所示。
表3 具體識(shí)別結(jié)果
實(shí)驗(yàn)3將BH-SNE+RBFNN模型與兩個(gè)傳統(tǒng)的機(jī)器學(xué)習(xí)識(shí)別模型進(jìn)行對(duì)比,比較結(jié)果如圖3所示,可以明顯地看出本文提出的模型識(shí)別效果最好,其他兩個(gè)模型平均識(shí)別率最高的是BP神經(jīng)網(wǎng)絡(luò)的84.2%。同時(shí)將本文的模型與新型的分類模型Deep Forest(深度森林[11])進(jìn)行對(duì)比,本文的模型識(shí)別效果更好。
圖3 常見(jiàn)分類模型識(shí)別效果對(duì)比
本文提出一種BH-SNE結(jié)合RBFNN的模型,用于識(shí)別常見(jiàn)的駕駛行為,包括縱向和橫向運(yùn)動(dòng)。該模型不僅比其他分類算法具有更好的分類效果,而且能有效地處理和識(shí)別實(shí)時(shí)序列數(shù)據(jù)。BH-SNE不僅實(shí)現(xiàn)了降維的效果,還能通過(guò)可視化觀察數(shù)據(jù)的特性。RBFNN的分類效果很優(yōu)秀,而且運(yùn)行速度很快。實(shí)驗(yàn)結(jié)果也驗(yàn)證了該方法的有效性和可行性,且對(duì)汽車安全行駛具有實(shí)際應(yīng)用價(jià)值。