李忠智,尹 航,2,左劍凱,劉鶴丹
1(沈陽航空航天大學(xué) 計算機(jī)學(xué)院,沈陽 110136) 2(仲愷農(nóng)業(yè)工程學(xué)院 信息科學(xué)與技術(shù)學(xué)院,廣州 510230) 3(同濟(jì)大學(xué) 計算機(jī)科學(xué)與技術(shù)系,上海 201804)
隨著智能工廠的發(fā)展和運(yùn)行設(shè)備的不斷更新,及時準(zhǔn)確的故障診斷是避免經(jīng)濟(jì)損失和一些不必要的人員傷亡的有效方法[1,2].因為系統(tǒng)存儲的豐富歷史數(shù)據(jù)及不需要精確的物理模型的特點(diǎn),基于數(shù)據(jù)驅(qū)動的故障診斷方法被廣泛應(yīng)用于智能工廠和運(yùn)行設(shè)備的異常檢測中[3].
深度學(xué)習(xí)是一種有效的數(shù)據(jù)特征提取方法,因為它可以解決淺層學(xué)習(xí)不能很好地提取大數(shù)據(jù)中涉及的非線性特征的問題.Jia等人構(gòu)造了深度神經(jīng)網(wǎng)絡(luò)模型從原始軸承振動信號中提取特征,然后對提取的特征利用Softmax進(jìn)行分類,以識別軸承中出現(xiàn)的故障類型[4].Lei等人使用堆疊式降噪自動編碼器(Stacked Denoising Auto Encoder,SDAE)來自適應(yīng)地提取行星齒輪箱的故障特征并進(jìn)行故障模式分類[5].Xia等人使用基于SDAE的深度神經(jīng)網(wǎng)絡(luò)提取更多具有代表性的特征,并提高了軸承故障診斷的準(zhǔn)確性[6].Tamilselvan和Wang使用深度信念網(wǎng)絡(luò)(Deep Belief Network,DBN)來集成多傳感器信息,從而能夠?qū)娇瞻l(fā)動機(jī)和電力變壓器進(jìn)行故障診斷[7].Gan等人使用DBN建立了分層的故障診斷模型,成功實現(xiàn)了故障模式分類和軸承故障定位[8].
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)可以直接從圖像和視頻等高維數(shù)據(jù)中提取敏感特征.在時域中將軸承的一維振動信號以矩陣或頻譜圖像的形式表示,則可以利用CNN的特征提取功能來提取更準(zhǔn)確的特征.Wang等人提出了一種基于多傳感器數(shù)據(jù)融合和瓶頸層優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)的旋轉(zhuǎn)機(jī)械故障識別新方法[9].結(jié)果表明,新穎的卷積神經(jīng)網(wǎng)絡(luò)具有更高的識別精度和更快的收斂速度.
雖然深度學(xué)習(xí)在故障診斷領(lǐng)域取得了一些成績,但仍然存在許多挑戰(zhàn).首先,大量高質(zhì)量的數(shù)據(jù)是基于深度學(xué)習(xí)的故障診斷方法取得良好性能的保證.因為災(zāi)難性故障數(shù)據(jù)或意外機(jī)械故障這類的故障數(shù)據(jù)數(shù)量很小,而正常數(shù)據(jù)的數(shù)量很大[10].所以在故障診斷領(lǐng)域,數(shù)據(jù)嚴(yán)重的不平衡的問題是非常普遍的問題.當(dāng)不同類型的故障數(shù)據(jù)嚴(yán)重不平衡時,基于深度學(xué)習(xí)的故障診斷性能可能很差[11].因此,不平衡數(shù)據(jù)特征提取成為基于數(shù)據(jù)驅(qū)動的故障診斷的重要研究領(lǐng)域.目前從不平衡數(shù)據(jù)中提取特征常用的方法可分為兩類.
第一類方法的重點(diǎn)是代價敏感的學(xué)習(xí)算法,讓網(wǎng)絡(luò)結(jié)構(gòu)對少數(shù)類更加敏感,以提高少數(shù)類樣本的故障診斷精度[12,13].但這些代價敏感的分類方法面臨兩個困難:1)錯誤分類的代價無法確定.2)通常很難找到一種有效的方法來評估代價敏感分類器的性能.
第二類方法的重點(diǎn)是使用一些數(shù)據(jù)預(yù)處理技術(shù),如過采樣和下采樣以減少類間的不平衡[14,15].一種簡單的過采樣方法是復(fù)制幾個樣本,以增加少數(shù)類中的樣本數(shù)量.然而,這樣容易出現(xiàn)過度擬合的問題.而對于下采樣預(yù)處理,它減少了大多數(shù)類的樣本數(shù),這不可避免的會造成信息丟失的問題.
生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)由Goodfellow等人在2014年提出[16].盡管GAN的歷史相對較短,但它已廣泛應(yīng)用于軸承故障診斷領(lǐng)域[17,18].Lee等人將GAN與自適應(yīng)綜合采樣方法相結(jié)合修正了過采樣技術(shù),與標(biāo)準(zhǔn)過采樣技術(shù)相比顯示了采用GAN的優(yōu)越性[19].Liu等人提出了一種稱為分類對抗自動編碼器的改進(jìn)GAN框架,該框架通過自動訓(xùn)練自動編碼器,并在潛在編碼空間上施加先驗分布.然后,鑒別器嘗試通過平衡示例與其預(yù)測的分類類別分布之間的相互信息來對輸入示例進(jìn)行聚類.在不同的信噪比和不同的電機(jī)負(fù)載下進(jìn)行的實驗表明,提出的模型更有利于學(xué)習(xí)數(shù)據(jù)的有用特征[20].與文獻(xiàn)[20]類似,受GAN的啟發(fā),Zhang等人提出了一種新的對抗式自適應(yīng)一維CNN模型[21](Adversarial adaptive 1-D convolutional neural networks,A2CNN).實驗表明,A2CNN具有很強(qiáng)的故障診斷能力和域間遷移能力.Xie等人提出了一種基于不平衡數(shù)據(jù)集的深度卷積生成對抗網(wǎng)絡(luò)[22](Deep Convolution Generating Adversarial Network,DCGAN)的故障診斷新方法.使用DCGAN模型平衡數(shù)據(jù)后,提取基于時域和頻域數(shù)據(jù)的統(tǒng)計特征,以訓(xùn)練SVM分類器進(jìn)行軸承故障分類.所提出的DCGAN方法的訓(xùn)練和測試準(zhǔn)確性均比其他類平衡方法(包括隨機(jī)過采樣,隨機(jī)欠采樣和合成少數(shù)過采樣技術(shù))表現(xiàn)出更好的性能.
盡管以上基于GAN的研究取得了一定的成績,但GAN的訓(xùn)練過程還存在一些不足:1)由于實際訓(xùn)練樣本量很小會導(dǎo)致模型產(chǎn)生一組無意義的噪聲,這樣GAN根本就不能學(xué)習(xí)真實數(shù)據(jù)的分布.2)GAN在訓(xùn)練過程中存在梯度消失問題,會導(dǎo)致模型訓(xùn)練失敗.若產(chǎn)生的樣本質(zhì)量較差,則利用GAN生成新樣本的方法來促進(jìn)故障診斷將會無效.
針對上述問題,本文設(shè)計了一種新的GAN生成器,來生成更多可判別的故障樣本.該生成器的輸入為由卷積神經(jīng)網(wǎng)絡(luò)提取的不平衡故障的特征,而不是故障樣本.生成器的訓(xùn)練損失函數(shù)中添加了故障特征和故障診斷誤差,而不是只以傳統(tǒng)GAN的數(shù)據(jù)分布一致性為損失項.
本文的后續(xù)內(nèi)容安排如下:第2部分簡要介紹了系統(tǒng)框架,第3部分介紹了改進(jìn)方法,第4部分是實驗結(jié)果及分析,最后一部分是總結(jié).
最近,CNN在實際應(yīng)用中取得了巨大的成功,特別是在圖像分類領(lǐng)域[23,24].深度卷積神經(jīng)網(wǎng)絡(luò)是一種由分層排列的可訓(xùn)練層組成,能夠?qū)W習(xí)有效的特征表示的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).
圖1 CWGAN模型的整體框架Fig.1 Framework of the CWGAN model
圖像分類任務(wù)中的典型卷積層包含輸入I和卷積核K,二維卷積定義如下:
(1)
由于本文要處理的數(shù)據(jù)是一維振動信號,將一維卷積應(yīng)用于每個卷積層.從(1)式看,當(dāng)m=1時,上式表示的就為一維卷積.具體來說,一維卷積可以用以下方程來計算:
(2)
對于分類問題,完全連接層應(yīng)該連接到輸出分類結(jié)果的最后一個卷積層上.完全連接層的定義為:
yl=φ(Wlyl-1+bl)
(3)
(4)
其中F是Frobenius范數(shù).
生成對抗網(wǎng)絡(luò)是一種強(qiáng)大的組合神經(jīng)網(wǎng)絡(luò),包括生成器(Generator,G)和鑒別器(Discriminator,D).生成器(G)和鑒別器(D)之間的對抗訓(xùn)練是通過公式(5)實現(xiàn)的:
(5)
其中E代表期望,Pr是真實數(shù)據(jù)樣本分布,Pg是生成數(shù)據(jù)樣本分布.原始GAN有一個缺點(diǎn):判別器訓(xùn)練地越好,生成器的梯度消失越嚴(yán)重.具體來說,對于一個樣本x,判別器損失函數(shù)為:
-Pr(x)logD(x)-Pg(x)log[1-D(x)]
(6)
對D(x)求導(dǎo),得到判別器最優(yōu)函數(shù):
(7)
代入生成器損失函數(shù)L(G)=-Ex:Pg[D(x)],得到JS散度:
(8)
在這樣的情況下,若Pr和Pg的交集為零時,則生成器的損失函數(shù)恒為零,其梯度會消失.針對這個問題,本文用Wasserstein距離來代替JS散度.使用Wasserstein距離的優(yōu)勢在于即使Pr和Pg兩個分布沒有重疊,依然能夠度量這兩者之間的距離.WGAN將訓(xùn)練D和G的問題變?yōu)椋?/p>
(9)
前兩項是Wasserstein距離估計的實現(xiàn),最后一項是網(wǎng)絡(luò)正則化的梯度懲罰項.通過實驗驗證,與原始的GAN相比,WGAN的收斂性更好.
在實際的工業(yè)機(jī)械運(yùn)行過程中,大多數(shù)情況下都是在
正常條件下運(yùn)行的.因此故障條件下的數(shù)據(jù)相對稀缺,這會導(dǎo)致訓(xùn)練深度模型的數(shù)據(jù)集不平衡.當(dāng)數(shù)據(jù)集不平衡時,很難基于傳統(tǒng)的深度學(xué)習(xí)算法構(gòu)造準(zhǔn)確的故障分類器.本文將CNN強(qiáng)大的特征提取功能與WGAN的數(shù)據(jù)生成功能相結(jié)合來解決此問題.
為了充分利用不平衡類樣本的信息,本文考慮了使用卷積神經(jīng)網(wǎng)絡(luò)來提取不平衡類樣本的特征,并將樣本特征損失添加至生成器的訓(xùn)練損失函數(shù)中.然后,對由生成器生成的特征進(jìn)行解碼以獲得生成的樣本.具體過程如下:
首先,將隨機(jī)數(shù)Z輸入卷積神經(jīng)網(wǎng)絡(luò)來生成Xfeaturefake.
hz=fθG1(Z)=σ1(WG1Z+bG1)
(10)
Xfeaturefake=fθG2(hz)=σ1(WG2hz+bG2)
(11)
其中θG1={WG1,bG1}和θG2= {WG2,bG2}分別用于連接卷積神經(jīng)網(wǎng)絡(luò)的輸入層和隱藏層,隱藏層和輸出層.WG1和WG2是權(quán)重矩陣,bG1和bG2是偏差,σ1是雙曲正切激活函數(shù).
為了獲得生成的樣本Xfake,需要對Xfeaturefake進(jìn)行解碼.本文使用自動編碼器的解碼網(wǎng)絡(luò)對Xfeaturefake進(jìn)行解碼.使用不平衡類的樣本Xreal訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)和自動編碼器.具體過程可以表示為等式(12)和式(13).
Xfeaturereal=fθCNN(Xreal)=σ1(WCNNXreal+bCNN)
(12)
(13)
其中Xfeaturereal是Xreal的特征向量,θCNN= {WCNN,bCNN}是CNN的特征提取網(wǎng)絡(luò)的參數(shù),而θAE={WTAE,bAE}是相應(yīng)的解碼器網(wǎng)絡(luò)參數(shù).解碼器在Xfeaturefake上的解碼過程可以表示為:
(14)
對于傳統(tǒng)的GAN,只需最小化下式中確保原始樣本Xreal和生成的樣本Xfake的分布一致性的交叉熵?fù)p失函數(shù)即可優(yōu)化生成器網(wǎng)絡(luò)參數(shù).
(15)
為了生成更多有助于故障診斷的合格故障樣本,本文使用特征向量Xfeaturereal和基于CNN的故障診斷判別器的故障診斷結(jié)果來指導(dǎo)生成器的訓(xùn)練.通過最小化公式(16)中定義的新?lián)p失函數(shù),可以優(yōu)化生成器的網(wǎng)絡(luò)參數(shù).
LG=Lg+Lfeature-error+Lfault-error
(16)
(17)
(18)
其中Lg可以指導(dǎo)生成器學(xué)習(xí)原始樣本的分布.Lfeature-error使生成器生成的樣本特征盡可能接近原始樣本的特征.Lfault-error使生成的樣本符合故障診斷的最終目的.將Lfeature-error和Lfault-error加入損失函數(shù)中將更有利于故障診斷的進(jìn)行.
本文的實驗環(huán)境配置為:i9-9900KF 3.60GHz的處理器和NVIDIA GTX2080Ti的圖形顯卡,實驗在Python3.6和TensorFlow1.14.0下進(jìn)行的.
為了驗證本文提出的卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化的生成對抗網(wǎng)絡(luò)的故障診斷方法的性能,使用西儲大學(xué)(CWRU)提供的公開軸承數(shù)據(jù)集.選取轉(zhuǎn)速為1730r/min、采樣頻率2kHz的驅(qū)動端軸承故障數(shù)據(jù)作為實驗數(shù)據(jù).軸承故障有3種類型:球形故障,內(nèi)圈故障和外圈故障,而每種故障類型的尺寸分別包含0.007英寸、0.014英寸和0.021英寸3種類型,加上正常的情況,因此總共有10種類型的故障標(biāo)簽.如表1所示.
表1 故障類型及對應(yīng)標(biāo)簽Table 1 Failure type and corresponding label
在為了全面評價模型的性能,本文選用準(zhǔn)確率、召回率、F1值和精確度作為模型的評價指標(biāo).4個指標(biāo)對應(yīng)的計算公式如式(19)到式(22)所示.
表2 真實標(biāo)簽和預(yù)測的混淆矩陣Table 2 Confusion matrix that counts true labels and predictions
(19)
(20)
(21)
(22)
本文通過ROC曲線下面積的大小(Area Under the Curve,AUC)進(jìn)行比較模型之間的準(zhǔn)確度差異.AUC度量了分類器分類樣本的性能,AUC的計算公式如下式所示.
(23)
其中,n0和n1分別表示反例和正例的個數(shù),ri為第i個反例在整個測試樣例中的排序.
為了證明WGAN的收斂性能優(yōu)于比原型網(wǎng)絡(luò)GAN,本文在生成器和鑒別器上分別進(jìn)行了對比試驗,如圖2所示和圖3所示.兩個損失值變化趨勢圖中的兩條曲線分別是GAN和WGAN生成器和鑒別器上損失函數(shù)值的變化趨勢圖.以鑒別器為例,從圖上可以看出兩個網(wǎng)絡(luò)的鑒別器的損失值在整個訓(xùn)練過程中都是逐漸減小的.在GAN的訓(xùn)練過程中,損失值的浮動變化較大,在訓(xùn)練迭代至100,000次時,損失值仍未收斂.但是,WGAN的損失值在訓(xùn)練過程中不斷減小,直到減小到接近于0時,網(wǎng)絡(luò)開始收斂,這反映了鑒別器的鑒別能力在訓(xùn)練過程中不斷增強(qiáng)的過程.
圖2 GAN和WGAN的生成器損失值變化趨勢Fig.2 GAN and WGAN generator loss value trends
圖3 GAN和WGAN的鑒別器損失值變化趨勢Fig.3 Trend of discriminator loss values for GAN and WGAN
為了評價數(shù)據(jù)生成的效果,本文從定性和定量兩個角度對原數(shù)據(jù)與生成數(shù)據(jù)進(jìn)行分析.以標(biāo)簽為4的故障類型為例,首先采用傅里葉變換對原始信號和GAN與CWGAN生成的信號在頻域進(jìn)行分析,結(jié)果如圖4所示.其中圖4(a)展示的為原始信號在時域與頻域上的變化,圖4(b)展示的為GAN生成的信號在時域與頻域上的變化,圖4(c)展示的為基于Wasserstein距離引導(dǎo)的卷積生成對抗網(wǎng)絡(luò)(Convolutional Wasserstein Generative Adversarial Network,CWGAN)生成的信號在時域與頻域上的變化.從圖中可以看出,CWGAN的生成信號效果優(yōu)于原始GAN的生成效果.
為了定量地分析原始數(shù)據(jù)和生成數(shù)據(jù)的差異,本文選取弗雷歇曲線距離函數(shù)計算原始信號曲線L與生成信號曲線W之間的弗雷歇距離F及相似度S=1/F.以標(biāo)簽為0、1、4、7四類故障為例,計算的結(jié)果如表3所示.從表3中可以看出,改進(jìn)模型監(jiān)督生成的信號相比與原始GAN監(jiān)督生成的信號與原始信號之間的相似度更大,驗證了本文提出的模型的有效性.
為了驗證本文所提出的算法的優(yōu)越性,在本節(jié)實驗中,對于每一次實驗,都隨機(jī)選取5類故障,并從這5類故障的原數(shù)據(jù)集中隨機(jī)選取500個樣本作為訓(xùn)練集,250個樣本作為驗證集,400個樣本作為測試集;對于另外的5類故障類型,每種故障類型中都隨機(jī)選取1000個樣本作為訓(xùn)練集,250個樣本作為驗證集,400個樣本作為測試集.對于不平衡數(shù)據(jù)集中的稀少數(shù)據(jù),除SVM方法外,其余各對比方法采取不同的增強(qiáng)策略,使每類故障的訓(xùn)練集數(shù)目都為1000個樣本.分別使用SVM、帶有過采樣的CNN、帶有下采樣的CNN、GAN-CNN與本文所提出的模型CWGAN進(jìn)行對比,相應(yīng)的結(jié)果如表4所示.
圖4 原始信號與生成信號Fig.4 Original and generated signals
表3 生成信號與原始信號的相似度度量Table 3 Similarity measure between the generated signal and the original signal
由表4可知,基準(zhǔn)模型SVM對于不平衡的數(shù)據(jù)集的分類效果較差,平均準(zhǔn)確度只有77%.分別使用兩種通用的數(shù)據(jù)增強(qiáng)方法對CNN分類器進(jìn)行增強(qiáng),通過下采樣增強(qiáng)方式增強(qiáng)的分類器的準(zhǔn)確度高于過采樣增強(qiáng)的分類器的準(zhǔn)確度.本文還進(jìn)行原始GAN生成數(shù)據(jù)與提出的模型之間的對比,結(jié)果表明,本文所提出的模型能更準(zhǔn)確的學(xué)習(xí)到數(shù)據(jù)的分布及特征,為分類任務(wù)提供更高質(zhì)量的生成數(shù)據(jù).
表4 不同算法之間的對比Table 4 Comparison between different algorithms
圖5 原始GAN-CNN與CWGAN準(zhǔn)確度對比Fig.5 Comparison of original GAN-CNN and CWGAN accuracy
本文提出的軸承故障診斷方法針對數(shù)據(jù)集中的10類故障模式,均能夠準(zhǔn)確地診斷出待識別信號所對應(yīng)的故障模式,而且平均診斷準(zhǔn)確度達(dá)到了96%.因此,本文中的軸承診斷方法對于軸承故障有著很好的識別效果.
本文針對不同類別的故障數(shù)據(jù)集不平衡時會影響神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)確度的問題,提出了一種卷積神經(jīng)網(wǎng)絡(luò)優(yōu)化GAN的深度學(xué)習(xí)故障診斷方法.通過實驗驗證,改變生成器的網(wǎng)絡(luò)結(jié)構(gòu)并在生成器神經(jīng)網(wǎng)絡(luò)模型參數(shù)訓(xùn)練中引入故障特征和診斷的誤差可以在一定程度上提升模型性能,可以較好地解決不平衡數(shù)據(jù)集分類問題.