王欣, 孟天宇, 周俊曦
(中國民用航空飛行學院計算機學院, 廣漢 618307)
隨著航空運輸量的日益大幅增加,高復雜度和高精密度的航空發動機作為飛機的核心運行部件,其性能退化是影響飛行安全的顯著因素,對航空發動機剩余壽命進行準確的預測是預防性維護的關鍵技術之一,也是提高航空安全、促進航空業發展十分重要的一項研究。傳統的針對航空發動機的維護要么是被動的在航空發動機出現故障后修理或更換損壞的部件,要么是不考慮實際情況盲目的對航空發動機進行定期的維護或更換,這兩種方法的安全系數較低且維護成本也相對較大,在實際應用中也得不到較好的效果[1]。
近年來,預測與健康管理(prognosis and health management, PHM)相關技術在航空領域得到了廣泛應用,其中一項重要的技術便是故障預測[2]。實時并準確地預測航空發動機的剩余壽命,及早做出相應的決策,可以極大地降低災難發生的概率,降低維修成本[3]。傳統的基于經驗的預測方法存在較大的局限性,目前針對設備剩余壽命(remaining useful life, RUL)的預測估計主要是通過數據驅動的方法,傳統的基于數據驅動的預測有兩種方法[4]:一種是使用統計方法,以概率的方式確定RUL;一種是使用以人工神經網絡(artificial neural network, ANN)、支持向量機(support vector machines, SVM)等機器學習相關技術進行RUL的預測。
傳統的基于數據驅動的預測方法在處理一些簡單系統預測問題上取得了一定的成績,但在一些復雜系統的較長時間序列的預測問題處理上,難以達到足夠的精確度,無法得出準確的預測結果,不能滿足預測需求。
隨著機器學習和深度學習的快速發展和廣泛應用,中外學者針航空渦扇發動機RUL預測問題提出了各種不同的方法。
Babu等[5]嘗試使用卷積神經網絡(convolutional neural network, CNN)來進行RUL的預測估計,使用滑動時間窗口對原始數據進行特征增強,使得CNN可以更充分地進行特征學習提取,采用與計算機視覺CNN結構并不相同的結構,在多通道傳感器數據上沿時間維度應用卷積和池化濾波器,以系統的方式從原始傳感器信號中自動學習特征,提出一種基于卷積神經網絡的回歸方法來預測RUL。
Razo[6]通過使用滑動時間窗口來幫助進行數據預處理,使用差分進化算法進行模型超參數的調優,提出一種主要關注數據預處理階段的機械系統剩余壽命預測的框架,即使是簡單的深度學習模型也可以做出良好的預測,并使用多層感知機(multilayer perceptron, MLP)進行驗證。
Yu等[4]利用深度學習工具和基于相似性的曲線匹配技術來估計系統的RUL,首先使用雙向長短期記憶網絡(bi-directional long short-term memory, Bi-LSTM)進行無監督訓練,將原始高維數據轉換為低維數據,用于構造一維健康指數值來反映其健康退化模式。之后利用相似性曲線匹配技術對健康指數值曲線進行匹配,進而實現航空發動機RUL的預測。
賴儒杰等[7]首先使用改進后的指數平滑方法對原始數據進行降噪處理,之后引入時間滑動窗口對原始數據進行特征增強,最后利用XGBoost進行數據回歸預測。提出一種基于指數平滑和XGBoost的航空發動機RUL預測方法。
王旭等[8]通過使用CNN與自編碼器相結合的卷積自編碼器(convolutional auto-encoders, CAE)構建航空發動機健康因子(health indicator, HI),以其HI值反映健康狀況,構建健康狀況評估模型。再通過LSTM建立HI與剩余壽命的特征關系,間接實現RUL的預測。提出基于CAE與LSTM的航空發動機RUL預測方法。
數據驅動下的深度學習方法相比較于傳統方法精確度有了很大提升,循環神經網絡(recurrent neural network, RNN)在各領域的廣泛應用,尤其是對時間序列問題處理上取得了不錯的效果。提出一種基于注意力與長短期記憶網絡(long short-term memory, LSTM)的航空渦扇發動機RUL預測方法,注意力機制的引入,可以使神經網絡可以更好地學習樣本特征,在模型參數調優部分進行大量實驗,進一步提升模型RUL預測準確度。
RNN是一種特殊的神經網絡,相比較于ANN,RNN中允許出現環形結構,使得網絡在某一時刻的輸出狀態不僅與當前時刻的輸入有關,還與上一時刻的網絡狀態有關,因此更適合處理序列數據[9]。但傳統RNN只存在短期記憶,在長序列上則存在著長期依賴問題,反向傳播更新參數的過程中會出現梯度消失和梯度爆炸的問題[8]。
為了解決這一問題,Hochreiter等[10]提出了一種RNN的變體結構——LSTM神經網絡,并有許多學者進行了改進和普及,比起傳統的RNN,更容易學習長期依賴,被廣泛用于自然語言處理、機器翻譯等領域。LSTM神經網絡引入了自循環的思想來讓梯度持續流動,并不是簡單的對數據進行參數矩陣的放射變換后再連接非線性激活函數,并且自循環的權重可以由網絡根據序列上下文自動確定,而不是固定的。


