馬立玲,郭凱杰,王軍政
(北京理工大學 自動化學院,北京 100081)
車輛傳動系統(tǒng)屬于整車系統(tǒng)中關(guān)鍵組成部分. 在車輛運行過程中車載監(jiān)控系統(tǒng)會采集、存儲大量用于監(jiān)測實車運行過程的數(shù)據(jù),對傳動系統(tǒng)進行故障分類和性能評估. 但是這些數(shù)據(jù)具有數(shù)據(jù)量大、維度高、不平衡等特征,使得很多傳統(tǒng)的數(shù)據(jù)分析方法無法滿足其需要.
支持向量機(SVM)是一種基于VC維理論和統(tǒng)計學習中結(jié)構(gòu)風險最小化原理的機器學習方法. 與神經(jīng)網(wǎng)絡(luò)等傳統(tǒng)方法相比,處理小樣本、高維數(shù)和局部最小值時效果更好.
但是,在處理實際數(shù)據(jù)集的過程中,傳統(tǒng)的SVM算法也存在一些問題. 首先,SVM[1-3]算法對數(shù)據(jù)集中的噪聲、野點和正常樣本賦予相同的權(quán)重,從而顯著降低SVM分類結(jié)果的準確性. 此外,大量的實際數(shù)據(jù)集在樣本大小上是不平衡的,在這種情況下,機器學習分類器來自大的負(無關(guān))樣本,尋找少量陽性(相關(guān))樣本. 傳統(tǒng)的SVM算法通常受到優(yōu)勢類數(shù)量的偏差,因為它們的損失函數(shù)試圖優(yōu)化相關(guān)性的數(shù)量,例如錯誤率,而沒有將數(shù)據(jù)分布納入考慮范圍內(nèi),甚至忽略少數(shù)類樣本,從而造成傳統(tǒng) SVM的性能大大下降. 出于這個原因,許多研究人員提出了改進的方法. Lin等[4]提出了模糊支持向量機(FSVM)算法,結(jié)合了模糊數(shù)學的理論,根據(jù)樣本數(shù)據(jù)到該類中心的距離遠近,分配給每個訓(xùn)練樣本不同的權(quán)值,減少了噪聲和野點對分類器性能的影響. 同樣,張炤等[5]使用內(nèi)核方法在內(nèi)核空間中實現(xiàn)FSVM算法;Jiang等[6]提出了一種基于樣本之間緊密度的FSVM算法. 為了解決數(shù)據(jù)集不平衡的問題,Hui等[7]將SVM算法與欠采樣或過采樣技術(shù)相結(jié)合,以平衡正負類的采樣率. Chang等[8]通過為正樣本和負樣本分配不同的誤差成本(DEC)來減少不平衡數(shù)據(jù)對SVM算法的影響. 該算法不僅給出了具有不同懲罰因子的正樣本和負樣本,而且還為約束添加了新的參數(shù),使分類表面更加靈活,提高算法的準確性.
然而,用SVM進行車輛故障分類時,仍然存在一些問題:①單純用一種SVM改進算法無法同時有效地處理噪聲點和數(shù)據(jù)集不平衡的問題;②FSVM算法在設(shè)計模糊隸屬度時使用歐氏距離,并且均等地處理樣本的不同屬性之間的差異;③傳統(tǒng)SVM僅僅輸出的是故障類別,無法輸出正常狀態(tài)下的故障概率,從而做出故障預(yù)警及性能評估. 針對以上問題,本文提出了統(tǒng)一的解決辦法. 相比傳統(tǒng)的SVM算法優(yōu)點在于:①能夠有效處理數(shù)據(jù)不平衡問題;②使用馬氏距離代替歐氏距離來設(shè)計模糊隸屬度,消除變量相關(guān)的干擾;③增加了正常狀態(tài)下的故障概率輸出模型,便于后續(xù)進行車輛傳動系統(tǒng)的故障預(yù)警和性能分析.
傳統(tǒng)的SVM 算法認為,每一個樣本的重要性是相同的,算法分配給每一個樣本相同的權(quán)值. 給定訓(xùn)練集(X,T)={(xi,ti),i=1,2,…,l},其中xi為樣本,ti為樣本xi的標簽;引入非線性映射φ(x),將訓(xùn)練集映入高維空間(φ(X),T)={(φ(xi),ti),i=1,2,…,l};選取適當?shù)暮撕瘮?shù)K(x,y)=φ(x)Tφ(y);引入松弛變量ξi≥0,i=1,2,…,l. 標準支持向量機的一般形式可表示為
ti[ωTφ(xi)+b]≥1-ξi,
ξi≥0,i=1,2,…,l.
(1)
但在車輛傳動系統(tǒng)試驗數(shù)據(jù)集這樣的不平衡數(shù)據(jù)集中,如果給予正負類樣本同樣的權(quán)值,分類結(jié)果通常偏向于多數(shù)類,并且通常會忽略一些少數(shù)類,將其作為多數(shù)類的異常. 為此,DEC算法可以通過為較小的類分配較大的權(quán)重而為多數(shù)類分配較小的權(quán)重有效地減少不平衡對SVM算法的影響. 在式(1)中,假設(shè)前p個樣本是正類樣本,后l-p個樣本是負類樣本. 則變?yōu)橐韵虏黄胶釹VM的一般形式
ti[ωTφ(xi)+b]≥1-ξi,ξi≥0,i=1,2,…,l.
(2)
式中:C+和C-分別為陽性和陰性樣本的懲罰因子,并提出了一系列方法選擇陽性和陰性樣本的懲罰因子的比例. 文獻[9]將C+/C-設(shè)置為多數(shù)類與少數(shù)類樣本個數(shù)的比值,文獻[10]則搜索包含高維空間中正負樣本的所有樣本點的超球面,并比較兩個球體的半徑. 兩相比較,計算所有樣本點超平面的方法時間復(fù)雜度較高,而車輛傳動系統(tǒng)試驗數(shù)據(jù)不同樣例間的稀疏程度差別不大,再考慮到車輛傳動系統(tǒng)試驗數(shù)據(jù)集數(shù)據(jù)量大,維度高的特點,本文采用文獻[9]中的方法,將懲罰因子設(shè)置為多數(shù)類與少數(shù)類樣本個數(shù)的比值.
懲罰因子為正負類樣本提供了不同的權(quán)值來平衡正負類樣本的類間差異,同樣,在同一類中每個樣本的重要性也是不同的.
定義正類樣本在特征空間的均值為φ+,負類樣本在特征空間的均值為φ-,前p個樣本是正類樣本,后l-p個樣本是負類樣本,即
(3)
(4)
則正負類在特征空間中的半徑分別為
i=p+1,p+2,…,l.
(6)
那么模糊隸屬度為
(7)
(8)
引入式(2)中有
ti[ωTφ(xi)+b]≥1-ξi,
ξi≥0,i=1,2,…,l.
(9)
也就是說,訓(xùn)練集中的不同訓(xùn)練樣本被給予不同的模糊隸屬度(即權(quán)重)以測量樣本對分類器的重要性.
然而,該方法僅使用從樣本到其類中心的歐式距離作為樣本重要性的指標. 雖然歐式距離簡單易用,但缺點是顯而易見的,樣本的不同屬性之間的差異也是以同樣的方式處理,有時不能滿足實際需要. 然而,馬式距離不受維數(shù)影響,可以消除不同變量之間的相關(guān)干擾,可以計算樣本與不同種群之間的相似性,因此更適合判斷故障類別.
標準的SVM的無閾值輸出為
f(x)=h(x)+b,
(10)
式中
(11)
Platt利用sigmoid-fitting方法[11],將標準SVM的輸出結(jié)果進行后處理,轉(zhuǎn)換成后驗概率
(12)
式中:A,B為待擬合的參數(shù);f為樣本x的無閾值輸出.S形擬合方法的優(yōu)點在于,在保持SVM稀疏性的同時,可以很好地估計后驗概率.
SVM概率輸出使得SVM不僅能夠用于故障分類,還可以得到正常狀態(tài)下各個故障的發(fā)生概率,從而起到故障預(yù)警和性能分析的作用.
① 采集原始故障數(shù)據(jù),對原始數(shù)據(jù)進行歸一化處理,并將處理后的數(shù)據(jù)分為兩部分:訓(xùn)練集和測試集.
② 根據(jù)正負類樣本的比例關(guān)系為他們設(shè)置合理的懲罰因子,用馬氏距離代替?zhèn)鹘y(tǒng)的歐式距離代入式(7)(8)中,為每個樣本分配具體的隸屬度權(quán)值.
馬氏距離的表達式為
(13)
式中Σ為兩個向量間的協(xié)方差矩陣.
由于高維空間中樣本點之間存在協(xié)方差矩陣的逆矩陣,文獻[12]給出了高維特征空間. 不需要求解協(xié)方差矩陣的逆矩陣,并且核函數(shù)用于求解采樣點到類的中心的馬爾可夫距離. 代入式(7)(8)中可得
(15)
式中:
(16)
(17)
③ 輸入訓(xùn)練集, 使用網(wǎng)絡(luò)搜索法[13]對懲罰因子C和核參數(shù)γ進行尋優(yōu),從而達到最好的訓(xùn)練準確度.
④ 用測試集對訓(xùn)練好的SVM模型進行測試和故障分類. 對于正常狀態(tài)類的數(shù)據(jù),通過其概率輸出進行故障預(yù)警和性能分析.
本實驗依托于某車輛外場試驗數(shù)據(jù)來驗證算法的正確性. 該采樣數(shù)據(jù)共有10種不同狀態(tài)(包括正常狀態(tài)和9種故障狀態(tài),其中9種故障狀態(tài)分別為:潤滑油壓異常,發(fā)動機乏力,油溫過高,閉鎖油壓異常,風扇轉(zhuǎn)速異常,各檔操縱件壓力異常(包括2檔、5檔、中心轉(zhuǎn)向檔、倒1檔共4個故障狀態(tài))). 原始數(shù)據(jù)包含有44個不同的屬性變量,本文選取與故障可能相關(guān)的10個屬性變量,分別為:潤滑油壓,傳動出油溫度,風扇轉(zhuǎn)速,發(fā)動機轉(zhuǎn)速,檔位,發(fā)動機水溫,Cb閉鎖壓力,輸出轉(zhuǎn)矩,操縱油壓,風扇驅(qū)動壓力.
由圖1可以看出,故障3(油溫過高,后文用故障3代替)和故障4(操縱油壓異常,后文用故障4代替)的原始觀測數(shù)據(jù)不平衡程度高,空間重疊嚴重,同時具有很多噪聲和野點(特征7、9分別為Cb閉鎖壓力和操縱油壓).
通過對原始采樣數(shù)據(jù)的大量統(tǒng)計,得出故障3和故障4的樣本數(shù)比例大概在1:20左右. 通過截取一段時間內(nèi)的采樣數(shù)據(jù),計算出其中故障3樣本50條,故障4樣本共996條,比例與統(tǒng)計結(jié)果大致相符. 從樣本集中隨機提取25個故障3數(shù)據(jù),500個故障4數(shù)據(jù),剩余數(shù)據(jù)用作測試集. 將本文算法與傳統(tǒng)SVM,DEC,F(xiàn)SVM算法分別在該樣本集上進行驗證和比較,并使用網(wǎng)絡(luò)搜索法對懲罰因子C和核參數(shù)γ進行尋優(yōu).
表1 不同算法的故障診斷結(jié)果Tab.1 Fault diagnosis results of different algorithms
SVM的理論基礎(chǔ)是使用非線性映射將樣本映射到高維空間,使他們可線性分離,并使用核函數(shù)的思想,滿足 Mercer條件的核函數(shù)用于替換高維空間點積運算,最后實現(xiàn)分類器設(shè)計. 然而,在實際應(yīng)用中,通常難以在高維空間中獲得特定的映射形式.
為了能夠可視化SVM分類結(jié)果,使用經(jīng)驗特征映射來代替?zhèn)鹘y(tǒng)的高維特征映射[14]. 對應(yīng)于核矩陣K的兩個最大特征值的兩個主方向向量被投影在經(jīng)驗特征空間中.
然后使用本文提出的算法對數(shù)據(jù)集進行處理,同樣在經(jīng)驗特征空間中向核矩陣K兩個最大的特征值所對應(yīng)的兩個主方向向量作投影.
從圖2和圖3的比較可以看出,當傳統(tǒng)的 SVM算法處理不平衡數(shù)據(jù)時,類間距很小,小類樣本基本上被多類的樣本包圍,而改進的SVM算法可以有效地解決數(shù)據(jù)不平衡問題,有效地增加了類間距. 同時分布盡可能地稀疏,并且在幾個類的識別率和整體性能方面優(yōu)于傳統(tǒng)的分類算法.
取一段時間內(nèi)包含故障3、故障4和正常狀態(tài)的共200條數(shù)據(jù)作為訓(xùn)練集,在本文的相關(guān)向量機模型中訓(xùn)練并輸出概率模型. 通過觀察正常狀態(tài)下的概率輸出結(jié)果,可以評估該時段內(nèi)不同故障的發(fā)生概率,在故障概率過高的故障做出故障預(yù)測. 并可以結(jié)合層次分析法對傳動系統(tǒng)的性能做出分析和評估.
如圖4所示,截取60條正常狀態(tài)下的概率輸出數(shù)據(jù),將發(fā)生故障3和故障4的概率繪制成曲線. 從圖中可以看出,在第40~45條數(shù)據(jù)對應(yīng)的系統(tǒng)運行時間內(nèi),兩種故障發(fā)生的概率明顯高于平均值,可以判定該時間段內(nèi)系統(tǒng)運行出現(xiàn)異常.
此外,得到正常狀態(tài)下的各個故障發(fā)生概率,也有助于后續(xù)利用層次分析法等特定算法對車輛傳動系統(tǒng)進行性能分析.
提出了一種新的用于不平衡數(shù)據(jù)的概率SVM算法. 該算法不僅可以有效地降低不平衡數(shù)據(jù)對SVM造成的影響,而且用馬氏距離設(shè)計模糊隸屬度, 可以消除變量相關(guān)性對分類結(jié)果的干擾,并且可以減少數(shù)據(jù)中的噪聲和野點干擾. 數(shù)據(jù)集的數(shù)值實驗驗證了分類方法的有效性. 同時通過改進SVM輸出正常狀態(tài)下各個故障的概率,可以有效地進行故障預(yù)警和性能分析.
然而,應(yīng)該指出的是,雖然算法提高了分類精度,但是需要優(yōu)化的參數(shù)也增加了. 下一步是設(shè)計有效的參數(shù)選擇策略,以縮短算法的訓(xùn)練時間.