閔海根, 方煜坤, 吳 霞, 王武祺, 宋曉鵬
(1.長安大學信息工程學院, 西安 710064;2.長安大學“車聯網”教育部中國移動聯合實驗室, 西安 710064;3.浙江省交通規劃設計研究院有限公司, 杭州 310017)
近年來,具有自動駕駛和網聯功能的智能汽車受到越來越多的關注,與之相關的技術有望大幅提升交通效率[1-2].智能汽車的安全性問題是目前阻礙其大規模落地的重要因素之一,因而故障診斷技術對于保證智能汽車安全行駛必不可少.故障診斷能對系統發生的故障進行有效檢測、識別,并采取一定補救措施,保證系統穩定.Gao等[3-4]對現有的故障診斷算法進行了系統地總結,將這些算法大體分為三類:基于模型的方法,基于特征信號的方法和數據驅動的方法.(1) 基于模型的方法首先對被研究對象進行建模[5],通過檢測模型輸出和系統實際輸出之間的一致性判斷系統是否異常.在故障診斷領域,卡爾曼濾波[6]是一種廣泛應用的基于模型的方法,通過對研究對象進行建模,利用卡爾曼濾波對系統當前時刻狀態進行估計,比較估計值和量測值之間的差異,從而判斷系統是否異常;(2) 基于特征信號的方法假定系統狀態可以被特定的信號所反映,監測這些信號并結合對系統的先驗知識對系統是否異常做出判斷;(3) 數據驅動的方法則通過對大量系統歷史數據的挖掘,學習系統的部分特征,在進行故障診斷時,這類方法通過比較當下采集的特征和學習到的特征之間的差異性,對系統是否異常做出判斷.
對于智能汽車的各個子系統,獲取相關的先驗知識或者對其精確建模通常比較困難,因而利用數據驅動的方法對系統進行故障診斷受到了更多的關注.針對故障診斷任務,異常數據往往難以獲得,這使得無監督學習方法在故障診斷任務中得到關注.無監督故障診斷的基本思想是[7]:訓練數據全部為正常數據或者含有少量故障數據,設計機器學習算法,學習研究對象的某些特征表示.由于訓練數據中正常數據占據主導地位,學習到的特征表示就表征了正常情況下系統的特征.待檢測樣本的這些特征表示如果和學習到的特征表示存在較大差異,則認為存在異常.根據數據的不同特點,兩類常見的方法分別是基于重構的方法和基于預測的方法.基于重構的方法首先將數據壓縮到特征空間,再將數據進行重構,其基本假設是[7]:正常數據可以被較好地從特征空間重構,異常數據則不能.如果重構的數據和實際測量數據差異過大(即重構誤差過大),則認為存在異常.自動編碼器(Autoencoder, AE)[8]是這類方法的典型,訓練階段,編碼器將訓練數據映射到特征空間,學習研究對象的特征表示,再利用解碼器重構數據;測試階段,那些不能被很好重構的數據點被認為是異常.這類方法對時間關聯性較弱的數據通常性能較好,但是無法處理時序數據.時序數據的特點在于數據之間存在時間關聯性,遵循著某種時間上的依賴關系.基于預測的方法就是要學習時序數據的時間關聯性以及數據之間在時間上的依賴關系,其基本假設為[7]:一旦模型學習到研究對象的時間依賴關系,正常數據將可以被準確地預測,異常數據則不能.如果預測的數據和實際測量數據差異過大(即預測誤差過大),則認為存在異常.長短時記憶(Long-Short Term Memory, LSTM)網絡[9-10]是此類方法的代表,該網絡相比于傳統的神經網絡,可以對序列數據之間的時間關聯性進行記憶,在時間序列預測問題中應用廣泛.
本文以智能汽車為研究對象,重點研究了傳感器數據異常檢測和車輛運動異常檢測.具體而言,根據不同傳感器數據的特點(是否為時序數據),使用基于超限學習框架的自動編碼器檢測瞬態異常,使用多層LSTM檢測過渡異常,并提出了一種自適應確定重構誤差或者預測誤差閾值的方法.基于車輛自行車運動學模型,利用Kalman濾波,通過對預測值和量測值殘差的正態性進行檢驗來檢測車輛運動是否異常.實際場地測試驗證了本文所提出的方法可以有效檢測非時序和時序傳感器數據異常,并對車輛運動是否異常進行檢測.
記從某傳感器獲得的數據為
V={V1,V2,…,Vi,…}
(1)
其中,下標表示在第1, 2, …,i, …個時間步獲得的傳感器數據.對某一具體的時間步i,其獲得的傳感器數據通??梢员硎緸橐粋€向量,如下式.
Vi=(Vi1,Vi2,…,Vij,…)
(2)
這里,Vij表示在時間步i某個分量j的值.
Sharma等人總結了4類典型的傳感器故障[11-12],包括:(1) 短時強干擾(Short):兩個連續傳感器數據幀之間有較為劇烈的變化;(2) 偏離(Bias):與實際值之間存在固定偏差;(3) 阻塞(Jam):傳感器輸出為一常值;(4) 數據幀丟失(Miss):一段時間內缺少可用的傳感器數據.
Bahavan等根據檢測異常值方式的不同將異常分成了兩類[13]:(1) 瞬態異常:數據之間不存在時序關聯性,某個采樣點數據值本身即可反應研究對象是否異常;(2) 過渡異常:數據之間存在時序關聯性,某個采樣點數據值本身無法反應異常與否,但是連續數據幀之間的變化則可以反應研究對象是否異常.則短時強干擾和數據幀丟失可以視為瞬態異常,偏離及阻塞可以視為過渡異常.
本節介紹針對這兩種不同類型異常的檢測方法.采用超限學習框架下的自動編碼器(Extreme Learning Machine based Autoencoder, ELM-AE)對傳感器數據中的瞬態異常進行檢測;采用長短時記憶 LSTM網絡學習時序數據之間的時序關聯性對過渡異常進行檢測.
自動編碼器(Autoencoder, AE)是一種基于數據重構進行異常檢測的方法,這類方法的基本假設是[7]:正常數據可以被很好地重構,異常數據則不能.如果重構的數據與數據本身差異過大(即重構誤差過大),則認為可能存在異常.
自動編碼器是一個帶有一層或多層隱藏層的前饋神經網絡,但是其輸入和目標輸出完全一致.針對異常檢測任務,要求訓練數據中正常樣本數量遠遠大于異常樣本數量.圖1示意了一個單隱層自動編碼器,其編碼和解碼操作分別由式(3)和式(4)描述[14].