圖1 LSTM細胞塊內部結構Fig.1 Internal structure of LSTM cell block

ft=σ(bf+Ufxt+Wfht-1)
(1)
gt=σ(bg+Ugxt+Wght-1)
(2)
(3)
(4)
qt=σ(bq+Uqxt+Wqht-1)
(5)
ht=qttanh(st)
(6)
式中:σ(·)代表sigmoid激活函數;Uf、Ug、U、Uq分別為遺忘門、輸入門、單元狀態和輸出門的輸入權重;Wf、Wg、W、Wq分別為各個門控單元的循環權重;bf、bg、b、bq分別為各個門控單元的偏置。
注意力機制(attention mechanism)起源于認知科學中對人類視覺的研究,由于信息處理的瓶頸,人類會有所選擇的著重關注自己想要關注的那一部分信息,忽略其他可見信息。運用到神經網絡中,就是讓神經網絡在做特定事情的時候可以注意到它需要注意的地方[13]。
注意力機制被廣泛使用在自然語言處理、語音識別及圖像識別等各種不同的深度學習任務中,在圖像處理或文本處理中,可以利用神經網絡找到輸入進來的特征,哪一部分對結果影響更大,通過增加該部分權重的方式來提高其影響力。在時間序列數據處理中,可以考慮輸入進來的某個時間點的數據對結果影響較大,通過增加該時間點的權重使得結果進一步精確。
注意力機制可以分為軟注意力機制和硬注意力機制兩種,硬注意力機制只關注到輸入的某一個位置,而忽略掉其他所有信息。通常硬注意力機制有兩種實現方式,一種是直接選擇注意力最高的那個向量。一種是根據注意力分布來進行概率采樣,來得到需要關注的位置。軟注意力機制則是通過獲取“上下文”的“軟性”信息來進行選擇,即通過神經網絡訓練出各通道或維度的權值,而后再各通道或維度加權全局輸入特征,原有特征向量則是結合了上下文信息的特征向量,從而達到關注特定通道或維度的目的。軟注意力機制與硬注意力機制相比,硬注意力機制由于在選擇輸入特征時運用了一個不可導函數,使得網絡不能實現端到端的訓練,無法使用反向傳播算法,再加上針對時間序列數據,往往有一些信息是不能直接去除的,所以通過使用軟注意力機制來為時間序列的每個時間點進行逐個加權,關注到特定的時間點,以實現時間序列的特征增強[14]。
對航空發動機的剩余壽命預測是一個典型的時間序列處理問題,標準的LSTM的記憶功能雖然可以保存長期的狀態,但是對于像發動機傳感器數據這樣多維度的數據不能很好地進行處理,一定程度上喪失了數據的一些重要的時序信息,影響模型預測精度。
本文中在標準LSTM神經網絡的基礎上引入了注意力機制,通過注意力機制對每個時間點的數據進行特征加權,突出其關鍵的時間點。提出的Attention-LSTM模型主要分為LSTM模塊和Attention模塊兩部分,模型結構如圖2所示,LSTM模塊負責進行輸入數據的特征學習,Attention模塊負責進行特征權重的計算及加權。把預處理好的數據送入到LSTM模塊中進行訓練,首先通過一層LSTM層進行特征放縮,之后使用BatchNormalization層來對其輸出進行歸一化處理,結合Dropout層對網絡神經元進行隨機丟棄,防止網絡訓練過擬合,再送入一層LSTM層中進行特征學習。之后獲得一個維度為(batch_size, time_steps, lstm_units)的輸出。可以把其當做每個時間點的特征,而后送入注意力模塊,LSTM模塊的輸出經過Permute層將2、1軸反轉后維度變換為(batch_size, lstm_units, time_steps),再經過一個全連接層和softmax計算每個time_step的權重,最后通過Permute層將維度轉換為(batch_size, time_steps, lstm_units),此時注意力模塊的輸出中的time_steps代表每個time_step的權重,再與一開始LSTM模塊的輸出相乘,進行全局的時間點特征加權。得到具有權重的特征組合后進行展開,最后送入到全連接層進行預測。

