崔建國, 李國慶, 蔣麗英, 于明月, 王景霖
(1.沈陽航空航天大學自動化學院 沈陽,110136)(2.故障診斷與健康管理技術航空科技重點實驗室 上海,201601)
航空發動機屬于典型的故障易發系統,其健康狀態會對飛行器飛行安全產生嚴重影響[1]。由于復雜的內部結構和多變的外部工作環境,航空發動機采集的監測數據具有非線性和高維特性等特征,很難被傳統的故障診斷技術準確有效挖掘和識別。深度學習的不斷發展為故障診斷技術提供了新的解決方案。深度學習網絡是通過構建多層神經網絡,逐層學習和提取數據特征,最終實現對數據復雜特征信息的挖掘。目前,深度學習理論已成功應用于圖像識別和語音處理等領域[2-3]。基于此,筆者提出了采用深度自編碼網絡(deep autoencoder network,簡稱DAEN)對航空發動機進行故障診斷的方法。
深度自編碼網絡是由多層自編碼器依次連接而成的深層神經網絡,依據深度自編碼網絡的結構特點,將其訓練過程分為2 個階段:①采用無標簽的數據樣本集對深度自編碼網絡參數的初始值進行預先訓練;②采用有標簽的數據樣本集對該網絡進行再訓練,以實現網絡參數的微量調整。
深度自編碼網絡的預訓練實質上是初始化網絡中連接權值和偏置向量等參數,通過自監督特征優化算法對各層自編碼器進行訓練,最終確定層與層之間連接權值的初始值和各層神經元的偏置初始值。作為深度自編碼網絡的基本組成部分,自動編碼器是一種自監督神經網絡,主要由輸入層、隱藏層和輸出層組成,其中輸出層的標簽設置為近似等于輸入值。因此,只要確定輸入層和網絡隱藏層的結構參數,就可以確定自編碼神經網絡。自編碼器基本結構如圖1 所示。其中:“+1”為網絡的偏置節點;W為由網絡輸入層與隱含層之間的權系數構成的矩陣;為由網絡隱含層與輸出層之間的權系數構成的矩陣。
根據自編碼器的運算過程,一個自編碼器可分為2 部分:編碼和解碼。編碼是指由輸入層的輸入數據得到隱含層輸出的計算過程。解碼是指由隱含層輸出得到輸出層輸出的計算過程。如圖1 所示,給定數據樣本集X=(x1,x2…,xN)(其中:N為樣本數),設編碼函數為f,則編碼實現從輸入層到隱含層的非線性變換,編碼過程[4-5]可表示為

圖1 自編碼器基本結構Fig.1 Self-encoder basic structure

其中:h為網絡隱含層的輸出向量;x為網絡輸入層的輸入向量;θ= {W,b},b為網絡輸入層與隱含層之間的偏置向量。
設g為解碼函數,則解碼為隱含層與輸出層之間的映射關系,解碼過程可表示為

編碼函數和解碼函數可以選用sigmoid 函數或hyperbolic tangent 函數等,本研究方法使用sigmoid函數。在自編碼器訓練過程中,應使得自動編碼器的輸出值近似等于網絡的輸入值x。自編碼器的均方誤差函數[6]為

其中:J(θ)為均方誤差;N為樣本數。
筆者在重構誤差時采用交叉熵損失函數,重構誤差函數公式[7]為

針對于數據集X,損失函數可表示為

其中:xi為網絡的第i組輸入向量為網絡的第i組輸出向量;θ為由網絡的連接權系數和偏置向量等參數構成的數據集合。
采用不同的方法對自編碼器的算法進行改進,得到不同的自編碼器模型,例如:稀疏自編碼器(sparse autoencoder,簡稱SAE)、去噪自編碼器、收縮自編碼器等[8-11]。由于航空發動機監測信息的數據特點,筆者采用稀疏自編碼器作為深度自編碼網絡的主體結構。
稀疏自編碼器采用稀疏自編碼算法,該算法通過增加稀疏正則化約束,消除隱含層中影響較小的部分,從而依靠限制隱含層神經元的激活狀態,提取數據的潛在特征[12-13]。相較于一般的自編碼器算法,稀疏自編碼算法在式(5)的基礎上增加了稀疏懲罰項。總的損失函數表達式[14]為