圖1 自動編碼器示意圖Fig.1 Schematic of the autoencoder
(3)
(4)

傳統的自動編碼器一般利用反向傳播算法,通過最小化式(5)所定義的重構誤差.

(5)
對權重矩陣w,β及偏置向量b進行優化.這里,‖?‖代表某種范數,本文中所有參與范數計算的向量都會被線性映射到[-1, 1]區間后再進行范數計算,下同.訓練過程往往需要大量數據才能收斂.本文則采用超限學習框架構建自動編碼器,該框架下,隱層參數是基于最小二乘方法直接計算得到[14],即,通過最小化式(5)定義的重構誤差,計算最優的輸出層權重矩陣β*[15],如下式.
β*=H?X
(6)
其中,H=[hT(x1),…,hT(xd)]T,H?=(HTH)-1HT是矩陣H的Moore-Penrose廣義逆.為了獲得更好的泛化能力,可以加入正則化項來計算β*[15],如下式.
(7)
其中,I是單位矩陣;C是一個可調的參數,用于對模型的精度和泛化能力進行權衡.解算出輸出權重矩陣β后,模型的輸出就可以表示為
(8)
對于待檢測的樣本點Xnew,決策其是否為異常點的決策變量可以形式化為
D0=sign(δ-‖Y-Xnew‖)
(9)
式(9)中,δ為重構誤差的閾值;sign表示符號函數;D0為決策變量,D0如果為-1則認為該樣本點為異常點.閾值δ由式(10)、式(11)自適應地決定,這里,?是一個隨著誤差‖Y-Xnew‖動態變化的系數,max(err)指訓練數據再次輸入訓練好的模型,經過前向傳播計算出的最大重構誤差.
δ=γ·max(err)
(10)
(11)
分析式(10)和式(11)可得,max(err)實際上是閾值δ的下限,因為訓練數據均為正常數據點,故而閾值應該大于max(err).系數?可以看做是對異常數據靈敏度的一種度量,其值越小,則閾值δ也越小,對異常點的檢測越靈敏.可以看到,?隨著誤差‖Y-Xnew‖增加單調遞減,正常點誤差較小,則對應的閾值δ較大,說明該方法確定的閾值對正常點不敏感;異常點誤差較大,其對應的閾值δ就偏小,說明該方法所確定的閾值對異常點較為敏感.
針對時序數據的異常檢測任務,根據數據之間的時間關聯性,利用歷史數據對當前時刻的數據進行預測.如果預測值和傳感器量測值之間差異過大(即預測誤差過大),則認為可能存在異常.


