周俊曦,王欣
(中國民用航空飛行學院計算機學院,廣漢 618307)
人工智能技術在工業設備維護領域的應用越來越廣,設備剩余壽命預測是其中最重要的應用領域之一。本文將采用機器學習算法對航空發動機的故障數據建立模型,以數據驅動的方式來對其健康狀態進行預測,從而減少設備維護的成本。使用機器學習里的集成學習模型預測設備的剩余壽命,對于降低安全事故風險、降低設備維護成本、保障生命財產安全具有重要意義。
目前在國外已經有很多人用機器學習的方法對發動機的剩余壽命進行預測,并且做了一定的改進,而國內在這方面的應用就寥寥無幾。P.Arpaia等人[1]使用隱馬爾可夫模型檢測流體機械故障,該方法在CERN的螺桿壓縮機的故障檢測上有比較高的準確性。唐王[2]使用改進的SVR方法對航空發動機的余壽進行預測,使它的RMSE值為20.96。葉景[3]使用XGBoost用于交通流量預測來緩解交通擁堵提高交通運行效率,使得模型預測值RMSE為10.2。Yang等[4]提出了一種基于空間的最小二乘支持向量回歸的預測模型方法。同時基于支持向量機的模型在短時交通流量預測中的多次應用均取得良好的預測精度。上述文獻所用的方法大多是單個分類器,單個分類器普遍存在泛化能力較弱、分類精度較低的缺點,如果采用集成學習模型就可以克服以上缺點。集成學習模型就是把多個單一的學習模型結合起來并獲得更好的泛化能力和更高的預測精度。陳天奇提出的XGBoost算法就是一種典型的集成學習算法,它是基于GBDT的一種高階集成算法,它不僅擁有傳統集成學習算法計算速度快、泛化能力好等優點,還在GBDT的基礎上顯示地加入正則項來控制模型的復雜度來防止過擬合,以及支持數據采樣、支持列抽樣,并自動學習出數據缺失值的分裂方向,以此擁有更高的模型泛化能力、更小的計算量以及自動化對數據缺失值進行處理等優點。但本文處理的大樣本、高維度的渦扇發動機性能退化數據,航空發動機數據集普遍存在數據維度高、算法復雜度高等問題,因此采用LightGBM模型來對發動機健康狀態預測比XGBoost擁有更低的時間復雜度和更高的預測精度,而本文采用的LightGBM模型則可以克服以上缺點,并在此基礎上對LightGBM使用貝葉斯算法進行參數優化[5]。LightGBM采用了直方圖算法將遍歷樣本轉變為遍歷直方圖,極大地降低了時間復雜度,并在訓練過程中采用單邊梯度算法過濾掉梯度小的樣本,減少了大量的計算,而且還采用優化后的特征并行、數據并行方法加速計算,當數據量非常大時還可以采用投票并行的策略。XGBoost使用預排序后需要記錄特征值及其對應樣本的統計值的索引,而LightGBM使用了直方圖算法將特征值轉變為bin值,且不需要記錄特征到樣本的索引,大大降低了空間復雜度,極大地減少了內存消耗。
為了提高發動機健康狀態預測的準確性和精確度,本文提出一種基于LightGBM模型的健康狀態預測方法,因為參數對模型性能表現有著決定性的影響,并且LightGBM的參數眾多、意義多樣,使得調整參數工作就顯得尤為繁瑣和龐大,極可能落入局部最優的調參范圍,事倍功半,精度提升不高。此外,最優參數組極大程度依賴于訓練樣本數據,噪聲的存在會影響模型學習和演算進程,從而降低訓練模型的泛化能力和穩定性。然而利用貝葉斯優化算法可以很好改善這一不足。
LightGBM(light gradient boosting machine)是微軟旗下的DMKT(distributed machine learning toolkit)的一個項目,由2014年首屆阿里巴巴大數據競賽獲勝者之一柯國霖主持開發,是一款基于決策樹算法的分布式梯度提升框架。它是boosting集合模型中的新進成員,和XGBoost一樣是對GBDT的高效實現,原理上它和GBDT及XGBoost類似,都采用損失函數的負梯度作為當前決策樹的殘差近似值,去擬合新的決策樹。但是它在訓練效率、內存使用、準確率上有更好的表現,并且可以并行化學習和處理大規模數據,而且還支持直接使用category特征。
GBDT采用負梯度作為劃分的指標(信息增益),XGBoost則利用到二階導數。他們共同的不足是,計算信息增益需要掃描所有樣本,從而找到最優劃分點。在面對大量數據或者特征維度很高時,它們的效率和擴展性很難使人滿意。解決這個問題的直接方法就是減少特征量和數據量而且不影響精確度,有部分工作根據數據權重采樣來加速booisting的過程,但由于GBDT沒有樣本權重不能應用。而LightGBM則很好的解決這些問題,它主要包含了兩個算法:單邊梯度采樣(gradient-based one-side sampling,GOSS)和互斥特征綁定(exclusive feature bundling,EFB)。
GOSS(從減少樣本角度):排除大部分小梯度的樣本,僅用剩下的樣本計算信息增益。GBDT雖然沒有數據權重,但每個數據實例有不同的梯度,根據計算信息增益的定義,梯度大的實例對信息增益有更大的影響,因此在下采樣時,我們應該盡量保留梯度大的樣本(預先設定閾值,或者最高百分位間),隨機去掉梯度小的樣本。我們證明此措施在相同的采樣率下比隨機采樣獲得更準確的結果,尤其是在信息增益范圍較大時。
EFB(從減少特征角度):捆綁互斥特征,也就是他們很少同時取非零值(用一個合成特征代替)。通常真是應用中,雖然特征量比較多,但是由于特征空間十分稀疏,是否可以設計一種無損的方法來減少有效特征呢?特別在稀疏特征空間上,許多特征幾乎是互斥的(例如許多特征不會同時為非零值,像one-hot),我們可以捆綁互斥的特征。最后,我們將捆綁問題歸約到圖著色問題,通過貪心算法求得近似解。
結合使用GOSS和EFB的GBDT算法就是LightGBM。
本文擬采用NASA提供的C-Mapps渦輪發動機性能退化數據集作為本文的實驗對象,該數據集由NASA卓越故障預測研究中心提供,它包含了四小類渦輪發動機從開始運行到失效數據,分別為FD001、FD002、FD003、FD004,數據格式為24維時間序列,發動機數據由3個操作參數和21個傳感器監測參數組成,各組發動機具有不同的運行條件和故障模式,并且每組數據都分為訓練集和測試集,訓練集包括多個獨立的發動機單元,每一個單元的數據為一條多元時序數據,反映了發動機從起始到完全失效的變化過程。

