楊云開 范文兵 彭東旭
(鄭州大學信息工程學院 河南 鄭州 450001)
駕駛行為分類在過去幾年里受到了不同行業的關注。在汽車行業中,對駕駛行為進行分類,對于保證駕駛員的安全至關重要,尤其是在半自動和高度自動化的車輛中。同樣,在汽車保險行業,對駕駛行為進行分類和監控對于風險評估和保險費都至關重要[1]。雖然駕駛行為分類是一個有趣的研究主題,但是目前缺乏可用的數據限制了該領域的進展。機器學習技術可以極大地促進研究,但是它們依賴于大量的數據,這些數據可以使用三種不同的方法獲得:(1) 駕駛風格問卷:每位駕駛員在自我報告表中評估自己的駕駛行為,但這種方法報告的數據很少,并且會生成主觀的度量。(2) 駕駛模擬器:該方法通過對實驗條件進行精確控制來模擬駕駛環境,但是環境的人為性質不容易模擬。(3) 真實車輛:真實車輛在日常駕駛過程中采集的數據精度最高,是三種方法中最客觀的,在最近的文獻中這種方法被稱為自然駕駛研究(NDS)[2]。一些代表性的例子如文獻[3]中使用100輛車進行研究和最近的公路研究項目(SHRP2)[4]。本文采用第三種方法,使用嵌入不同類型傳感器的智能手機在車輛行駛中采集駕駛數據。
通過傳感器采集到的駕駛數據往往呈現出高維度和非線性的特點,使用經典的降維算法例如PCA、LDA和LPP等有可能會造成數據特征信息的丟失。t-SNE是目前效果最好的數據降維與可視化方法之一,但是它的缺點也很明顯,比如:占內存大,運行時間長。BH-SNE是t-SNE的改進算法,解決了t-SNE計算復雜度和內存復雜度高的問題,而且同樣能挖掘高維數據的非線性特性。RBF神經網絡能夠逼近任意的非線性函數,并有很快的學習收斂速度。因此,本文選擇使用BH-SNE來進行降維,使用RBFNN進行分類,并提出一個應用于駕駛行為分類的混合模型:BH-SNE+RBFNN。
t-SNE最小化了兩個分布之間的差異[5]:(1) 度量原始數據對象之間成對相似性的分布;(2) 度量嵌入中對應點之間成對相似性的分布。假設有一個對象的數據集D={x1,x2,…,xN},目標是學習一個s維嵌入,其中每個對象由一個點表示,ε={y1,y2,…,yN},yi∈Rs。為此,t-SNE定義了聯合概率pij,通過對兩個條件概率進行對稱,來度量對象xi和xj之間的成對相似性,計算式為:
(1)
(2)
式中:高斯核δi的帶寬設置使得條件分布Pi的復雜度(perplexity)等于預先確定的u(u是一個正整數)。δi的最佳值隨對象的不同而變化,并使用簡單的二進制搜索找到。在嵌入過程中,利用重尾(Heavy-tailed)分布來測量yi和yj兩個對應點之間的相似性qij,計算式為:
(3)
式中:yl和yk為集合ε中任意兩點。
嵌入點yi的位置通過最小化聯合分布P和Q之間的Kullback-Leibler(KL)距離來確定,計算式為:
(4)
這個代價函數是非凸的,它通常通過沿梯度下降方向來最小化,代價函數梯度計算式為:
(5)