圖2 Attention-LSTM模型結構Fig.2 Attention-LSTM model structure
對于本文中提出的Attention-LSTM模型,選取3個性能度量指標,具體定義如下。
(1)均方根誤差(root mean square error, RMSE)是評價回歸預測模型常用的性能指標,表示預測值與真實值之間偏差的平方和預測樣本數量比值的平方,同來衡量預測值與真實值之間的偏差,數值越小表示預測值與真實值之間的偏差越小,說明預測模型描述實驗數據具有更好的精確度。RMSE的計算公式為
(7)

(2)確定性相關系數(R2),將預測值同只使用均值的情況下比,看能好多少,其取值通常在(0,1)之間,表示模型的擬合優度,計算出的數值越逼近于1表示模型擬合程度越好。R2的計算公式為
(8)
(3)對于航空發動機壽命預測問題,存在預測出的剩余壽命比實際剩余壽命短的低估情況和預測出剩余壽命比實際剩余壽命長的高估情況這兩種情況,使用RMSE進行評估的話對這兩種情況有著同等的懲罰。但在實際應用上,低估情況起到了提前預警的作用,可以減少因發動機損壞帶來的生命威脅,所以提出評分指標score,該評分指標函數對于預測值大于真實值的高估情況的懲罰遠大于預測值小于真實值的低估情況,更符合實際應用,可以更好地對模型預測效果進行評估[15],其表達式為
(9)
本次實驗使用NASA提供的航空渦輪發動機公開數據集C-MAPSS數據集,數據集一共包括FD001、FD002、FD003、FD004 4個部分,其中FD001包括了100個渦輪發動機在一種環境及一種失效情況下從開始到失效的完整記錄[16]。其余3個數據集包括多工作環境多失效情況的數據,本次實驗僅針對FD001數據集進行實驗。
FD001數據集包含trian、test、RUL 3個文本文件,其中訓練集train文件中為100臺發動機從開始運行到失效的完整記錄,以運行周期為運行時間和剩余壽命標準,共20 631條記錄,每一條記錄包含發動機的編號,當前運行的周期數,3個發動機的設置值,以及21個發動機傳感器值。測試集test文件中包含了隨機抽取的100個發動機運行記錄的一段記錄,并不是從開始運行到失效的完整記錄,共13 096條記錄。RUL文件中包含了test文件中100臺發動機最后一條記錄對應的真實剩余壽命[6,17]。
本次實驗CPU使用Intel Xeon E-2276G,內存32 G,GPU使用Nvdia GeForce RTX 2080,在Tensorflow 2.0+Python3.8+Win10環境下進行。
3.2.1 發動機剩余壽命的計算
對數據集進行RUL標簽的計算,首先是對訓練集剩余壽命的計算,公式為
RUL,train=cycle,max-cycle,now
(10)
式(10)中:cycle,max為訓練集中每臺發動機對應的最大運行周期數;cycle,now為每條記錄對應的當前運行周期數。
對測試集剩余壽命的計算,公式為
RUL,test=RUL+cycle,max-cycle,now
(11)
式(11)中:RUL為RUL文件中記錄的發動機真實剩余壽命;cycle,max為訓練集test文件中每臺發動機記錄的最大運行周期數,cycle,now為每條記錄對應的當前運行周期數。計算的剩余壽命RUL即為每條記錄所對應的預測標簽。 通過上述計算方式得到訓練集中發動機運行周期最長為362 cycle,最短為128 cycle,均值為217 cycle;測試集中發動機運行周期最長為341 cycle,最短為141 cycle,均值為218 cycle。
對設備剩余壽命的預測是一個相對復雜的問題,在實際應用中很難直接依靠設備當前的運行和使用情況準確的預測設備剩余壽命。考慮到航空發動機長期運行所產生的數據為較長的時間序列,且發動機前期運行性能較為穩定,性能退化不明顯,由于運行時硬件磨損老化等各種因素,發動機的剩余壽命隨著使用時間的增多而減少。所以采用如圖3所示[18]的分段線性退化方式來擬合使用時間與發動機剩余壽命之間的關系,以發動機持續工作的周期數作為剩余壽命,發動機運行前期設置固定的最大壽命值作為發動機退化的閾值。

