張保山,周 峰,張 琳,張 搏,魯 娜,楊博帆
(1.空軍工程大學(xué),西安 710051;2.92095部隊,浙江 臺州 318050;3.93142部隊,成都 610041)
故障診斷其作為模式識別的一個重要應(yīng)用領(lǐng)域,融合了圖像處理、證據(jù)推理、模糊數(shù)學(xué)等多個領(lǐng)域的技術(shù),雖然其已發(fā)展了近30多年,但“故障診斷學(xué)”還是近幾年發(fā)展起來的。尤其,隨著近些年人工智能的興起,深度神經(jīng)網(wǎng)絡(luò)在故障診斷領(lǐng)域的應(yīng)用變得越來越廣泛[1-3],其在非線性、自適應(yīng)學(xué)習(xí)原始數(shù)據(jù)特征,有效挖掘大數(shù)據(jù)潛在信息,獲取較高識別精度方面具有絕對的優(yōu)勢[4-9],但深度神經(jīng)網(wǎng)絡(luò)仍然存在運算時間長,參數(shù)設(shè)置依靠經(jīng)驗從而導(dǎo)致運算效率降低,參數(shù)設(shè)置缺乏理論依據(jù)的問題,困擾著深度神經(jīng)網(wǎng)絡(luò)在故障診斷領(lǐng)域的進一步發(fā)展[10-11]。
群智能算法(Swarm Intelligence,SI)是采用隨機優(yōu)化策略進行優(yōu)化的一類算法,具有良好的全局尋優(yōu)能力,因此,許多學(xué)者將SI作為優(yōu)化人工神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法,如晏福將混沌理論引入灰狼算法,并應(yīng)用于多層感知器的訓(xùn)練[12];張長利采用遺傳算法訓(xùn)練多層前饋神經(jīng)網(wǎng)絡(luò)實現(xiàn)番茄成熟度的自動判別[13];雷彥森利用遺傳算法優(yōu)化的BP網(wǎng)絡(luò)實現(xiàn)對天氣的預(yù)報[14],但這些方法都只是在確定的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),激活函數(shù)和優(yōu)化函數(shù)的前提下,對神經(jīng)網(wǎng)絡(luò)的連接權(quán)值和偏置量進行優(yōu)化,既不能保證其連接權(quán)值和偏置量在全部可選的網(wǎng)絡(luò)結(jié)構(gòu)上達到最優(yōu),且其網(wǎng)絡(luò)結(jié)構(gòu)、激活函數(shù)和優(yōu)化函數(shù)是否選擇合理也缺少理論支撐。并且,故障特征往往呈現(xiàn)出多重性、多耦合及模糊性的特點[15-16],若僅僅依靠研究人員的主觀經(jīng)驗設(shè)置神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),既會浪費大量人力資源,又難以保證裝備維護保障的效率。
深度前饋網(wǎng)絡(luò)(deep feedforward network,DFN),能夠以任意精度逼近任意連續(xù)函數(shù)及平方可積函數(shù),而且可以精確實現(xiàn)任意有限訓(xùn)練樣本集。其通過簡單非線性處理單元的復(fù)合映射,可獲得復(fù)雜的非線性處理能力[17-18]。
因此,本文針對深度神經(jīng)網(wǎng)絡(luò)在故障診斷方面所存在的問題,將自適應(yīng)遺傳算法和深度前饋網(wǎng)絡(luò)相結(jié)合,提出一種可以根據(jù)數(shù)據(jù)特征動態(tài)調(diào)整深度神經(jīng)網(wǎng)絡(luò)參數(shù)的故障診斷模型——基于自適應(yīng)遺傳算法優(yōu)化的深度前饋網(wǎng)絡(luò)故障診斷模型。
深度前饋網(wǎng)絡(luò)(deep feedforward network,DFN),簡稱前饋網(wǎng)絡(luò),其各神經(jīng)元分層排列,同一層的神經(jīng)元之間沒有相互連接,每個神經(jīng)元只與前一層的神經(jīng)元相連接,接收前一層的輸出,并輸出到下一級,直至輸出層。其中第一層稱為輸入層,最后一層為輸出層,中間為隱含層,如圖1所示。根據(jù)柯爾莫哥洛夫理論可知,一個含有兩個隱藏層的DFN絡(luò)就可以逼近任意非線性函數(shù)[19]。
1)正向傳遞
正向傳遞,即按照輸入層、隱含層、輸出層的順序向前傳送,最終在輸出層輸出yo與真實輸出yt進行比對,若其誤差δy小于所期望的誤差,則訓(xùn)練結(jié)束。
如圖1所示,輸入節(jié)點數(shù)為t,分別為X1,X2,X3,…,Xt;第一個隱含層的節(jié)點數(shù)為m,分別為h1,h2,…,hm;第n層隱含層節(jié)點數(shù)為r,分別為H1,H2,…,Hr;輸出層為y,各層間的權(quán)值矩陣為長度不固定的橫向量wi={wi1,wi2,…,wij},其中i為DFN隱含層的層數(shù),j為各層的節(jié)點數(shù),激活函數(shù)為f(x)。
圖1 深度前饋網(wǎng)絡(luò)結(jié)構(gòu)圖
若采用sigmoid函數(shù),則各隱含層節(jié)點的輸入為:
Input=w0+w1x1+…+wtxt
(1)
各隱含層節(jié)點的輸出為
(2)
2)反向傳播
反向傳播,輸出層根據(jù)所輸出的誤差δy反向推算上一層的誤差,以此方法計算出每一層的誤差,修正各層神經(jīng)單元的權(quán)重,直到輸出層最后所得的誤差δy縮小至期望誤差或達到學(xué)習(xí)次數(shù)[20]。
δy=yo(1-yo)(yt-yo)
(3)
式(3)中:δy為輸出層誤差;yo為實際輸出;yt為期望輸出。對于隱含層節(jié)點其誤差函數(shù)為:
(4)
式(4)中:δhi表示隱含節(jié)點hi的誤差;hiout表示第i層隱含層的輸出值;wij表示第i層隱含層到下一層第j個節(jié)點的連接權(quán)值;δij表示第i層節(jié)點到i+1層第j個節(jié)點的誤差。
遺傳算法(Genetic algorithm,GA)是依據(jù)達爾文進化論中“優(yōu)勝劣汰”思想衍生而來的一種擇優(yōu)算法,其通過對原始種群進行選擇、交叉和變異等多次迭代操作,最終獲得最優(yōu)個體[21]。但GA的交叉概率pc和變異概率pm的設(shè)置均需依靠操作者經(jīng)驗來決定,若pc與pm設(shè)置不合理,GA的收斂性和其最優(yōu)解的準(zhǔn)確性均會受到影響,因此本文采用交叉概率pc與變異概率pm能夠自適應(yīng)調(diào)整的遺傳算法(AGA)來確保種群的多樣性,其中能夠自適應(yīng)調(diào)整的pc與pm為:
(5)
(6)
式(5)、(6)中: Δf的含義為每個染色體個體的最大適應(yīng)度值和平均適應(yīng)度值的差值;φ1和φ2表示調(diào)整速率[22]。
AGA優(yōu)化的DFN的中心思想也同其他智能算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的中心思想相同,都是要找到被優(yōu)化神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和偏置量,但本文所提出的優(yōu)化方式是:通過找到被優(yōu)化神經(jīng)網(wǎng)絡(luò)的最合理網(wǎng)絡(luò)結(jié)構(gòu)、激活函數(shù)和優(yōu)化函數(shù),來間接地找到其最優(yōu)權(quán)值和偏置量,不僅達到了優(yōu)化其結(jié)果的目的,更為神經(jīng)網(wǎng)絡(luò)參數(shù)的設(shè)置提供了依據(jù),并綜合考慮了遺傳算法在進行擇優(yōu)的過程中交叉概率pc和變異概率pm的設(shè)置依靠操作人員經(jīng)驗所導(dǎo)致的尋優(yōu)效率不高的問題,故將自適應(yīng)pc與pm引入原始遺傳算法中,得到全局尋優(yōu)能力更強的自適應(yīng)遺傳算法。
AGA優(yōu)化DFN具體流程如圖2所示。
圖2 自適應(yīng)遺傳算法優(yōu)化深度前饋網(wǎng)絡(luò)流程圖
步驟如下:
步驟1結(jié)合所研究的具體問題,人工預(yù)設(shè)DFN隱含層層數(shù)預(yù)選值,隱含層節(jié)點數(shù)預(yù)選值,激活函數(shù)預(yù)選項及優(yōu)化函數(shù)預(yù)選項[23]。
步驟2若存在預(yù)置DFN參數(shù),則隨機選擇一組DFN結(jié)構(gòu)選項及連接權(quán)值和偏置量,并將其連接權(quán)值和偏置量作為AGA的初始種群。
步驟3將DFN運算所得的損失函數(shù)定義為適應(yīng)度函數(shù),即:
(7)
步驟4計算各染色體的適應(yīng)度值Fi,并定義每個個體的適應(yīng)度值Fi與所有個體的適應(yīng)度值之和的比值為其遺傳到下一代的概率,即:
(8)
式(8)中:Fi為種群種個體i的適應(yīng)度值;s為種群個數(shù)。
步驟5自適應(yīng)pc決定了交叉操作發(fā)生概率的大小,并通過在舊種群選擇“爸爸”和“媽媽”個體進行交叉操作,產(chǎn)生新個體遺傳到下一代種群中,即:
(9)
式(9)中:r為[0,1]的隨機數(shù);gk1j,gk2j分別為k1和k2個體在第j維的基因。
步驟6自適應(yīng)pm決定染色體i發(fā)生變異的概率,通過變異操作隨機選擇染色體i上的若干基因進行修改,增強種群的適應(yīng)度。
(10)
式(10)中:r1≥0.5和r1<0.5為隨機數(shù);s為當(dāng)前迭代次數(shù);smax為最大變異次數(shù);gmax和gmin為染色體i上基因gij的上、下邊界。
步驟7適應(yīng)度值若滿足算法開始前設(shè)置的提前結(jié)束條件,則修正DFN中的隱含層層數(shù),各隱含層節(jié)點數(shù),激活函數(shù)和優(yōu)化函數(shù)等參數(shù),若不滿足則返回步驟4,重復(fù)上述操作。
步驟8當(dāng)步驟7結(jié)束后,利用AGA所求得的最優(yōu)個體對DFN的初始參數(shù)進行更新,則DFN從輸入層開始逐層進行訓(xùn)練,直至每一層均訓(xùn)練結(jié)束,此時各層的權(quán)重值wi={wi1,wi2,…,wij}及其偏量值w0={w10,w20,…,wi0}均已確定,并從預(yù)置DFN參數(shù)組合集合中刪除該組預(yù)置DFN參數(shù)組合。
步驟10判斷是否還存在預(yù)置DFN參數(shù)組合,若存在預(yù)置DFN參數(shù)組合,則返回步驟2,重復(fù)上述操作;若不存在預(yù)置DFN參數(shù)組合,則對比之前用各種參數(shù)組合訓(xùn)練所得到的誤差,將誤差最小的DFN參數(shù)組合作為選定的網(wǎng)絡(luò)結(jié)構(gòu),并將AGA尋優(yōu)得到的最佳連接權(quán)值和偏置量作為DFN的初始連接權(quán)值和偏置量重新進行訓(xùn)練,最終輸出其識別精度。
常見的故障診斷數(shù)據(jù)大致可分為兩大類—故障部件的圖片以及傳感器的檢測信號,因此,本文實驗內(nèi)容分為兩個部分,分別為圖像處理與故障信號處理。對于圖像處理部分,本文采用公開數(shù)據(jù)集,驗證本模型的有效性;對于故障信號處理部分,本文采用模擬仿真的方法,驗證本模型的有效性。針對圖像處理部分,本文將所提出的自適應(yīng)遺傳算法優(yōu)化的深度前饋網(wǎng)絡(luò)(AGADFN)與遺傳算法優(yōu)化的深度前饋網(wǎng)絡(luò)模型(GADFN)和DFN進行對比,此時的DFN因為無法確定其具體結(jié)構(gòu)用GADFN迭代一次的網(wǎng)絡(luò)代替。以MNIST和CIFAR10標(biāo)準(zhǔn)測試集為實驗驗證數(shù)據(jù),按照9∶1的方式劃分訓(xùn)練數(shù)據(jù)集與測試數(shù)據(jù)集,采用MD5進行編碼操作,將隱含層層數(shù),各隱含層節(jié)點數(shù),優(yōu)化函數(shù)和激活函數(shù)設(shè)置為種群中的個體,其中隱含層層數(shù)可選值為{1,2,3,4},各隱含層節(jié)點數(shù)可選值為{64,128,256,512,768,1 024},激活函數(shù)選項為{relu,elu,tanh,sigmoid},優(yōu)化函數(shù)選項為{rmsprop,adam,sgd,adagrad,adadelta,adamax,nadam},每一代種群中的個體設(shè)置為20個,迭代次數(shù)為10代,自適應(yīng)調(diào)整速率為1,在顯卡均為GTX1060硬件條件下,驗證結(jié)果如圖3、圖4所示。
圖3 實驗?zāi)P蜏y試MNIST數(shù)據(jù)集準(zhǔn)確率
圖4 實驗?zāi)P蜏y試CIFAR10數(shù)據(jù)集準(zhǔn)確率
由圖3可知,隨著迭代次數(shù)增加,在MNIST數(shù)據(jù)集上AGADFN精度不斷提升,從初始的80.24%提升至99.03%,并且AGADFN經(jīng)過3次迭代精度便達到90%以上,而GADFN需迭代7次,但在第10次迭代后兩種模型在MNIST數(shù)據(jù)集上測試精度相差不到1%,運行時間上GADFN為6小時1分35秒,AGADFN為5小時41分57秒。
由圖4可知,隨著迭代次數(shù)增加,在CIFAR10數(shù)據(jù)集上AGADFN精度不斷提升,從初始的44.34%提升至63.39%,并且AGADFN在第6次迭代精度便達到57.19%,而且GADFN在第10次迭代精度才達到56.12%。但AGADFN在第10次迭代誤差還有36.61%,運行時間上GADFN為7小時56分59秒,AGADFN為6小時33分11秒。
對比分析兩組數(shù)據(jù)得:
1)本文所提出的AGADFN故障診斷模型,在運算速度及精度方面均優(yōu)于DFN和GADFN,且相比運算精度提升0.47%和12.95%,其運算速度提升5.4%和17.6%,提升幅度更大。
2)本模型在處理復(fù)雜數(shù)據(jù)CIFAR10時,其運算速度提升幅度17.6%及運算精度提升幅度12.95%,相比處理簡單數(shù)據(jù)MNIST時,其運算速度提升幅度5.4%及運算精度提升幅度0.47%,提升效果更加明顯。
3)在處理復(fù)雜數(shù)據(jù)集CIFAR10時,AGADFN相比GADFN分類精度提升明顯,說明自適應(yīng)遺傳算法尋優(yōu)能力明顯強于遺傳算法;在處理較簡單的測試集MNIST時,AGADFN相比GADFN雖然收斂速度更快,但在后幾次迭代中,精度提升幅度較小,此現(xiàn)象應(yīng)為遺傳算法及其衍生算法本身的缺陷所致。
針對故障信號處理部分,本文采用圖5所示的國際標(biāo)準(zhǔn)CSTV濾波器仿真電路,其參數(shù)設(shè)置如表1所示,其中kΩ和nF分別為電阻阻值以及電容的電容量,故障元器件選擇為R5,模擬因為老化導(dǎo)致R5阻值變大所導(dǎo)致的故障,以R5阻值的不同區(qū)分故障的程度,R5故障等級及其故障值如表2所示。通過PSpice軟件進行仿真實驗,共采集數(shù)據(jù)100組,其中80組作為訓(xùn)練樣本,20組為測試樣本,迭代次數(shù)設(shè)置為300次,其余設(shè)置與圖像處理部分實驗相同,比較GADFN與AGADFN的實驗誤差[24]。
圖5 CSTV仿真電路圖
表1 CSTV仿真電路參數(shù)設(shè)置
表2 R5故障等級及其故障值
實驗?zāi)P蜏y試CSTV數(shù)據(jù)誤差如圖6所示,由圖6可知,隨著迭代次數(shù)增加,在CSTV仿真數(shù)據(jù)集上AGADFN精度不斷提升,從初始的82.312%提升至99.994%,并且AGADFN在第127次迭代精度便達到99.973%,而GADFN在第300次迭代精度才達到99.971%;在收斂速度方面,AGADFN在第16次精度為99.948%,GADFN在第26次精度為99.950%,AGADFN相比GADFN收斂速度更快;在穩(wěn)定性上,AGADFN在迭代200次以后誤差便趨于穩(wěn)定,而GADFN在迭代200次以后,誤差依然存在較強的波動。
圖6 實驗?zāi)P蜏y試CSTV數(shù)據(jù)誤差圖
總結(jié)以上數(shù)據(jù)分析結(jié)果,本文所提出的ADGADFN故障診斷模型在運算速度及精度方面均提升明顯,且處理復(fù)雜數(shù)據(jù)能力更強,且通過此類方法優(yōu)化模型的分類能力主要取決于所選擇的群智能算法的全局尋優(yōu)能力,因此本文所提出的這一類故障診斷模型診斷能力的提升,可通過增加迭代次數(shù)或改良群智能算法進一步解決。
本文所提出的自適應(yīng)遺傳算法優(yōu)化的深度前饋網(wǎng)絡(luò)故障診斷模型比原始深度前饋網(wǎng)絡(luò)故障診斷模型計算精度有所提升,實際調(diào)試時間短,優(yōu)化方法更為合理。但是還存在以下問題:其一,本文所提出的模型雖然不需要反復(fù)進行人工的參數(shù)調(diào)試,在訓(xùn)練網(wǎng)絡(luò)方面節(jié)省了大量時間,但運算時間長,對簡單的故障診斷效率不如淺層神經(jīng)網(wǎng)絡(luò)高,后期可以試著通過多GPU數(shù)據(jù)并行框架對其運行速度進行優(yōu)化;其二,本模型沒有充分發(fā)揮神經(jīng)網(wǎng)絡(luò)魯棒性強、適應(yīng)度高的優(yōu)勢,后期考慮將本模型結(jié)合遠(yuǎn)程信息采集系統(tǒng),應(yīng)用于遠(yuǎn)程故障診斷系統(tǒng),提高故障診斷的效率[25]。