劉 程,陳 斌,瞿珊瑚,張海天
(海軍工程大學 電子工程學院,湖北 武漢 430033)
發(fā)信機是短波發(fā)信系統(tǒng)的重要組成部分,在軍事通信中應用廣泛。發(fā)信機出現(xiàn)故障往往會造成嚴重的后果,甚至會影響作戰(zhàn)任務的正常進行。裝備故障檢測與診斷已成為現(xiàn)在的一個熱點問題,但是在發(fā)信機故障診斷方面新的方法仍然較少。目前,多用基于BP神經(jīng)網(wǎng)絡[1]、專家系統(tǒng)等方法對裝備進行故障診斷。由于發(fā)信機結(jié)構(gòu)復雜,存在數(shù)據(jù)采集困難等問題,而傳統(tǒng)的診斷方式從已經(jīng)處理過的參數(shù)去分析判斷。BP神經(jīng)網(wǎng)絡存在網(wǎng)絡不易收斂、易陷入局部最優(yōu)和收斂速度慢等缺點。基于專家系統(tǒng)的方法則需要人工提取信息,耗時長且工作量大。
近年來,深度學習因為其強大的特征挖掘和特征提取能力,已在語音識別[2]、圖像處理等領(lǐng)域得到了廣泛應用。深度學習利用原始數(shù)據(jù)逐層提取信息特征,對提取到的淺層特征進行處理,由淺層特征得到信息的深層表示,實現(xiàn)了非線性函數(shù)逼近,使較淺層的網(wǎng)絡模型有更優(yōu)的處理性能和泛化效果[3]。運用深度學習強大的特征提取能力,可以挖掘故障信號的深層特征表示。
常用的深度學習神經(jīng)網(wǎng)絡包括深度置信網(wǎng)絡(Deep Belief Networks,DBNs)、深度玻爾茲曼機(Deep Boltzmann Machines,DBMs)、深度卷積神經(jīng)網(wǎng)絡(Deep Convolutional Neural Network)和深度堆棧自編碼網(wǎng)絡(Stacked Auto-Encoder,SAE)。深度堆棧自編碼網(wǎng)絡應用廣泛,周志文等提出基于聯(lián)合深度時頻特征的輻射源識別算法,可顯著提高雷達輻射源的識別準確度[4]。曹玉良等利用自動編碼器構(gòu)建的深度學習網(wǎng)絡,對離心泵空化狀態(tài)有良好的識別效果[5]。在故障診斷方面,王麗華等利用堆疊降噪自編碼提取信號特征,結(jié)合Softmax分類器實現(xiàn)了高準確率的電機故障診斷[6]。Siqin Tao和陳仁祥等在研究軸承故障診斷時提出了堆棧自編碼器與Softmax回歸結(jié)合的深度神經(jīng)網(wǎng)絡算法框架,可以顯著消除噪聲影響,具有很強的魯棒性[7-8]。
深度學習理論模擬神經(jīng)元結(jié)構(gòu),不依賴人工處理數(shù)據(jù)而能自動學習信號的深層特征表示,對短波發(fā)信機故障診斷而言,深度學習具有很強的數(shù)據(jù)處理和分析能力[9-10]。因此,本文提出了基于深度學習的短波發(fā)信機故障診斷方法。
堆棧自編碼(Stacked Auto-Encoder,SAE)是深度學習網(wǎng)絡中一種應用較廣泛的網(wǎng)絡,基本單元為自動編碼器(Auto-Encoder,AE)。圖1是自動編碼器結(jié)構(gòu)。
自動編碼器包含一個輸入層、一個隱含層和一個輸出層。相鄰層間全連接,同一層內(nèi)無連接。自動編碼器對輸入的無標簽數(shù)據(jù)x(x∈Rn)編碼,在隱含層得到數(shù)據(jù)的特征表示h(h∈Rm),然后對得到的數(shù)據(jù)特征重構(gòu)得到輸出y(y∈Rn)。
編碼過程為:

Wh是輸入層到隱含層的權(quán)值矩陣,b1是偏置向量,fh是非線性激活函數(shù),通常有sigmoid和tanh兩種。本文使用的是sigmoid函數(shù),表達式為:


圖1 自動編碼器
解碼過程為:

Wy是隱含層到輸出層重構(gòu)的權(quán)值矩陣,b2是重構(gòu)偏置向量,fy是合成函數(shù)(sigmoid)。為使輸出y盡可能等于輸入x,需要使網(wǎng)絡的訓練誤差最小,訓練誤差J(θ)的計算公式為:

其中,N是訓練樣本個數(shù),θ為需要學習的參數(shù),包含Wh、Wy、b1、b2四項。通常,使Wy=WhT保證解碼合成階段的無失真性。當重構(gòu)的輸出和輸入近似相等時(y≈x),此時的自動編碼器學習到的特征性能較好,能夠?qū)⒏呔S數(shù)據(jù)用抽象的低維特征表示。
堆棧自編碼網(wǎng)絡(SAE)是由多層自編碼器組成的神經(jīng)網(wǎng)絡,其前一層自編碼器隱含層的輸出作為后一層自編碼器的輸入,多級連接從而構(gòu)成堆棧自編碼網(wǎng)絡,每一級逐層學習形成堆棧自編碼模型。無監(jiān)督訓練方式是自底向頂?shù)模{(diào)過程為自頂向底的有監(jiān)督訓練。如圖2所示,在SAE網(wǎng)絡后加上一層有監(jiān)督網(wǎng)絡,即可對提取到的特征進行分類。本文采用Softmax分類器實現(xiàn)該功能,因為Softmax分類器適用于存在多個標簽種類時的分類任務。
精調(diào)過程與自動編碼器訓練過程相似,根據(jù)SAE網(wǎng)絡的輸出與標簽之間的差別調(diào)節(jié)無監(jiān)督過程中學習到的參數(shù),從而使網(wǎng)絡的特征提取能力達到最優(yōu)。設輸入的樣本為x(x∈Rn),n為輸入節(jié)點數(shù),對C種故障類型的信息進行分類,輸出的概率為:


圖2 有監(jiān)督SAE網(wǎng)絡
式中,x是輸入,y是輸出的故障類型,W和b分別是分類器的權(quán)重矩陣和偏置向量。歸一化函數(shù)為,所有故障類型的概率之和為1,輸出層的節(jié)點數(shù)等于故障類別數(shù)。由此,在輸入數(shù)據(jù)經(jīng)過SAE網(wǎng)絡訓練和精調(diào)后,根據(jù)概率輸出可以確定故障類型,表達式為:

采用自底向頂無監(jiān)督訓練的方式學習獲得網(wǎng)絡參數(shù),能夠提取數(shù)據(jù)的深層特征,且深層特征可以有效還原輸入信號。而自頂向底的有監(jiān)督精調(diào)能夠進一步優(yōu)化網(wǎng)絡參數(shù),使網(wǎng)絡權(quán)值可以更好地表達原始輸入數(shù)據(jù),獲得更好的特征提取和表達能力。基于堆棧自編碼的發(fā)信機故障診斷模型,結(jié)合SAE網(wǎng)絡和有監(jiān)督微調(diào)過程,先通過SAE網(wǎng)絡訓練提取無標簽故障樣本的特征參數(shù),然后通過Softmax分類器對有標簽的故障進行分類,精調(diào)整個網(wǎng)絡的參數(shù)。該方法可同時實現(xiàn)發(fā)信機故障樣本的特征提取和故障類型的診斷,算法流程如圖3所示。
發(fā)信機SAE故障診斷網(wǎng)絡模型主要步驟如下。
步驟1:獲取故障樣本與預處理。采集各類故障信號,歸一化信號幅值在[0,1]內(nèi),從各類故障樣本中隨機抽取2/3作為訓練樣本,剩余數(shù)據(jù)作為測試樣本。
步驟2:SAE網(wǎng)絡預訓練。設置網(wǎng)絡參數(shù)(包括隱含層層數(shù)、各層節(jié)點數(shù)、學習率、迭代次數(shù)等),構(gòu)建出堆棧自編碼網(wǎng)絡。輸入訓練樣本,無監(jiān)督訓練得到每層權(quán)值矩陣和偏置,提取故障信號特征。

圖3 發(fā)信機故障診斷流程
步驟3:有監(jiān)督精調(diào)。輸入有標簽的訓練樣本,精調(diào)預訓練中得到的網(wǎng)絡參數(shù)。
步驟4:測試網(wǎng)絡。輸入測試樣本,測試訓練好的網(wǎng)絡,輸出故障診斷類型。
為驗證SAE網(wǎng)絡對發(fā)信機故障的診斷能力,本文以某型短波發(fā)信機為例進行分析。由于發(fā)信機的內(nèi)部結(jié)構(gòu)復雜,可能發(fā)生的故障種類并不相同,本文中預設了正常狀態(tài)和4種故障類型對其進行故障分析。每類信號如圖4所示。

圖4 故障信號波形
實驗中,5種狀態(tài)的信號分別設置標簽為[1,0,0,0,0]、[0,1,0,0,0]、[0,0,1,0,0]、[0,0,0,1,0]、[0,0,0,0,1],每種狀態(tài)的信號各采集數(shù)據(jù)1 500組,共7 500組數(shù)據(jù)。隨機抽取每種狀態(tài)數(shù)據(jù)的1 000組作為訓練樣本,剩余500組作為測試樣本。
3.1.1 自動編碼器個數(shù)不同時的診斷準確率
由于本文中采用堆棧自編碼網(wǎng)絡來構(gòu)造故障診斷模型,而改變自動編碼器數(shù)目會影響特征提取能力,因此改變自動編碼器數(shù)目,研究在不同網(wǎng)絡深度情況下的故障診斷性能。實驗中,自動編碼器數(shù)目(隱含層層數(shù))設置為L(L∈[1,3]),每組數(shù)據(jù)的維數(shù)為1 024,設置SAE網(wǎng)絡各層節(jié)點數(shù)為1 024—200—100—50—5。在研究不同數(shù)目的自動編碼器的影響時,設置其余網(wǎng)絡參數(shù)(學習率,迭代次數(shù))相同,比較故障的識別率、網(wǎng)絡訓練時間t1、測試時間t2,結(jié)果如表1所示。

表1 自動編碼器數(shù)目不同時診斷準確率
由表1的結(jié)果可以看出,基于SAE的診斷模型可以應用于發(fā)信機的故障診斷。在學習率、迭代次數(shù)等參數(shù)相同的情況下,增加自動編碼器的數(shù)目(網(wǎng)絡深度)可以提高故障診斷的準確率。因為隨著SAE網(wǎng)絡深度的加深,模型的特征提取能力變強,提取到的特征可以更準確地表示原始數(shù)據(jù)。但是,當自動編碼器數(shù)目L≥2時,故障診斷均能達到100%左右的準確率,說明在自動編碼器數(shù)目為2時,網(wǎng)絡提取到的特征已經(jīng)足夠用來進行發(fā)信機故障診斷,此時繼續(xù)增加網(wǎng)絡深度將無法提升網(wǎng)絡性能。模型在L=3時比L=2時增加了40%的網(wǎng)絡訓練時間。增加網(wǎng)絡深度會增加網(wǎng)絡訓練耗時,而測試時間相比訓練時間并沒有顯著變化且時間都較短(t<0.1 s)。綜合診斷準確率和耗時考慮,在后面的仿真實驗中,采取含2個自動編碼器的SAE網(wǎng)絡,網(wǎng)絡結(jié)構(gòu)為1 024—200—100—50—5。
3.1.2 不同樣本數(shù)目時的網(wǎng)絡診斷效果
在實際的發(fā)信機故障診斷過程中,有效的故障類別信號往往較少。因此,對不同大小的訓練樣本進行網(wǎng)絡性能對比有很強的實用意義。設置網(wǎng)絡參數(shù)不變,網(wǎng)絡結(jié)構(gòu)為1 024—200—100—50—5。改變每一類故障訓練樣本數(shù)據(jù)集的大小,得到如表2所示的識別效果。

表2 不同樣本大小時的實驗結(jié)果
由表2可以發(fā)現(xiàn),當每一類故障訓練樣本在100以下時,故障診斷準確率較低;當訓練樣本為500以上時,診斷準確率接近100%。這表明在訓練樣本增多時,SAE網(wǎng)絡具有更好的特征提取能力和故障診斷準確性;當訓練樣本為200時,準確率能達到70%左右,表明在網(wǎng)絡訓練樣本較小時,該模型仍具有較好的故障診斷能力,增加訓練樣本數(shù)目能夠提高網(wǎng)絡的參數(shù)學習能力和數(shù)據(jù)表達能力。隨著訓練樣本的增大,網(wǎng)絡訓練耗時也增加。考慮到實際故障診斷問題,需要在較短時間內(nèi)判斷出故障類型,得到診斷結(jié)果。從仿真實驗中的訓練時間來看,本文的診斷模型符合這一要求。
將本文中基于堆棧自編碼的診斷模型與傳統(tǒng)單隱層BP神經(jīng)網(wǎng)絡進行對比。因為在當每一類訓練樣本為500時,SAE模型的診斷準確率就能接近100%,所以本節(jié)仿真中選擇訓練樣本大小為500。為了避免實驗出現(xiàn)隨機性,本文進行了10次仿真實驗,在訓練樣本大小相同的情況下,比較兩種算法故障診斷的準確率,得到如圖5所示的結(jié)果。

圖5 兩種方法10次實驗的診斷準確率
可以看出,基于SAE的診斷模型的診斷準確率比BP神經(jīng)網(wǎng)絡方法提升明顯,基本上在95%以上;從穩(wěn)定性上看,SAE診斷準確率的波動較小,而BP神經(jīng)網(wǎng)絡的診斷效果不穩(wěn)定,因為BP神經(jīng)網(wǎng)絡在程序運行過程中容易陷入局部最優(yōu),導致網(wǎng)絡訓練誤差較大,故障診斷準確率低。
針對短波發(fā)信機不同種類的故障診斷問題,將堆棧自編碼網(wǎng)絡添加分類層,構(gòu)建出基于SAE的發(fā)信機故障診斷模型。模型通過對無類別數(shù)據(jù)進行自底向頂無監(jiān)督訓練和有類別數(shù)據(jù)的自頂向底有監(jiān)督精調(diào)完成網(wǎng)絡的訓練,能夠提取到故障信息的深層特征表示,實現(xiàn)發(fā)信機的故障診斷。可見,實驗結(jié)果驗證了本文基于SAE診斷模型的有效性,同時和傳統(tǒng)BP神經(jīng)網(wǎng)絡相比,基于SAE的診斷模型具有更好的穩(wěn)定性與診斷準確率。