圖3 分段線性退化示意圖Fig.3 Schematic diagram of segmented linear degradation
3.2.2 數據歸一化
數據的不同特征往往具有不同的量綱和量綱單位,在不進行處理的情況下,會影響到對數據分析的結果,為了消除特征之間的量綱影響,通常需要對數據進行標準化(歸一化)處理,將不同數據放縮到同一量綱數量級以方便進行綜合對比評價。通常有兩種對數據歸一化的方法,一種是min-max標準化,一種是Z-Score標準化方法,在本次實驗中,選用min-max標準化對數據進行歸一化處理。
(12)
通過數據歸一化操作,把原始數據的特征值映射到[0,1]間,以消除因特征之間量綱不同的問題帶來的誤差。如圖4所示,圖4(a)為訓練集中1號發動機中傳感器3與傳感器4數據進行歸一化前的分布曲線,圖4(b)為進行數據歸一化后的分布曲線。

圖4 不同傳感器數據歸一化前后對比Fig.4 Comparison of different sensor data before and after normalization
3.2.3 時間滑動窗口
在很多領域,時間序列數據都是一種十分重要且常見的數據對象。由于時間序列所具有的高維度、時序性等特征,直接對原始數據進行訓練來實現回歸預測等操作會忽略掉時間序列的前后時序性,不僅在計算效率上性能低下,還會影響算法的準確性和可靠性,無法得到滿意的結果[19-20]。
在處理時間序列的問題上,當前存在眾多處理方法,針對航空發動機剩余壽命預測問題,采用定長滑動窗口對原始數據進行切割劃分,使用劃分得到的子序列所組成的多組數據進行訓練預測,可以有效地增強時間序列數據的數據特征,提高算法準確性。算法具體實現步驟如下。
(1)根據時間序列的特點,選取時間長度為L的時間窗口以及滑動步長S。
(2)在原始數據上沿時間維度方向從初始時間點開始按指定的滑動窗口大小截取L條原始數據為第一條滑動窗口數據。
(3)沿時間維度方向按指定的滑動步長S向前移動滑動窗口,得到下一條滑動窗口數據。
(4)重復步驟(3),直到滑動窗口末端到達原始數據最后一條,得到N個大小為L×M的等規模滑動窗口數據。
如圖5所示,任取同一發動機的4個不同傳感器數值作為原始數據,滑動窗口以固定大小沿時間維度方向向前滑動。