圖2 多層LSTM網絡結構示意圖Fig.2 Schematic of multi-layer LSTM

(12)
為訓練目標,利用后向傳播算法(Back Propagation, BP)進行訓練.測試時,對于待檢測的樣本點Unew,判斷其是否為異常點的決策變量D1與(9)式類似,形式化為
(13)

(14)
(15)

車輛的運動遵循一定的運動學及動力學規律,利用這些規律可以對車輛的運動進行建模,利用模型對當下的車輛狀態進行預測.在傳感器數據沒有異常的情況下,如果模型預測值與實際量測值之間有著較大差距,則認為車輛運動可能存在異常.本文采用車輛自行車模型[17]對車輛進行運動學建模,設計Kalman濾波器對車輛當前狀態進行預測,從瞬時和長期兩個方面對車輛運動是否存在異常進行檢測.
車輛自行車模型[17]是一種有效簡化車輛運動的模型,其示意圖如圖3所示.

圖3 車輛自行車運動學模型示意圖Fig.3 Schematic of the vehicle bicycle kinematic model
圖3的模型中的系統狀態可以表示為Ω(k) = [x,y,φ]T,這里,k代表時刻;x,y表示車輛中心坐標;φ代表車輛當前偏航角.車輛當前狀態與上一時刻狀態的關系式可以表示為


(16)
這里,Δt表示傳感器數據采樣周期;δ表示前輪轉角;v代表車輛當前的縱向速度;l代表前后車輪的半軸長.為了進一步簡化模型,本文只對x,y兩個坐標值進行預測用于運動異常的檢測,則(16)式可以簡化為(17)式表示的線性模型.