BH-SNE使用優勢點(Vantage-point)樹[6]對原始數據對象之間的相似性進行稀疏近似計算,然后使用巴恩斯哈特(Barnes-Hut)算法[7]對嵌入過程中各點之間的力進行近似計算,該算法通常被天文學家用來執行n體模擬。Barnes-Hut算法通過利用一組點對一個相對較遠的點施加的力都非常相似這一事實,減少了需要計算的成對力的數量。
由于輸入相似性是使用歸一化高斯核計算的,所以不同輸入對象i和j對應的概率pij(幾乎)是無窮小的。因此,對概率pij使用稀疏逼近時不會對最終嵌入的效果產生負面影響。通過找到N個數據對象中每個對象的最鄰近的|3u|個對象來計算稀疏近似值,并將成對相似性pij重新定義為:
(6)
式中:Ni表示xi的|3u|個近鄰的集合;δi被設置為使得條件分布的復雜度等于u。通過在數據集上構建一個優勢點樹,可以找到最近鄰集Ni。
為了近似計算t-SNE的梯度,將梯度分成如下兩部分:
(7)
式中:Fattr為所有引力之和;Frep為所有斥力之和。計算Fattr比較容易,效率也很快,因為它可以通過對稀疏分布P中的所有非零元素求和來實現。由于Frep的計算并不容易,且費時,所以本文采用Barnes-Hut算法來有效地逼近Frep。
RBFNN是基于函數逼近理論建立的一種前饋網絡,它比BP網絡具有更好的函數逼近性能、更簡單的結構和更快的訓練過程。RBFNN是一個包括輸入層、隱藏層和輸出層的三層網絡[8]。
在RBFNN中,輸入層由源節點組成,隱藏層提取輸入數據中的聚類特征。從輸入層到隱藏層的變換是非線性的,從隱藏層到輸出層的變換是線性的。隱藏層的傳遞函數為徑向基函數,是局部分布的中心點徑向對稱衰減非負非線性函數。
基函數的形式多種多樣,但最常用的是高斯函數,因此隱藏層神經元的輸出如下:
(8)
式中:x={x1,x2,…,xNi}是具有Ni維度的輸入特征向量;ci是第i個高斯函數的中心;Nh是隱藏神經元的數量;δi是RBF隱藏神經元的寬度。
(9)
式中:λ是重疊系數。整個RBF的輸出是所有隱藏神經元輸出的線性組合,定義為:
(10)
式中:wi為神經網絡的權重。
使用t-SNE算法能很好地挖掘高維數據的非線性特性,且可以將其高維空間數據的內在結構在二維空間內顯示出來,揭示數據內在的分類特點,并通過數據可視化直觀地表達數據間的相似性。但是t-SNE的計算復雜度和內存復雜度為數據量n的平方,這使得t-SNE只適用于數據量低于幾千個點的數據集,一旦數據集過大,t-SNE的處理速度會變得非常慢,降維結果也會變差。駕駛數據集的數量特別大,顯然t-SNE并不適用于駕駛行為分析。BH-SNE是t-SNE的改進算法,它只需要O(NlogN)的運算和O(N)的內存,能處理大量的數據集,而且BH-SNE同樣能挖掘高維數據的非線性特性。因此本文選擇使用BH-SNE進行降維。RBF神經網絡能夠逼近任意的非線性函數,可以處理系統內難以解析的規律性,具有良好的泛化能力和很快的學習收斂速度,而且不需要調整各種超參數,所以本文選擇使用RBFNN進行駕駛行為分類。識別模型的結構如圖1所示。

圖1 基于BH-SNE和RBFNN的識別模型
可以看出,該模型自左向右由三個模塊組成,分別如下:
(1) 數據預處理:使用滑動窗口來提取數據片段,數據片段為一個250×3的矩陣,再將此矩陣歸一化并使用中位值平均濾波器去除噪聲干擾,最后得到輸入樣本V{ax,gy,mz}。

(3) 分類識別:將特征矩陣P輸入RBFNN,識別出直線行駛、左轉、右轉、起步、停車、掉頭和靜止這七種駕駛行為。
算法流程進一步解釋了該模型的實現細節:
輸入:三種傳感器數據。
輸出:七種駕駛行為的概率值。
步驟1數據預處理得到樣本V{ax,gy,mz}。
步驟2將ax、gy、mz依次輸入到式(6)得到高維空間中的條件概率pij,低維空間中的模擬數據集ε={y1,y2,…,yN},對ε進行數據初始化,將ε代入式(3) 得到低維空間中的條件概率qij。
步驟3將pij和qij代入式(4)得到代價函數C。

步驟5初始化聚類中心ci,確定基函數的個數,不斷地調整ci直到不再變化,初始化權值wi。
步驟6將ci代入式(9)得到δi,將δi代入到式(8)得到Ri(x),最后將Ri(x)和wi代入式(10),輸出當前樣本在各個類別下的概率。