圖5 滑動時間窗口Fig.5 Sliding time window
利用滑動時間窗口,對歸一化處理后的訓練集和測試集進行重新劃分,取每個窗口下一條數據的標簽作為各自窗口數據的標簽,測試集只取最后一個窗口數據用作測試。
將預處理完畢的數據集送入Attention-LSTM模型中進行訓練,模型在訓練時選擇使用Adam優化器作為模型的優化器函數。Adam是一種參數自適應學習率的方法,結合RMSprop和AdaGrad兩種優化算法的優點,利用梯度的一階矩陣估計和二階矩陣估計動態調整每個參數的學習率,相比較于傳統的隨機梯度下降(stochastic gradient descent, SGD)等優化算法有許多顯著的優點,在很多情況下算作默認工作性能比較優秀的優化器。本文中使用Adam優化器默認參數進行訓練,模型及數據集相關參數如表1所示,模型評估結果如表2所示。

表1 模型初始參數Table 1 Model initial parameters

表2 模型評估結果Table 2 Model evaluation results
針對發動機線性退化的問題,對RUL標簽的處理上,考慮實際情況,認為將發動機退化閾值設置在120 ~130 cycle比較符合實際情況,大部分學者在進行實驗時也是選擇的在此區間進行取值[5-7,17,21-25]。在固定其他參數的情況下,選用不同初始值進行對比實驗,以均方根誤差為標準,取五次實驗的中間值。實驗結果如表3所示,可以直觀地看到對原始數據集進行退化閾值的設置可以大大提高模型的擬合度,在合理的區間內,退化閾值設置越小擬合度越高,將退化閾值設置為120 cycle時模型可以更好地進行擬合預測,故本文后續實驗設置退化閾值大小為120 cycle,對數據集中RUL標簽大于120 cycle的進行修改為120 cycle。

表3 不同初始RUL對比結果Table 3 Comparison results of different initial RUL
不同大小的時間窗口會使得數據集發生量的變化,進而影響到模型訓練的結果。在滑動時間窗口大小的選擇上,有學者使用滑動時間窗口大小為10 cycle[4]、30 cycle[5-7,21-25]或50 cycle,對不同滑動時間窗口大小進行實驗,取五次實驗的中間值。測試結果如表4所示,當滑動時間窗口大小設置為40時模型擬合度最高。舍去測試集中記錄數不夠40個cycle的數據,重新劃分后的數據集大小如表5所示。

表4 不同滑動窗口大小對比結果Table 4 Comparison results of different sliding window sizes

表5 重新劃分后數據集大小Table 5 Size of data set after repartitioning
各層LSTM 單元數量的不同會影響LSTM網絡學習的精準度,對設置的兩層LSTM網絡取8、 16、 32、 64、 128進行交叉實驗驗證。各層單元個數對比部分測試結果如表6所示,經過實驗發現,對初始LSTM層單元數設置為128,第二層單元數設置為32,可以使網絡能夠充分的學習,進一步提升模型擬合精度。

表6 不同LSTM 單元個數對比部分結果Table 6 Partial results of the comparison of the number of different LSTM units
盡管Adam優化器在默認參數情況下已經可以取得很好的結果,考慮引入學習率衰減對其進行進一步優化,并對Adam默認初始學習率和學習率衰減閾值patience進行更改。實驗結果如表7所示,當更改Adam優化器默認學習率(learning rate, LR)由0.001調大至0.01時,設置模型連續2個迭代(epochs)的驗證集損失(val_loss)沒有提升就對學習率進行衰減,學習率衰減會進一步優化模型。