(17)
這里,
卡爾曼濾波器是一種廣泛運用的線性狀態估計器,只需要前一時刻的狀態估計和當前時刻的量測值,利用已知的線性狀態轉移模型(如式(17)所示),就可以得到當前狀態的預測值.卡爾曼濾波的過程大致可以分為兩個階段[18],即預測和狀態更新.在預測階段,有
Ω(k|k-1)=FΩ(k-1|k-1)+BU(k)
(18)
P(k|k-1)=FP(k-1|k-1)FT+Q
(19)
這里,Ω(k|k-1)是利用上一時刻狀態對當下時刻的先驗狀態估計,Ω(k-1|k-1)是k-1時刻系統的狀態;U(k)=[a(k),δ(k)]T為控制輸入,本文中的控制輸入為車輛的縱向加速度a(k)和前輪轉角δ(k);B是控制輸入的參數矩陣;P(k|k-1)和P(k-1|k-1)分別是Ω(k|k-1)和Ω(k-1|k-1)對應的協方差矩陣;Q是過程噪聲矩陣;F為一步狀態轉移矩陣,即(17)式中的系數矩陣.在狀態更新階段,有
Kg(k)=P(k|k-1)HT/
(HP(k|k-1)HT+R)
(20)
Ω(k|k)=Ω(k|k-1)+Kg(k)(Z(k)-
HΩ(k|k-1))
(21)
P(k|k)=(I-Kg(k)H)P(k|k-1)
(22)
其中,Kg(k)為k時刻的卡爾曼增益;H為測量矩陣;R為觀測噪聲矩陣;Z(k)為k時刻傳感器量測值;I為適階單位矩陣.
對于車輛的運動異常檢測,本文從瞬時和長期兩個角度進行考慮.從瞬時角度看,當下時刻的預測值Ω(k|k)如果和量測值Z(k)差異過大,則認為車輛的運動或存在異常,即決策變量D2形式化為
D2=sign(σ-‖Ω(k|k)-Z(k)‖)
(23)
其中,σ為一閾值;‖?‖代表某種范數.如果決策變量值為-1,則認為該時刻車輛運動狀態可能存在異常.
根據中心極限定理,隨機誤差應服從正態分布,則從長期角度,可以通過檢驗一段時間內卡爾曼濾波的預測值和傳感器實際量測值之間殘差的正態性來檢測車輛的運動狀態是否異常.本文選用Jarque-Bera測試[19]進行殘差的正態性檢驗,該方法假定如果一個樣本來自于服從正態分布的數據,那么其期望的偏度(skewness)是0而峰度(kurtosis)是3,通過測試樣本偏度和峰度與正態分布的匹配性來對樣本的正態性進行檢驗.記測試統計量為JB,定義為
(24)
式(24)中,n是自由度,如果假設每個樣本都是獨立的,那么n就等于樣本數;S代表偏度;K代表峰度,計算式為
(25)
(26)