其中:β為稀疏懲罰因子權系數;ρ為稀疏性系數;ρ?表示自編碼網絡的隱含層對輸入層輸入數據的平均活躍度;為網絡的第i組輸入向量對隱含層第j個神經元的激活度;KL為稀疏自編碼算法中的稀疏性懲罰項,表示ρ?和ρ的KL 距離,即相對熵。
對單層自編碼器進行預先訓練時,采用隨機梯度下降的方法計算參數值,而對深度自編碼網絡進行預先訓練時,采用逐層貪婪的訓練方法。一個自編碼器預先訓練完成后,將其隱含層的輸出數據作為網絡連接的下一層自編碼器的輸入數據,再預先訓練下一層自編碼器。如此進行下去,直至最后一層的自編碼器預先訓練完成。至此,整個深度自編碼網絡的預先訓練過程結束。
由網絡的預訓練過程可知,各層自編碼器參數的訓練依次進行,最終得到深度自編碼網絡的初始參數。為了用于診斷且得到更好的診斷結果,需要對深度自編碼網絡參數進行進一步調整,即網絡微調。采用含有標簽的訓練數據樣本集,賦給整個網絡的輸入層和輸出層,根據反向傳播神經網絡(back propagation neural network,簡稱BP)的反向傳播功能,可以實現對整個網絡所有參數在細節上進行微調,從而得到全局最優解,達到深度學習的最佳效果。相較于直接在隨機初始參數上使用BP算法進行訓練,在網絡預訓練完成之后,對其進行微調會有更好的效果,因為前者容易陷入局部最優[15]。
基于深度自編碼的航空發動機故障診斷方案如圖2 所示。

圖2 基于深度自編碼的航空發動機故障診斷方案Fig.2 Aero engine fault diagnosis scheme based on deep self-encoding
依據深度自編碼網絡的診斷思想,筆者創建了基于深度自編碼網絡的航空發動機故障診斷模型,如圖3 所示。該模型包含一個輸入數據的輸入層、k個挖掘數據特征的隱含層和一個輸出診斷結果的輸出層。其中:輸入層和k個隱含層共同組成k層稀疏自編碼器;輸出層和第k個隱含層組成分類層。分類層將數據提取后,信息轉換為故障診斷的結果,常用的分類器有logistic 分類器、SVM 分類器和Softmax 分類器等。筆者選用Softmax 分類器。
診斷時,輸入層的神經元個數為輸入樣本的參數個數,隱含層的層數和各隱含層的神經元個數通過不斷試驗調整得到,輸出層的神經元個數可根據故障的類別進行設置。

