王孝軍,劉德虎
(中國航發四川燃氣渦輪研究院,成都 610500)
航空發動機轉動部件故障通常與振動有關。因此,對發動機振動趨勢進行預測,及早發現潛在問題,對發動機實現安全、可靠的工作尤為重要。對于振動預測,學者們提出了多種方法,主要有:時間序列分析[1-2]、神經網絡[3]、支持向量機[4-5]等方法。時間序列分析方法適用于線性系統的短期預測,對于航空發動機振動趨勢預測這類非線性問題不太適用;神經網絡方法能擬合任意非線性函數并具有一定的泛化能力,但實際運用時訓練樣本的選擇對神經網絡模型的影響較大,且神經網絡容易出現過擬合現象[6];支持向量機方法雖然泛化能力較強,但存在獲取最優參數計算量較大的問題[7]。
為克服單一算法的缺陷,集成算法得到了學者的深入研究。集成算法通過構建多個不同的預測模型,然后根據某種規則組合輸出預測結果,目前理論上已被證明可以獲取良好的學習效果[8-9]。隨機森林(RF)算法是一種典型的集成算法,采用了Random subspace method 和Bootstrap aggregating 兩大隨機思想[10],能較好地避免過擬合現象,且隨機森林算法易于實現,訓練速度快,能有效分析非線性數據,預測精度高。目前,隨機森林算法已在電力負荷預測[11]、交通預測[12]及水文預測[13]等領域得到了廣泛的研究和應用,但針對航空發動機狀態預測方面的研究較少。為此,本文利用某發動機振動測量樣本數據,建立隨機森林算法預測模型,對航空發動機振動趨勢進行預測,旨在為航空發動機振動趨勢預測分析提供新的方法。
隨機森林算法是一種集成算法,通常采用分類回歸樹(CART)作為基元學習器,通過建立許多相互之間沒有關聯的樹,得到一個組合學習模型。最終輸出的預測值對于分類問題采用多數投票法,對于回歸問題則是整個森林預測值取平均值。由于隨機森林算法在構建每棵決策樹時引入袋裝法和特征子空間法兩大隨機策略,使隨機森林算法集成了各決策樹的分類回歸結果,抵消了部分隨機誤差,對異常值和噪聲具有很好的容忍度[14-15],其計算步驟詳見文獻[15]。
隨機森林泛化誤差已經得到證明[16],本文僅作簡單介紹。
給定k 個決策樹集合{h(X,θk),k=1,2,…n},其中θk是相互獨立且同分布的隨機向量,h(X,θk)是未減枝的CART 樹,最終結果由所有樹的投票結果決定。定義隨機函數的泛化誤差:

式中:PX,Y為給定輸入向量X 的分類錯誤率函數,K(X,Y)為隨機森林的邊緣函數。當森林中樹的數目較大時,可以用大數定律得到如下定理。
定理1 隨著樹的數目增加,對于所有隨機變量θ,PE*將收斂于:

式中:Pθ為對于給定序列θ 分類錯誤。
該定理表明隨著樹的數目增加,隨機森林的泛化誤差趨于某一上界,而不會造成過擬合,這是隨機森林的一個重要特點[17]。
定理2 定義隨機森林的泛化誤差上界:

隨著樹的相關性的降低和單棵樹強度的提高,隨機森林的泛化誤差上界將減小,其泛化誤差將得到控制[7]。
試驗數據來自文獻[3],與其原始數據值不完全相等,旨在分析振動參數時間序列預測方法的適用性。振動原始數據為一維時間序列,通過基本的數據預處理后,數據樣本共121個點,樣本數較少。由于隨機森林算法對于小樣本問題的預測不理想,受文獻[19]的啟發,假定正常情況下發動機振動變化趨勢為一漸進變化,提出通過建立等差數列內插值來構造大樣本訓練集。即在原始兩個采樣時刻之間等間隔增加虛擬采樣點,從而擴增訓練樣本集。
為提高預測精度,需對一維振動時間序列進行相空間重構,充分挖掘數據間的關聯關系,以獲取盡可能多的信息。設原始序列X={X1,X2,X3,…Xn},通過重構后的具體形式為:

上式表示前m 個振動參數信息能表達第m+個振動參數的信息。即對發動機當前時間點上振動狀態的預測,主要依據的信息是發動機在之前m 個時間點上的振動趨勢分布信息。
相空間重構時,合理選取嵌入維數m 和時間延遲τ 是關鍵。利用混沌理論中的C-C法可以同時估算出τ 和延遲時間窗口τw,兩個參數間的關系為τw=(m-1) τ[20]。關聯積分C(m,r,t),三個統計量和Scor(t)等參數詳細的定義和計算方法見文獻[20]。按照C-C方法的基本理論,Δ-S(t)的第一個極小值對應于時間延遲,Scor(t)的最小值對應于時間延遲窗口。經計算,時間延遲取5,時間延遲窗口取18,因此嵌入維數m 可以取為5。
隨機森林算法的調節參數主要有決策樹數目ntree和決策樹每次節點分割時隨機選取的特征數量mtry。ntree一般不少于100,要獲得模型最佳性能需要進行調試獲取最優ntree。查找最佳分割點時,選取的特征數量對模型有一定的影響。根據文獻[21],原始數據特征數目為M,回歸計算時建議取值為sqrt(M)。以OOB 誤差最小為訓練目標,通過計算得到最優的ntree。
其他參數設為默認值,僅ntree變化時,OOB誤差與決策樹數目的關系如圖1 所示。可看出,OOB 誤差隨著樹的增多逐漸減少,并趨于穩定,在一個小區間范圍內波動。經計算,ntree取340 時OOB 誤差達到最小。ntree選定340,其他參數設為默認值,僅mtry變化時,在測試集樣本的預測得分與特征參數量的關系如圖2所示。可看出,mtry取2時模型預測性能最好。

圖1 決策樹數目與袋外數據誤差的關系Fig.1 Relationship between ntree and OOB error

圖2 測試集樣本預測得分與特征數量的關系Fig.2 Relationship between mtry and prediction score
運用隨機森林算法進行回歸計算時對模型預測精度的評估,本文考慮均方誤差(MSE)、平均絕對誤差(MAE)以及預測性能得分(Tscore)。MSE 和MAE越小,Tscore越大,說明模型精度越高,預測效果越好。各評價指標計算公式如下:

式中:Ttest為測試集,yi為真實值,為預測值,為真實值的均值。
運用上述討論得到的隨機森林算法預測模型,對發動機振動時間序列進行預測。將數據樣本的90%用作訓練樣本,剩余的10%作為測試樣本。預測結果見圖3,測試集預測結果見表1,訓練樣本和測試樣本的三個模型性能評估指標得分見表2。由預測結果可知,隨機森林算法預測精度較高,泛化能力較強,很好地預測了發動機振動的變化趨勢。

圖3 隨機森林算法模型預測結果與真實值的對比Fig.3 Comparison between actual and predicted value by random forest algorithm model
為對比分析隨機森林算法模型性能,用相同數據樣本建立支持向量機(SVM)預測模型。支持向量機模型核函數采用高斯函數,通過網格搜索尋優的方法獲得模型最優的懲罰系數C、核參數γ、回歸參數ε,支持向量機模型與隨機森林算法模型預測結果的對比分別見表3和圖4。從預測結果可知,兩種模型均取得了滿意的預測結果,在測試集上隨機森林算法模型預測得分0.997,而支持向量機模型得分為0.987,說明隨機森林算法的預測精度更高,泛化能力更強。另外,在訓練時間上,支持向量機參數尋優步驟導致模型訓練花費時間較長,整個參數優化過程時間比隨機森林算法的多幾倍。綜合對比在模型設計及參數調試中的體驗,隨機森林算法模型綜合能力更優異,操作更簡單,更適合解決實際發動機振動預測問題。

表1 測試集上預測值與真實值的對比Table 1 Comparison between actual value and prediction value during test data

表2 隨機森林算法模型評估指標分析Table 2 Analysis of evaluation index of random forest algorithm model

表3 兩種模型預測結果對比Table 3 Comparison of the prediction results of two models

圖4 兩種模型預測結果Fig.4 Prediction results of two models
針對航空發動機振動趨勢預測,構建了基于隨機森林算法的振動預測模型,并應用發動機振動試數據驗證了模型的適用性。結果表明,隨機森林算法模型精度高、泛化能力強,能有效預測發動機振動趨勢。此外,隨機森林算法模型不需要進行數據歸一化預處理,以及交叉驗證等步驟,具有操作簡單、調參容易、訓練時間短等特點,尤其適用于大樣本的發動機趨勢預測分析。