表7 不同學習率及學習率衰減閾值對比結果Table 7 Comparison results of different learning rates and reduce learning rate patience
在對Adam優化器學習率調優結束后,引入EarlyStopping以防止模型過擬合及減少訓練時間,并對其早停閾值patience進行對比實驗,因為學習率衰減設置的是連續2個epochs沒有提升就對學習率進行衰減,為了防止學習率衰減失效,所以應對EarlyStopping patience參數設置為大于2的數值,同時將epochs上限調整至100。實驗結果如表8所示,當設置網絡訓練時val_loss連續7個epochs沒有降低時提前停止訓練,學習率衰退和EarlyStopping協同作用,使得網絡擬合度進一步提升。

表8 不同早停閾值對比結果Table 8 Comparison results of different Early Stopping patience
對模型訓練時的批處理大小(batch_size)進行調優,選取不同的batch_size進行測試對比,取5次實驗的中間值。實驗結果如表9所示,batch_size設置為32時,模型訓練的擬合度最優。

表9 不同批處理大小對比結果Table 9 Different batch_size comparison results
進一步對模型進行優化,在網絡中兩層LSTM層之間加入BatchNormalization(BN)層和dropout層來對網絡隱層進行歸一化處理,并對Dropout層的留存率進行調優選擇,進一步防止模型過擬合,提高模型精度。實驗結果如表10所示,BN層和Dropout層的引入可以在一定程度上提升模型的擬合度,設置留存率為0.5時擬合最優。

表10 不同留存率對比結果Table 10 Comparison results of different retention rates
經過上述實驗,得到最優模型的相關參數如表11所示,最終評估結果如表12所示,模型的預測擬合度得到了明顯的提升,score也隨著優化趨于穩定,模型訓練集loss、驗證集loss以及學習率變化如圖6所示,預測值與真實值對比如圖7所示,各時間點平均注意力權重如圖8所示,可以看到網絡更加注重時間序列兩端的數據。

圖6 Loss及LR變化曲線Fig.6 Loss and LR change curve

圖7 模型預測值與真實值對比Fig.7 Comparison of model predictions and true values

表11 模型最終參數Table 11 Model final parameters

表12 模型最終評估結果Table 12 Final model evaluation results
為了證明模型的準確度,在對數據集進行相同處理且采用相同優化訓練方法的情況下,將實驗結果與多層感知機(multi-layer perception, MLP),卷積神經網絡(CNN),雙向LSTM網絡(Bi-LSTM),未引入注意力機制的LSTM網絡,門控循環單元(gated recurrent unit, GRU)網絡這些主流模型的預測結果進行對比,實驗結果如表13所示,提出的Attention-LSTM模型相比較于未增加注意力機制的LSTM網絡,均方根誤差降低了17.8%,擬合度提升了3.2%,懲罰分數score降低了50.9%。與卷積神經網絡相比,均方根誤差降低了28.6%,擬合度提升了6.4%,懲罰分數score降低了71.2%。

表13 不同模型評估結果對比Table 13 Comparison of evaluation results of different models
LSTM之類的循環神經網絡相比較于多層感知機和卷積神經網絡要更擅長處理類似發動機傳感器數據的時間序列數據,結合滑動時間窗口和注意力機制可以進一步對時間序列數據處理問題起到提升作用。提出的Attention-LSTM模型在提高了模型預測的擬合度之外,大大降低了模型預測的高估情況,可以一定程度的降低實際應用中因發動機損壞導致的事故發生率。目前還有可提升的空間,可以結合其他如卷積神經網絡等加強對時間特征的學習,引入一些遺傳優化算法進行模型的進一步優化。在注意力機制上目前只考慮了對時間維度的特征加權,可以結合特征維度的注意力機制進行多尺度的特征加權,進一步提升模型精準度。