圖3 基于深度自編碼網絡的故障診斷模型Fig.3 Fault diagnosis model based on deep self-coding network
基于深度自編碼網絡的故障診斷步驟如下:
1)根據航空發動機采集的監測數據(原始數據)構造數據樣本集,對構造好的樣本集進行標準化處理;
2)選取適當的隱含層層數及隱含層神經元個數,建立深度自編碼神經網絡的初始模型;
3)使用無標簽的訓練數據樣本集對構造好的深度自編碼神經網絡進行自監督訓練,從而確定各層自編碼模塊的參數初始值;
4)采用含有標簽的訓練數據樣本集對輸出層和整個網絡進行訓練,即微調,最終確定基于深度自編網絡的航空發動機故障診斷模型;
5)利用測試數據樣本集對基于深度自編碼網絡的航空發動機故障診斷模型進行測試,并對測試結果進行分析。
筆者使用某型航空發動機采集的監測數據,通過該型號發動機的理論學習對眾多監測參數進行分析,選取能夠較好反應發動機狀態的參數作為故障診斷模型輸入項的輸入。例如:滑油壓差、滑油回油溫度、高壓轉子轉速、油門桿位置、低壓轉子轉速以及渦輪落壓比等30 個參數。根據選擇的數據,將航空發動機劃分為健康和故障2 種工作狀態,用標簽“[10]”表示健康狀態,標簽“[01]”表示故障狀態。筆者在網絡模型的預訓練階段采用無標簽數據,其中包含正常數據和故障類或近似故障類數據;網絡微調階段采用少量的含有標簽的數據。
在建立故障診斷模型時,網絡預訓練階段分別選取無標簽的數據樣本200,400 和800 組,其中健康數據和故障數據比例均為4∶1。網絡微調階段采用含標簽數據樣本200 組,其中,健康數據樣本150組,故障數據樣本50 組。在模型測試時,選取含標簽數據樣本100 組,其中,健康數據樣本和故障數據樣本各50 組。
根據多次試驗的結果,筆者設計了隱含層為2層的深度自編碼網絡。各隱含層中的神經元個數均設為100,最大迭代次數設定為400,學習速率設為0.01,稀疏性參數為0.1,權重衰減系數為0.002,稀疏懲罰項權重為3。本研究方法中,網絡的輸出層選擇了Softmax 分類器,其輸出結果為不同條件下的概率值[16],即輸出層神經元的輸出值范圍為[0,1],且和等于1。通過輸出層不同神經元輸出值之間的比較,將輸出值最大的神經元節點記為1,其余記為0。
為了討論深度自編碼網絡預訓練過程中,無標簽訓練數據樣本集的大小對診斷準確率的影響,筆者選用不同組數的無標簽訓練數據樣本集對網絡進行預訓練,每組數據樣本集做10 次試驗。不同試驗次數下模型診斷準確率如圖4 所示。

圖4 不同試驗次數下模型診斷準確率Fig.4 Diagnosis accuracy rate of fault diagnosis model with different test times
根據10 次試驗結果求取航空發動機故障診斷的平均診斷準確率,表1 為不同預訓練集的故障診斷結果。可見,網絡預訓練過程對航空發動機故障診斷的診斷準確率有一定的影響,且隨著網絡預訓練過程中無標簽數據樣本集的增加,其發動機故障診斷的準確率也會不斷增大。

表1 不同預訓練集的故障診斷結果Tab.1 Fault diagnosis results of different pre-training sets
為了驗證所設計的模型故障診斷效果,筆者在使用相同數據集的前提下,分別采用了BP、廣義回歸神經網絡(general regression neural network,簡稱GRNN)、徑向基神經網絡(radial basis function,簡稱RBF)和最小二乘支持向量機(least squares support vector machine,簡稱LSSVM)故障診斷方法,對航空發動機進行了故障診斷技術研究。不同方法的故障診斷結果如表2 所示。

表2 不同方法的故障診斷結果Tab.2 Fault diagnosis results of different methods
由于筆者所提出的方法是在預訓練的基礎上對參數進行了進一步微調,可以更加有效地提取和學習數據樣本的信息特征,進而克服局部收斂和梯度消失等問題,因此與傳統的故障診斷方法相比,所提出的方法可以較好地提高發動機的故障診斷準確率。由表2 可知,相較于其他常用的故障診斷方法,所提出方法具有更好的診斷效果。
筆者將深度學習的優勢應用于航空發動機的故障診斷領域,創建了基于深度自編碼神經網絡的航空發動機故障診斷模型。研究表明,預訓練深度自編碼神經網絡對于網絡模型的創建十分重要,采用增加預訓練樣本集的容量,可以得到精準的發動機故障診斷模型。筆者提出的基于深度自編碼網絡的航空發動機故障診斷方法較其他神經網絡故障診斷方法具有較高的準確性,在航空發動機故障診斷領域具有較高的應用和推廣價值。