本節介紹文中有關算法的試驗驗證.首先對采集的數據進行說明,接著分別展示文中所提算法對瞬態傳感器數據異常、時序數據異常以及車輛運動異常的檢測效果.
本次實驗采集的數據為GNSS數據和慣導數據,式(2)具體化為
Vi=(lati,loni,ωxi,ωyi,ωzi,axi,ayi,azi)
(27)
式(27)中,下標i表示在某個具體時間步i.lat,lon表示由GNSS傳感器獲得的緯度和經度(單位:°)數據,ωx,ωy,ωz分別表示x軸、y軸、z軸方向的角速度(單位:(°)/s,ax,ay,az分別表示x軸、y軸、z軸方向的加速度(單位:g).
實驗中將采集數據的組合導航設備固定于智能汽車平臺(圖4(a))內部,在長安大學車聯網與智能汽車測試基地(圖4(b))采集了部分場景的GNSS數據及慣導數據,采樣頻率50 Hz.針對采集數據不同步的問題,采用線性插值的軟同步方法實現不同頻率傳感器時間同步[20].

(a) 智能汽車平臺 (a) Intelligent vehicle platform
在式(27)定義的8個分量中,ωx,ωy,ωz,ax,ay,az連續數據幀之間的時間關聯性較弱,若存在異??梢暈樗矐B異常.本小節以這6個分量為訓練數據,從訓練時收斂速度和故障檢測性能兩個方面,對比了ELM_AE和傳統BP網絡框架下的自動編碼器.二者的網絡結構均設計為三層的前饋網絡,隱藏層32個神經元.訓練階段,基于相同的平臺(Intel Core i7-8550 CPU,27 515個訓練樣本),ELM_AE的收斂速度是平均0.05 s,傳統BP網絡框架下的自動編碼器收斂速度為平均3.54 s.
測試階段,由于采集的數據均為正常數據,為了驗證ELM-AE的檢測性能,實驗數據中注入了一些人工標注好的短時強干擾數據.實驗采用受試者操作特征曲線(Receiver Operating Characteristic curve, ROC curve)及其曲線下面積(Area Under Curve, AUC,越接近1表征性能越好)作為度量指標,ELM_AE和傳統BP網絡框架下的自動編碼器的ROC曲線如圖5所示,其曲線下面積分別為0.761 3和0.743 4.可以看到,相比于傳統BP網絡框架下的自動編碼器,ELM_AE的性能也有一定提升.

圖5 傳統自動編碼器和ELM-AE的ROC曲線Fig.5 ROC curves of traditional autoencoder and ELM-AE
本文采用多層LSTM對時序數據異常進行檢測,在式(27)中,lat,lon分量連續數據幀之間有著較強的相關性,模型將以式(27)中的8個分量作為輸入,對lat,lon分量進行預測.
LSTM網絡結構為:輸入層有8個神經元對應式(27)的8個輸入,輸出層有兩個神經元對應預測的lat,lon分量,中間構建了2層LSTM層,每層均有16個LSTM記憶單元.輸入的時間步長s被設置為30.
訓練階段,以lat,lon分量預測值和lat,lon實際量測值的均方誤差(Mean Squared Error, MSE)最小化為訓練目標對模型進行訓練.測試階段,由于采集的數據均為正常數據,為了驗證模型的檢測性能,實驗數據中注入了一些人工標注好的“阻塞”數據.表1展示了多層LSTM,多層感知機(網絡結構與多層LSTM類似,只是用全連接層代替了LSTM層),以及自回歸模型[21]的預測結果.

表1 幾種算法時序數據異常檢測性能對比Tab.1 Comparison of anomaly detection performance for several algorithms
可以看到,多層LSTM在準確率、精確率、召回率和F1分數上均獲得了最好的性能,原因在于:多層感知機可以學習到輸入變量之間的關系,但是該網絡不具有時間記憶性,無法學習數據之間的時序關聯;自回歸模型則僅僅利用歷史信息來進行預測,卻無法學習到各輸入變量之間的關聯性;多層LSTM由于用記憶單元代替普通神經網絡中的神經元,既可以學習到輸入變量之間的關系,同時也可以學到時序數據的時間關聯性,因而在處理多變量時序數據預測問題中獲得了更好的性能.
本實驗中采用了卡爾曼濾波觀測器預測自動駕駛汽車當前的位置(即式(17)中的x,y).從長期角度看,預測值與實測值之間的殘差理論上應服從正態分布.由于采集的數據都是正常數據,實驗時以10 s為周期(約500個數據點),對該周期內Kalman濾波的估計值和量測值之間的殘差,用式(24)中的統計量JB進行檢驗.實驗中JB的最大值為0.34,與0值偏差不大,可以認為對于正常數據而言,Kalman濾波估計值與量測值之間的殘差是服從正態分布的.圖6展示了部分周期內殘差分布擬合的結果,可以直觀看出其分布接近正態分布.

圖6 殘差分布擬合
本文基于自動編碼器和長短時記憶網絡,對智能汽車故障診斷的部分方法進行了研究.針對非時序傳感器數據,采用超限學習框架的自動編碼器重構待檢測數據來檢測瞬態異常;針對時序傳感器數據,采用多層長短時記憶網絡學習時序數據之間的關聯關系預測當下時刻的數據值來檢測過渡異常.與此同時,提出一種閾值隨著誤差大小動態變化的自適應閾值確定方法,使得決策變量對于異常值相對敏感.進一步地,采用車輛自行車運動學模型和卡爾曼濾波,利用Jarque-Bera測試對模型估計值和實際量測值之間的殘差進行正態性檢驗以檢測車輛運動是否存在異常.實驗驗證了本文所提出的方法可以有效檢測非時序或時序異常傳感器數據,并對車輛運動是否異常進行檢測.