表1 發動機退化仿真數據集基本情況
本次實驗擬采用仿真數據集中的FD001數據集,該數據集為單一工況下的仿真數據,它的特點是單調退化趨勢。里面包含了200臺發動機從運行到失效各個運行周期的監測數據以及對應的RUL標簽。我們把數據集分成訓練集和測試集,訓練集包含了100臺發動機的監測數據,最長周期數為362,最短周期數為128,共20631個樣本;測試機包含100臺發動機的監測數據和對應的RUL標簽,最長周期數為341,最短周期數為141,共13096個樣本。
線性退化和分段線性退化是航空發動機剩余壽命標簽設置的兩種方式。一般情況下我們會考慮采用分段線性退化模型,因為發動機的運行過程并不是完全線性的,在它開始運行的時間段里退化的并不明顯,幾乎可以忽略不計。我將訓練集的RUL標簽設置為127 cycle,如圖1所示。

圖1 訓練集RUL標簽
盡管C-MAPSS數據集中有21個傳感器可用,但并非所有傳感器都具有參考價值。一些傳感器在發動機的整個使用壽命中提供恒定或離散的值,而其他一些傳感器則未顯示出一致的趨勢。在這項研究中,我們使用了Zhang等人建議的14個傳感器[3]。
時間窗處理:許多多元時態基于數據的預測模型采取作為一個輸入一個多變量,數據采樣點在一個單一的時間戳記[3]。這樣就忽略了一些有用的時間信息,可能會大大改善預測性能。為了解決這樣的問題,該文利用固定大小的時間窗口(TW)封裝多變量連續時間戳采樣的數據點。具體來說,在TW中的任何特定時間戳,多元數據點涵蓋了當前時間戳及其前面的幾個時間戳,時間戳被串聯成一個高維特征載體,其被隨后饋送作為輸入到所述預測模型。窗口大小在實踐中,合適的大小TW可以通過選擇橫驗證。在此所述TW尺寸被設置到30。
由于各個屬性的量綱不同,因此需要將全部屬性的值規約到一個相同的取值空間中。所以對數據統一進行歸一化處理,歸一化可以縮小數值之間的差異,避免數據偏置問題,方便數據的后續處理,同時也有利于提高預測算法的準確性。本文中采用常見的min-max歸一化法來對數據進行歸一化,將數據歸一化在一定范圍內,歸一化公式為:

公式中的Xmin和Xmax分別對應每個列特征的最小值和最大值。
本文采用MSE、Score、RMSE指標對模型性能進行分析:


其中d i為RUL測試值-RUL真實值的預測誤差,當預測誤差di屬于[-13,10]區間時認為該樣本估計準確[6]。本實驗采用Python語言下的scikitlearn接口的LightGBM回歸模型,在C-Mapps的FD001數據集上進行訓練和測試,對于預處理后的數據集采用貝葉斯算法進行參數優化,獲得修正參數的最優取值,然后使用訓練集中的所有數據對最優參數下的模型進行訓練,最后采用優化后的模型算法對測試集的RUL進行預測,并于真實的RUL值及進行對比和效果評估,試驗結果如圖2所示。

圖2 預測值和真實值對比圖
進一步將筆者所提的方法與其他傳統主流方法的預測效果進行比較分析,筆者所提的Light-GBM方法在MSE、RMSE和Score指標上均取得很好的結果,由于LightGBM在Leaf-wise之上增加了一個最大深度限制,在保證高效率的同時又發揮了防止過擬合的能力。對比XGBoost、SVM、MLP等方法,LightGBM通過直方圖算法、帶深度限制的按葉生長策略等改進,顯著提高了模型訓練速度,結果見表2。

表2 不同算法預測效果對比
綜上所述,LightGBM方法預測值相對于真實值總體偏差較小,并且預測沒有明顯偏向性,在RMSE、Score、MSE指標上取得比較好的結果,顯著優于其他傳統方法,因此筆者所提方法的綜合性能最佳。
針對航空發動機分段線性退化數據集使用時間窗口裝入多變量連續時間戳采樣的數據點,在RUL估計等基于多變量時間序列的問題中,時間窗口內收集起來形成一個高維特征向量并用作網絡的輸入,使LightGBM的預測性能得到大幅提升。通過與其他算法相對比,驗證了筆者所提供的算法在預測指標上效果最佳。