過去大多數駕駛模式識別系統只使用加速度計的數據。本文決定使用加速度計、陀螺儀和磁力傳感器的傳感器融合輸出來檢測和識別駕駛運動。因為陀螺儀測量的是車輛的轉向加速度,所以可以用來檢測車輛轉彎運動,而磁力傳感器可以檢測到車輛行駛方向的磁感性強度,每個方向的磁感性強度都是固定的,當車輛行駛方向變化時磁感性強度也隨之改變(相當于一個羅盤)。三者配合使用,可以更準確地讀出車輛的姿態(方向)。本文采用的陀螺儀、加速度計和磁力傳感器可以測得運動物體三個坐標軸上的分量,假設這三個傳感器測得的數據分別為G={gx,gy,gz} rad/s,加速度計值A={ax,ay,az} m/s2,設備磁力傳感器M={mx,my,mz} μT。
本文使用ax、gy、mz作為樣本數據進行分類,因為在A、G、M中只有這三個單軸數據能反映車輛方向的變化。認為集合T={ax,gy,mz}是區分駕駛行為的最佳信號選擇。最后使用中位值平均濾波法對集合T進行濾波處理,濾除由偶然因素所引起脈沖性干擾致使的數據突變。
獲取到集合T的數據后,提取n個樣本數據段。數據段的數量取決于所涉及的應用的類型。增加段的長度可以提高識別精度,但同時會使不同活動之間的邊界變得不那么清晰。綜合考慮本文采用10 s的非重疊窗口大小對原始慣性時間序列數據進行分割(幾乎所有的駕駛行為如轉向、起步、停車和掉頭等都能在10 s內完成)。使用分段而不是單個數據點的原因是原始慣性測量的高度波動使得單個數據點的分類不切實際。因此,使用分別應用于ax、gy、mz軸上的滑動窗口來獲得數據片段[9]。在25 Hz的數據采集頻率下,250次數據作為一個數據段,將這個250×3的矩陣V{ax,gy,mz}作為識別模型的輸入樣本。
本文是以內置ARM處理器的智能手機作為駕駛行為數據采集硬件。智能手機使用配置了線性加速度傳感器和陀螺儀以及磁力傳感器的榮耀V10和iPhone 6S。智能手機被水平地放置在汽車儀表盤中間位置,x軸與儀表盤平齊,y軸垂直地面向上,z軸面向前進方向。汽車平臺為起亞賽拉圖和雪佛蘭賽歐3,數據收集軟件為phyphox(一個國外的傳感器數據測試軟件),實驗采集了4名用戶的駕駛行為數據,分別為直線行駛(SR)、左轉(L)、右轉(R)、起步(ST)、停車(P)、掉頭(U)和靜止(S)。采樣頻率為25 Hz,共收集了超過2 800份樣本數據,如表1所示。

表1 實驗數據集
整個實驗過程在MATLAB 仿真環境中進行。把實驗數據分成三份:60%的訓練集,20%的交叉驗證集,20%的測試集。
BH-SNE算法的參數設置[10]:從方差為10-4的高斯函數中采樣來初始化嵌入點。1 000次迭代梯度下降一次,初始步長設置為200。復雜度設置為30。所有維數大于50的數據集都使用PCA進行預處理,將維數降為50。
RBFNN模型的參數設置:徑向基函數的擴展(spread) 設置為1,中心點的個數設置為7。
實驗1探討t-SNE與BH-SNE在降維方面的優劣,將集合T的三個數據集A、G和M分別輸入t-SNE與BH-SNE進行降維,將數據從250維降到2維并顯示在二維坐標中,可視化結果如圖2所示。

圖2 t-SNE與BH-SNE的可視化效果對比
圖2中,點的顏色(灰度表示)對應駕駛行為的類別可以看出,BH-SNE可以構建高質量的傳感器數據嵌入。由圖2(c)可以看出,數據集G的可視化效果非常差,表明t-SNE不能很好地提取數據集G的特征,而圖2(d)的可視化效果非常好。同時在數據集A和M上,使用BH-SNE和t-SNE的可視化效果相差不大。綜合對比,BH-SNE的可視化效果比t-SNE好,因此BH-SNE的駕駛行為數據特征提取能力比t-SNE更好,而且從計算時間上可以看出,BH-SNE的效率遠高于t-SNE。綜上可以說明BH-SNE比t-SNE更適用于駕駛行為研究。
實驗2探討使用BH-SNE進行降維的原因,將輸入數據T分別用自編碼器(AE)、主成分分析(PCA)、線性判別分析(LDA)、局部保持投影(LPP)、t-SNE和BH-SNE進行降維,然后將降維數據分別輸入到BP神經網絡、SVM、AdaBoostM2和RBF網絡中進行分類,結果如表2所示。

表2 不同降維模型的降維效果對比
可以看出,t-SNE和BH-SNE的降維效果要優于其他降維算法,其中t-SNE的降維效果要優于BH-SNE,但是t-SNE的運行速度太慢,且t-SNE和RBFNN結合的分類效果并不好,所以本文選用BH-SNE進行降維。t-SNE+RBFNN模型的具體識別結果如表3所示。

表3 具體識別結果
實驗3將BH-SNE+RBFNN模型與兩個傳統的機器學習識別模型進行對比,比較結果如圖3所示,可以明顯地看出本文提出的模型識別效果最好,其他兩個模型平均識別率最高的是BP神經網絡的84.2%。同時將本文的模型與新型的分類模型Deep Forest(深度森林[11])進行對比,本文的模型識別效果更好。

圖3 常見分類模型識別效果對比
本文提出一種BH-SNE結合RBFNN的模型,用于識別常見的駕駛行為,包括縱向和橫向運動。該模型不僅比其他分類算法具有更好的分類效果,而且能有效地處理和識別實時序列數據。BH-SNE不僅實現了降維的效果,還能通過可視化觀察數據的特性。RBFNN的分類效果很優秀,而且運行速度很快。實驗結果也驗證了該方法的有效性和可行性,且對汽車安全行駛具有實際應用價值。