崔建國(guó), 李國(guó)慶, 蔣麗英, 于明月, 王景霖
(1.沈陽(yáng)航空航天大學(xué)自動(dòng)化學(xué)院 沈陽(yáng),110136)(2.故障診斷與健康管理技術(shù)航空科技重點(diǎn)實(shí)驗(yàn)室 上海,201601)
航空發(fā)動(dòng)機(jī)屬于典型的故障易發(fā)系統(tǒng),其健康狀態(tài)會(huì)對(duì)飛行器飛行安全產(chǎn)生嚴(yán)重影響[1]。由于復(fù)雜的內(nèi)部結(jié)構(gòu)和多變的外部工作環(huán)境,航空發(fā)動(dòng)機(jī)采集的監(jiān)測(cè)數(shù)據(jù)具有非線性和高維特性等特征,很難被傳統(tǒng)的故障診斷技術(shù)準(zhǔn)確有效挖掘和識(shí)別。深度學(xué)習(xí)的不斷發(fā)展為故障診斷技術(shù)提供了新的解決方案。深度學(xué)習(xí)網(wǎng)絡(luò)是通過(guò)構(gòu)建多層神經(jīng)網(wǎng)絡(luò),逐層學(xué)習(xí)和提取數(shù)據(jù)特征,最終實(shí)現(xiàn)對(duì)數(shù)據(jù)復(fù)雜特征信息的挖掘。目前,深度學(xué)習(xí)理論已成功應(yīng)用于圖像識(shí)別和語(yǔ)音處理等領(lǐng)域[2-3]?;诖耍P者提出了采用深度自編碼網(wǎng)絡(luò)(deep autoencoder network,簡(jiǎn)稱DAEN)對(duì)航空發(fā)動(dòng)機(jī)進(jìn)行故障診斷的方法。
深度自編碼網(wǎng)絡(luò)是由多層自編碼器依次連接而成的深層神經(jīng)網(wǎng)絡(luò),依據(jù)深度自編碼網(wǎng)絡(luò)的結(jié)構(gòu)特點(diǎn),將其訓(xùn)練過(guò)程分為2 個(gè)階段:①采用無(wú)標(biāo)簽的數(shù)據(jù)樣本集對(duì)深度自編碼網(wǎng)絡(luò)參數(shù)的初始值進(jìn)行預(yù)先訓(xùn)練;②采用有標(biāo)簽的數(shù)據(jù)樣本集對(duì)該網(wǎng)絡(luò)進(jìn)行再訓(xùn)練,以實(shí)現(xiàn)網(wǎng)絡(luò)參數(shù)的微量調(diào)整。
深度自編碼網(wǎng)絡(luò)的預(yù)訓(xùn)練實(shí)質(zhì)上是初始化網(wǎng)絡(luò)中連接權(quán)值和偏置向量等參數(shù),通過(guò)自監(jiān)督特征優(yōu)化算法對(duì)各層自編碼器進(jìn)行訓(xùn)練,最終確定層與層之間連接權(quán)值的初始值和各層神經(jīng)元的偏置初始值。作為深度自編碼網(wǎng)絡(luò)的基本組成部分,自動(dòng)編碼器是一種自監(jiān)督神經(jīng)網(wǎng)絡(luò),主要由輸入層、隱藏層和輸出層組成,其中輸出層的標(biāo)簽設(shè)置為近似等于輸入值。因此,只要確定輸入層和網(wǎng)絡(luò)隱藏層的結(jié)構(gòu)參數(shù),就可以確定自編碼神經(jīng)網(wǎng)絡(luò)。自編碼器基本結(jié)構(gòu)如圖1 所示。其中:“+1”為網(wǎng)絡(luò)的偏置節(jié)點(diǎn);W為由網(wǎng)絡(luò)輸入層與隱含層之間的權(quán)系數(shù)構(gòu)成的矩陣;為由網(wǎng)絡(luò)隱含層與輸出層之間的權(quán)系數(shù)構(gòu)成的矩陣。
根據(jù)自編碼器的運(yùn)算過(guò)程,一個(gè)自編碼器可分為2 部分:編碼和解碼。編碼是指由輸入層的輸入數(shù)據(jù)得到隱含層輸出的計(jì)算過(guò)程。解碼是指由隱含層輸出得到輸出層輸出的計(jì)算過(guò)程。如圖1 所示,給定數(shù)據(jù)樣本集X=(x1,x2…,xN)(其中:N為樣本數(shù)),設(shè)編碼函數(shù)為f,則編碼實(shí)現(xiàn)從輸入層到隱含層的非線性變換,編碼過(guò)程[4-5]可表示為
圖1 自編碼器基本結(jié)構(gòu)Fig.1 Self-encoder basic structure
其中:h為網(wǎng)絡(luò)隱含層的輸出向量;x為網(wǎng)絡(luò)輸入層的輸入向量;θ= {W,b},b為網(wǎng)絡(luò)輸入層與隱含層之間的偏置向量。
設(shè)g為解碼函數(shù),則解碼為隱含層與輸出層之間的映射關(guān)系,解碼過(guò)程可表示為
編碼函數(shù)和解碼函數(shù)可以選用sigmoid 函數(shù)或hyperbolic tangent 函數(shù)等,本研究方法使用sigmoid函數(shù)。在自編碼器訓(xùn)練過(guò)程中,應(yīng)使得自動(dòng)編碼器的輸出值近似等于網(wǎng)絡(luò)的輸入值x。自編碼器的均方誤差函數(shù)[6]為
其中:J(θ)為均方誤差;N為樣本數(shù)。
筆者在重構(gòu)誤差時(shí)采用交叉熵?fù)p失函數(shù),重構(gòu)誤差函數(shù)公式[7]為
針對(duì)于數(shù)據(jù)集X,損失函數(shù)可表示為
其中:xi為網(wǎng)絡(luò)的第i組輸入向量為網(wǎng)絡(luò)的第i組輸出向量;θ為由網(wǎng)絡(luò)的連接權(quán)系數(shù)和偏置向量等參數(shù)構(gòu)成的數(shù)據(jù)集合。
采用不同的方法對(duì)自編碼器的算法進(jìn)行改進(jìn),得到不同的自編碼器模型,例如:稀疏自編碼器(sparse autoencoder,簡(jiǎn)稱SAE)、去噪自編碼器、收縮自編碼器等[8-11]。由于航空發(fā)動(dòng)機(jī)監(jiān)測(cè)信息的數(shù)據(jù)特點(diǎn),筆者采用稀疏自編碼器作為深度自編碼網(wǎng)絡(luò)的主體結(jié)構(gòu)。
稀疏自編碼器采用稀疏自編碼算法,該算法通過(guò)增加稀疏正則化約束,消除隱含層中影響較小的部分,從而依靠限制隱含層神經(jīng)元的激活狀態(tài),提取數(shù)據(jù)的潛在特征[12-13]。相較于一般的自編碼器算法,稀疏自編碼算法在式(5)的基礎(chǔ)上增加了稀疏懲罰項(xiàng)。總的損失函數(shù)表達(dá)式[14]為
其中:β為稀疏懲罰因子權(quán)系數(shù);ρ為稀疏性系數(shù);ρ?表示自編碼網(wǎng)絡(luò)的隱含層對(duì)輸入層輸入數(shù)據(jù)的平均活躍度;為網(wǎng)絡(luò)的第i組輸入向量對(duì)隱含層第j個(gè)神經(jīng)元的激活度;KL為稀疏自編碼算法中的稀疏性懲罰項(xiàng),表示ρ?和ρ的KL 距離,即相對(duì)熵。
對(duì)單層自編碼器進(jìn)行預(yù)先訓(xùn)練時(shí),采用隨機(jī)梯度下降的方法計(jì)算參數(shù)值,而對(duì)深度自編碼網(wǎng)絡(luò)進(jìn)行預(yù)先訓(xùn)練時(shí),采用逐層貪婪的訓(xùn)練方法。一個(gè)自編碼器預(yù)先訓(xùn)練完成后,將其隱含層的輸出數(shù)據(jù)作為網(wǎng)絡(luò)連接的下一層自編碼器的輸入數(shù)據(jù),再預(yù)先訓(xùn)練下一層自編碼器。如此進(jìn)行下去,直至最后一層的自編碼器預(yù)先訓(xùn)練完成。至此,整個(gè)深度自編碼網(wǎng)絡(luò)的預(yù)先訓(xùn)練過(guò)程結(jié)束。
由網(wǎng)絡(luò)的預(yù)訓(xùn)練過(guò)程可知,各層自編碼器參數(shù)的訓(xùn)練依次進(jìn)行,最終得到深度自編碼網(wǎng)絡(luò)的初始參數(shù)。為了用于診斷且得到更好的診斷結(jié)果,需要對(duì)深度自編碼網(wǎng)絡(luò)參數(shù)進(jìn)行進(jìn)一步調(diào)整,即網(wǎng)絡(luò)微調(diào)。采用含有標(biāo)簽的訓(xùn)練數(shù)據(jù)樣本集,賦給整個(gè)網(wǎng)絡(luò)的輸入層和輸出層,根據(jù)反向傳播神經(jīng)網(wǎng)絡(luò)(back propagation neural network,簡(jiǎn)稱BP)的反向傳播功能,可以實(shí)現(xiàn)對(duì)整個(gè)網(wǎng)絡(luò)所有參數(shù)在細(xì)節(jié)上進(jìn)行微調(diào),從而得到全局最優(yōu)解,達(dá)到深度學(xué)習(xí)的最佳效果。相較于直接在隨機(jī)初始參數(shù)上使用BP算法進(jìn)行訓(xùn)練,在網(wǎng)絡(luò)預(yù)訓(xùn)練完成之后,對(duì)其進(jìn)行微調(diào)會(huì)有更好的效果,因?yàn)榍罢呷菀紫萑刖植孔顑?yōu)[15]。
基于深度自編碼的航空發(fā)動(dòng)機(jī)故障診斷方案如圖2 所示。
圖2 基于深度自編碼的航空發(fā)動(dòng)機(jī)故障診斷方案Fig.2 Aero engine fault diagnosis scheme based on deep self-encoding
依據(jù)深度自編碼網(wǎng)絡(luò)的診斷思想,筆者創(chuàng)建了基于深度自編碼網(wǎng)絡(luò)的航空發(fā)動(dòng)機(jī)故障診斷模型,如圖3 所示。該模型包含一個(gè)輸入數(shù)據(jù)的輸入層、k個(gè)挖掘數(shù)據(jù)特征的隱含層和一個(gè)輸出診斷結(jié)果的輸出層。其中:輸入層和k個(gè)隱含層共同組成k層稀疏自編碼器;輸出層和第k個(gè)隱含層組成分類層。分類層將數(shù)據(jù)提取后,信息轉(zhuǎn)換為故障診斷的結(jié)果,常用的分類器有l(wèi)ogistic 分類器、SVM 分類器和Softmax 分類器等。筆者選用Softmax 分類器。
診斷時(shí),輸入層的神經(jīng)元個(gè)數(shù)為輸入樣本的參數(shù)個(gè)數(shù),隱含層的層數(shù)和各隱含層的神經(jīng)元個(gè)數(shù)通過(guò)不斷試驗(yàn)調(diào)整得到,輸出層的神經(jīng)元個(gè)數(shù)可根據(jù)故障的類別進(jìn)行設(shè)置。
圖3 基于深度自編碼網(wǎng)絡(luò)的故障診斷模型Fig.3 Fault diagnosis model based on deep self-coding network
基于深度自編碼網(wǎng)絡(luò)的故障診斷步驟如下:
1)根據(jù)航空發(fā)動(dòng)機(jī)采集的監(jiān)測(cè)數(shù)據(jù)(原始數(shù)據(jù))構(gòu)造數(shù)據(jù)樣本集,對(duì)構(gòu)造好的樣本集進(jìn)行標(biāo)準(zhǔn)化處理;
2)選取適當(dāng)?shù)碾[含層層數(shù)及隱含層神經(jīng)元個(gè)數(shù),建立深度自編碼神經(jīng)網(wǎng)絡(luò)的初始模型;
3)使用無(wú)標(biāo)簽的訓(xùn)練數(shù)據(jù)樣本集對(duì)構(gòu)造好的深度自編碼神經(jīng)網(wǎng)絡(luò)進(jìn)行自監(jiān)督訓(xùn)練,從而確定各層自編碼模塊的參數(shù)初始值;
4)采用含有標(biāo)簽的訓(xùn)練數(shù)據(jù)樣本集對(duì)輸出層和整個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,即微調(diào),最終確定基于深度自編網(wǎng)絡(luò)的航空發(fā)動(dòng)機(jī)故障診斷模型;
5)利用測(cè)試數(shù)據(jù)樣本集對(duì)基于深度自編碼網(wǎng)絡(luò)的航空發(fā)動(dòng)機(jī)故障診斷模型進(jìn)行測(cè)試,并對(duì)測(cè)試結(jié)果進(jìn)行分析。
筆者使用某型航空發(fā)動(dòng)機(jī)采集的監(jiān)測(cè)數(shù)據(jù),通過(guò)該型號(hào)發(fā)動(dòng)機(jī)的理論學(xué)習(xí)對(duì)眾多監(jiān)測(cè)參數(shù)進(jìn)行分析,選取能夠較好反應(yīng)發(fā)動(dòng)機(jī)狀態(tài)的參數(shù)作為故障診斷模型輸入項(xiàng)的輸入。例如:滑油壓差、滑油回油溫度、高壓轉(zhuǎn)子轉(zhuǎn)速、油門桿位置、低壓轉(zhuǎn)子轉(zhuǎn)速以及渦輪落壓比等30 個(gè)參數(shù)。根據(jù)選擇的數(shù)據(jù),將航空發(fā)動(dòng)機(jī)劃分為健康和故障2 種工作狀態(tài),用標(biāo)簽“[10]”表示健康狀態(tài),標(biāo)簽“[01]”表示故障狀態(tài)。筆者在網(wǎng)絡(luò)模型的預(yù)訓(xùn)練階段采用無(wú)標(biāo)簽數(shù)據(jù),其中包含正常數(shù)據(jù)和故障類或近似故障類數(shù)據(jù);網(wǎng)絡(luò)微調(diào)階段采用少量的含有標(biāo)簽的數(shù)據(jù)。
在建立故障診斷模型時(shí),網(wǎng)絡(luò)預(yù)訓(xùn)練階段分別選取無(wú)標(biāo)簽的數(shù)據(jù)樣本200,400 和800 組,其中健康數(shù)據(jù)和故障數(shù)據(jù)比例均為4∶1。網(wǎng)絡(luò)微調(diào)階段采用含標(biāo)簽數(shù)據(jù)樣本200 組,其中,健康數(shù)據(jù)樣本150組,故障數(shù)據(jù)樣本50 組。在模型測(cè)試時(shí),選取含標(biāo)簽數(shù)據(jù)樣本100 組,其中,健康數(shù)據(jù)樣本和故障數(shù)據(jù)樣本各50 組。
根據(jù)多次試驗(yàn)的結(jié)果,筆者設(shè)計(jì)了隱含層為2層的深度自編碼網(wǎng)絡(luò)。各隱含層中的神經(jīng)元個(gè)數(shù)均設(shè)為100,最大迭代次數(shù)設(shè)定為400,學(xué)習(xí)速率設(shè)為0.01,稀疏性參數(shù)為0.1,權(quán)重衰減系數(shù)為0.002,稀疏懲罰項(xiàng)權(quán)重為3。本研究方法中,網(wǎng)絡(luò)的輸出層選擇了Softmax 分類器,其輸出結(jié)果為不同條件下的概率值[16],即輸出層神經(jīng)元的輸出值范圍為[0,1],且和等于1。通過(guò)輸出層不同神經(jīng)元輸出值之間的比較,將輸出值最大的神經(jīng)元節(jié)點(diǎn)記為1,其余記為0。
為了討論深度自編碼網(wǎng)絡(luò)預(yù)訓(xùn)練過(guò)程中,無(wú)標(biāo)簽訓(xùn)練數(shù)據(jù)樣本集的大小對(duì)診斷準(zhǔn)確率的影響,筆者選用不同組數(shù)的無(wú)標(biāo)簽訓(xùn)練數(shù)據(jù)樣本集對(duì)網(wǎng)絡(luò)進(jìn)行預(yù)訓(xùn)練,每組數(shù)據(jù)樣本集做10 次試驗(yàn)。不同試驗(yàn)次數(shù)下模型診斷準(zhǔn)確率如圖4 所示。
圖4 不同試驗(yàn)次數(shù)下模型診斷準(zhǔn)確率Fig.4 Diagnosis accuracy rate of fault diagnosis model with different test times
根據(jù)10 次試驗(yàn)結(jié)果求取航空發(fā)動(dòng)機(jī)故障診斷的平均診斷準(zhǔn)確率,表1 為不同預(yù)訓(xùn)練集的故障診斷結(jié)果??梢?jiàn),網(wǎng)絡(luò)預(yù)訓(xùn)練過(guò)程對(duì)航空發(fā)動(dòng)機(jī)故障診斷的診斷準(zhǔn)確率有一定的影響,且隨著網(wǎng)絡(luò)預(yù)訓(xùn)練過(guò)程中無(wú)標(biāo)簽數(shù)據(jù)樣本集的增加,其發(fā)動(dòng)機(jī)故障診斷的準(zhǔn)確率也會(huì)不斷增大。
表1 不同預(yù)訓(xùn)練集的故障診斷結(jié)果Tab.1 Fault diagnosis results of different pre-training sets
為了驗(yàn)證所設(shè)計(jì)的模型故障診斷效果,筆者在使用相同數(shù)據(jù)集的前提下,分別采用了BP、廣義回歸神經(jīng)網(wǎng)絡(luò)(general regression neural network,簡(jiǎn)稱GRNN)、徑向基神經(jīng)網(wǎng)絡(luò)(radial basis function,簡(jiǎn)稱RBF)和最小二乘支持向量機(jī)(least squares support vector machine,簡(jiǎn)稱LSSVM)故障診斷方法,對(duì)航空發(fā)動(dòng)機(jī)進(jìn)行了故障診斷技術(shù)研究。不同方法的故障診斷結(jié)果如表2 所示。
表2 不同方法的故障診斷結(jié)果Tab.2 Fault diagnosis results of different methods
由于筆者所提出的方法是在預(yù)訓(xùn)練的基礎(chǔ)上對(duì)參數(shù)進(jìn)行了進(jìn)一步微調(diào),可以更加有效地提取和學(xué)習(xí)數(shù)據(jù)樣本的信息特征,進(jìn)而克服局部收斂和梯度消失等問(wèn)題,因此與傳統(tǒng)的故障診斷方法相比,所提出的方法可以較好地提高發(fā)動(dòng)機(jī)的故障診斷準(zhǔn)確率。由表2 可知,相較于其他常用的故障診斷方法,所提出方法具有更好的診斷效果。
筆者將深度學(xué)習(xí)的優(yōu)勢(shì)應(yīng)用于航空發(fā)動(dòng)機(jī)的故障診斷領(lǐng)域,創(chuàng)建了基于深度自編碼神經(jīng)網(wǎng)絡(luò)的航空發(fā)動(dòng)機(jī)故障診斷模型。研究表明,預(yù)訓(xùn)練深度自編碼神經(jīng)網(wǎng)絡(luò)對(duì)于網(wǎng)絡(luò)模型的創(chuàng)建十分重要,采用增加預(yù)訓(xùn)練樣本集的容量,可以得到精準(zhǔn)的發(fā)動(dòng)機(jī)故障診斷模型。筆者提出的基于深度自編碼網(wǎng)絡(luò)的航空發(fā)動(dòng)機(jī)故障診斷方法較其他神經(jīng)網(wǎng)絡(luò)故障診斷方法具有較高的準(zhǔn)確性,在航空發(fā)動(dòng)機(jī)故障診斷領(lǐng)域具有較高的應(yīng)用和推廣價(jià)值。