孫龐博,符 琦,陳安華,蔣云霞
(湖南科技大學計算機科學與工程學院,湖南 湘潭 411201)
滾動軸承是機械設備中的核心部件之一,其運行狀況關系到設備能否安全高效地運行,而設備長時間運行在惡劣的工作環(huán)境中,使軸承成為了旋轉機械設備中最易損傷的部件之一[1]。故障診斷是提高機械使用可靠性,保障機械各部件長周期穩(wěn)定運行,減少因故障停機帶來經濟損失的一種重要技術。傳統(tǒng)的故障診斷方法借助專家領域知識從信號中人工提取特征,但由于信號的非線性、非穩(wěn)態(tài)等特點,特征的提取與選擇,以及診斷模型的建立與分析過程相當費時費力,因此,如何高效地提取有區(qū)分度的特征并對故障進行準確識別成為故障診斷領域的研究熱點和難點[2]。
近年來,作為人工智能技術之一的深度學習方法發(fā)展迅速,由于其可以從海量數據中自主學習并提取特征數據,現已成功地應用于智能故障診斷等領域。深度學習方法常用的網絡模型包括深度自編碼器 DAE(Deep AutoEncoder)、卷積神經網絡CNN(Convolutional Neural Network)、深度信念網絡DBN(Deep Belief Network)和深度殘差網絡DRN(Deep Residual Network)等。這些網絡模型通過對一維~三維輸入數據進行原始時域信號預處理,提升模型的診斷效果。Sun 等[3]和Zhao等[4]分別通過小波包分析將原始振動信號轉換為二維信號,并分別作為DRN模型和CNN模型的輸入,提高了模型的效果;Shao等[5]提出一種改進的DBN模型,實現對故障特征的自動提取,克服了傳統(tǒng)方法依賴手動設計特征的缺點。上述研究成果均在一定程度上提升了診斷模型的效果和故障分類的準確率,但也存在一些不足,如CNN模型需要對輸入數據進行適應性改進或數據轉換,DBN模型只能處理布爾量,無法直接處理實數域問題等,且大多數研究的實驗效果都是基于故障樣本充足的前提條件,在小樣本故障數據條件下,上述方法將因無法學習到足夠多的故障樣本數據而導致效率低下。
因此,本文將以小樣本故障數據為研究對象,基于變分自編碼器VAE(Variational AutoEncoder)[6]原理,提出一種基于半監(jiān)督VAE(SemiVAE)和LightGBM(Light Gradient Boosting Machine)分類模型的組合模型LSVAE(LightGBM-SemiVAE)。LSVAE可通過SemiVAE提取小樣本數據的潛在特征,再利用LightGBM網絡模型進行故障分類,并通過貝葉斯優(yōu)化提升性能,從而克服傳統(tǒng)VAE固有的生成的圖像模糊、區(qū)分性較差等缺點,提升機械設備故障診斷效率。
Figure 1 Structure of the variational autoencoder圖1 變分自編碼器結構
(1)
(2)
(3)
由于均值μ和標準差σ由神經網絡計算,在隨機采樣的過程中無法求導,但是可以對采樣的結果求導,因此可以通過反向傳播優(yōu)化網絡性能。
雖然VAE通過引入變分下界使其在計算的過程中避免了復雜邊界似然概率的計算,但也會帶來新的問題,如生成數據趨于模糊,導致分類模型準確率下降等。
LightGBM[8]是一種分布式的梯度提升決策樹增強框架,主要采用了直方圖(Histogram)算法[9]和受深度限制的葉子生長(Leaf-wise)策略[10]相結合的思想,通過T棵弱回歸樹線性組合為強回歸樹,如式(4)所示,最終實現對大數據集或小批量數據樣本的分類或回歸。
(4)
其中,F(x)為最終的輸出值,ft(x)為第t棵弱回歸樹的輸出值。
在LightGBM中,(1)Histogram算法將連續(xù)型的特征值數據離散化為k個值,以生成寬為k的直方圖,并將離散的訓練數據值作為索引積累到直方圖上,當遍歷結束后,通過直方圖的離散值來尋找決策樹的最優(yōu)分割點;(2)Leaf-wise策略在每次遍歷所有葉節(jié)點時,找到分裂增益最大的葉節(jié)點(如圖2中的黑色節(jié)點)繼續(xù)分裂過程,并通過增加最大深度限制來控制決策樹的訪問深度和葉節(jié)點數量,從而避免過擬合現象和降低模型復雜度。
Figure 2 Growth process of Leaf-wise strategy圖2 Leaf-wise策略生長過程
在進行數據并行的時候,LightGBM 可通過Histogram作差加速,一個葉節(jié)點的直方圖可以通過其父節(jié)點與兄弟節(jié)點的直方圖作差計算得到。利用該方法,LightGBM在構造葉節(jié)點時,可以通過少量的計算得到它兄弟葉節(jié)點的直方圖,使計算量大幅度降低。
LightGBM模型中有諸多需要手工調節(jié)的超參數,如最大樹深度、執(zhí)行分裂的最小信息增益、單位樹的葉節(jié)點數等,這些參數的合理設置決定了模型預測結果的擬合速率和準確率等性能指標。傳統(tǒng)的調參方法有隨機搜索和網格搜索[11,12]等。其中,網格搜索是固定步長的窮舉搜索法,對坐標空間中的每個點都進行計算,即可找到已知參數中的最優(yōu)參數。但是,若網格步長不夠小,網格搜索出來的最優(yōu)參數可能與真實最優(yōu)參數有較大距離;當步長足夠小時,雖然可以找到全局最優(yōu)參數,但是當坐標空間范圍較大時,又可能導致大量無效的計算,使計算時間呈指數級上升。由于LightGBM模型參數眾多,參數取值范圍較大,若采用網格搜索參數,需要進行大量的計算,所以網格搜索不適用,而隨機搜索又難以找到全局最優(yōu)解,因此需要新的方法來解決LightGBM超參數優(yōu)化問題。
具有主動優(yōu)化特性的貝葉斯優(yōu)化方法[13]對于復雜參數優(yōu)化問題是一個有效的解決辦法,該方法通過基于序列模型的優(yōu)化來尋找全局最優(yōu)解。貝葉斯優(yōu)化本質上是使用概率代理模型來擬合真實函數,并根據擬合結果選擇最優(yōu)評估點進行下一步的評估,進而減少非必要的采樣[14]。由貝葉斯定理可知(如式(5)所示),該方法利用已知信息對先驗概率進行修正,進而計算出后驗概率,同時可利用完整有效的歷史評估結果來提高搜索效率。
(5)
其中,Y表示參數模型的參數;P(Y)表示先驗概率模型;D為已觀測向量集合;P(Y|D)表示目標函數的代理,由似然分布P(D|Y)修正得到。在每一次迭代后,更新概率代理模型,通過最大化采集函數,計算出新的評估點,并將其作為輸入再次傳入系統(tǒng)進行迭代,獲取新的輸出,以此更新已觀測集合D和概率代理模型。
在參數模型中,常見的概率模型有高斯過程(Gaussian Processes)和樹狀結構Parzen估計方法TPE(Tree-structured Parzen Estimator)等,其中高斯過程具有高靈活性與可擴展性,在高斯過程中生成的多維高斯分布在理論上能夠擬合任意線性/非線性函數,故本文提出的面向小樣本數據學習的多分類算法中選擇高斯過程對代理進行建模;采集函數則是采用了基于提升的策略EI(Expected Improvement),其具有參數少、可平衡深度與寬度之間的關系等優(yōu)點。
在利用貝葉斯對LightGBM超參數優(yōu)化的過程中,需要選擇未知函數中的幾個已知點作為先驗事件,假設已選點服從多維高斯分布,根據高斯分布公式,可以計算出每一個點的均值與方差,即高斯過程由一個均值函數與一個半正定的協(xié)方差函數構成。假設x為輸入數據集數據,在給定均值向量與協(xié)方差矩陣2個參數的條件下,參數Y將服從如式(6)所示的聯合正態(tài)分布,以便對觀測值yn與yn+1之間的關系進行遞推計算。
(6)
若協(xié)方差矩陣(即核矩陣)記為K,因Y服從多正態(tài)分布,根據訓練集可以計算得最優(yōu)核矩陣,進而得出后驗估計測試集Y*。根據高斯過程的相關性質,觀測值集合y與預測函數值集合y*服從如式(7)所示的聯合分布[15]:
(7)
其中,K*=[k(x*,x1),k(x*,x2),…,k(x*,xn)],K**=k(x*,x*)。
計算出聯合分布后即可求預測數據y*的條件分布p(y*|y):
最后以均值作為預測數據的估計值,如式(8)所示:
(8)
組合預測模型LSVAE主要由半監(jiān)督變分自編碼器SemiVAE、多分類器LightGBM和貝葉斯超參數優(yōu)化器3部分組成,如圖3所示。
Figure 3 LSVAE model圖3 LSVAE模型
圖3中,SemiVAE利用標簽數據對小樣本空間數據進行半監(jiān)督學習,以獲得數據特征和隱變量Z;LightGBM基于隱變量Z的值進行多分類計算,并將結果反饋給SemiVAE計算損失,以便提高下一步訓練的準確率;貝葉斯優(yōu)化器則負責根據當前的計算結果對LightGBM的超參數進行自適應調整。
本文模型使用半監(jiān)督變分自編碼器(SemiVAE)的編碼過程得到均值向量μ和標準差向量σ,并通過重參數化技巧計算得隱變量Z,然后利用隱變量Z進行解碼(Decoder)得到重建數據,其網絡結構如圖4所示。
Figure 4 Network structure of LSVAE圖4 LSVAE模型網絡結構
4.1.1 編碼(Encoder)過程
SemiVAE所用編碼網絡的輸入長度為256的序列,通過折疊形成16*16的二維序列。網絡包括4個卷積層、2個池化層和1個全連接層。每層卷積層后會有一個ReLU激活函數。卷積核為3*3,步長為1。經過卷積后并伸展會形成長度為1 024的特征向量。再經過編碼網絡后,會得到長度為20的特征向量,即為變分自編碼器的均值向量與標準差向量,通過變換即可得到隱變量Z。
4.1.2 解碼(Decoder)過程
解碼網絡對應編碼網絡,參數規(guī)格相同,即4個反卷積層、2個池化層,也采用ReLU激活函數,通過反卷積將低維特征映射成高維特征,再映射到低維度空間,最后輸出長度為256(16*16)的序列。
損失函數能夠提升準確率,降低過擬合程度以及對抗欠擬合,所以損失函數的選擇對計算結果有很大的影響。本文對損失函數的定義如式(9)所示。
Loss=κxeχxe+κklχkl+κreχre
(9)
其中,χxe表示交叉熵損失,χkl表示正則項損失,χre表示重建損失,超參數分別預設為κxe=2,κkl=1,κre=2。損失函數涉及到的交叉熵用于對抗模型趨近于模糊的懶惰性,提高準確率;KL散度為了增加泛化能力,顯式建模隱變量分布。
4.2.1 交叉熵損失χxe
在半監(jiān)督下,交叉熵用來衡量預測分布與真實分布之間的差異,在分類不明顯的情況下可以對抗生成數據趨于模糊的缺點,使得輸入數據對應的潛變量更具有區(qū)分性,具體計算公式如式(10)所示:
(10)
其中,xi表示輸入數據集X的第i組,p(xi)表示真實分布,q(xi)表示預測分布。
4.2.2 正則項損失χkl
KL散度作用是比較2個概率分布的接近程度,SemiVAE與標準自編碼器的區(qū)別在于對編碼器添加約束,強迫它服從單位正態(tài)分布,進而限制隱變量Z空間的稀疏性,提高了泛化能力。相關計算公式如式(11)所示:
(11)
其中,σi表示標準差的第i個元素,μi表示L2正則項,J表示數據量。
4.2.3 重建損失χre
重建損失是指重建圖像與真實圖像的差異,通常表示為在多維空間中的歐幾里得距離的平方,即均方誤差,如式(12)所示:
(12)
其中,x′i為重建圖像,xi為真實圖像。
LSVAE模型所用算法偽代碼如算法1所示。
算法1LSVAE偽代碼
1.fori=1,2,…,epochsdo
2.SampleXtin minibatch;
4.Sampling:Zt←μZt+ε⊙σZ,ε~N(0,1);
5./*μZt是Zt的均值向量,σZt是Zt的標準差向量,Zt為第t次迭代的隱變量,ε采樣于標準正態(tài)分布N(0,1)*/
6.Decoder:μXt←fθ(Zt);//μXt是Xt的均值向量
7.Compute cross entropy loss:
9.Compute relative entropy loss:
11.Compute reconstruction loss:
13.Fuse the three loss:
14.Loss=κxeχxe+κklχld+κreχre;
15.Back-propagate the gradients:
16.g←compute gradientθ,γ(θ,;Xt,ε);
18. //until maximum iteration reached
19.endfor
5.1.1 數據源說明
本文使用的數據集來自凱斯西儲大學CWRU(Case Western Reserve University)滾動軸承數據中心[16],該中心提供對軸承和軸承故障的測試數據,是世界上公認且流行的軸承故障診斷數據集。
CWRU滾動軸承數據的實驗平臺由一個1.5 KW的電動機(左)、一個扭矩傳感器及編碼器(中)、一個功率測試計(右)和電子控制器(未顯示)組成,如圖5所示。待檢測的軸承支撐著電機的轉軸,風扇端軸承型號為SKF6203,采樣頻率為12 KHz,驅動端的軸承型號為SKF6205,采樣頻率分別為12 KHz和48 KHz。
Figure 5 Rolling bearing fault data acquisition experimental bench圖5 滾動軸承數據采集實驗平臺
CWRU軸承數據集中的滾動軸承有4種狀態(tài),分別是正常狀態(tài)、內圈故障狀態(tài)、外圈故障狀態(tài)和滾動體故障狀態(tài)。軸承的損傷來源于電火花加工時造成的單點損傷。SKF軸承用于檢測3種直徑為0.177 8 mm,0.355 6 mm,0.533 4 mm的損傷,NTN軸承用于檢測直徑為0.711 2 mm,1.016 mm的損傷。將特殊加工過的故障軸承裝入實驗平臺中,分別在0 hp, 1 hp, 2 hp和3 hp(hp為馬力)的電機負載下記錄振動加速度信號數據,共獲得8個正常樣本、53個外圈損傷樣本、23個內圈損傷樣本和11個滾動體損傷樣本。
5.1.2 數據集預處理
本實驗將CWRU提供的軸承數據依據電機運行馬力的不同分成3個數據集,每個數據集包含一個正常軸承數據、0.177 8 mm的3類故障數據和0.355 6 mm的3類故障數據,共7類數據,如表1所示。分別按照長度為128,256和512個數據點進行截取,并對其采用Min-Max線性歸一化處理后,利用傅里葉變換為雙邊幅度譜數據,以便進行后續(xù)算法驗證。
訓練樣本使用了數據集增強技術,一組實驗數據共包含了電機負載分別在1 hp, 2 hp和3 hp狀態(tài)下采集的3類數據,其中訓練樣本數為每一類數據40*s個(s∈{1,2,4,8}),測試集樣本包含1 000個數據,且互不相交。
本文使用Python語言和TensorFlow開源框架[17]1.9版本搭建了模型開發(fā)與測試環(huán)境,模型數據流過程如圖3所示。輸入數據首先進入編碼器,編碼為潛變量,并進入分類器,然后解碼,計算損失值,更新各參數,最后再輸入測試數據測試模型效果。
為觀察數據的數據量對結果的影響,按數據量和數據長度的不同,分別將本文與經典的KNN、CNN模型進行了測試對比,實驗所用數據總量不超過7*80*512個樣本。實驗將測試10組數據分別改變每類數據量和單位數據長度進行測試對比,分組命名規(guī)則為:類別數*每類數量*單位數據長度l,對比分析的數據維度以l(l∈{128,256,512})進行替代計算,分別為7*40*l,7*80*l,7*l*128,7*l*256,如圖6a~圖6d所示,測試規(guī)格如表2所示,編碼器參數預設值如表3所示。
從圖6的對比分析可知,傳統(tǒng)網絡模型KNN
Table 2 Grouping format of data sets 表2 數據集分組規(guī)格
Table 3 Encoder parameter default values表3 編碼器參數預設值
和CNN在小樣本空間較小的情況下,對軸承故障分類診斷的準確率均低于LSVAE的,這主要是本文所使用的軸承數據是多組數據相關性較大的一維時序信號,而一般情況下CNN在二維數據上的表現會更好一些,如果將一維信號折疊,再將網絡結構更改一下,確實可以提高準確率,但是模型相應地也會變復雜,進而導致需要的數據量增加,所以在小樣本學習中CNN的表現難以達到預期;KNN可以在高維度空間中根據距離進行有效聚類分析,但是對于具有較大數據相關性的時間序列數據,難以利用距離直接進行特征提取和分析。本文提出的LSVAE通過SemiVAE迭代過程自適應進行特征提取與學習,同時在一定程度上避免了欠擬合的情況,再利用貝葉斯優(yōu)化超參數改善過擬合的情況,從而在小樣本數據學習中表現出了較優(yōu)越的性能。
Table 1 Grouping description of Data Sets表1 數據集分組描述
Figure 6 Comparison of different network models圖6 不同網絡模型對比
針對旋轉機械設備中滾動軸承部件的故障數據分析與分類診斷問題,本文提出了一種結合變分自編碼器與LightGMB分類模型的小樣本學習模型LSVAE,并通過貝葉斯超參數優(yōu)化增強性能,使得模型可以通過訓練小批量的數據,得到良好的分類結果。實驗結果表明:
(1)LSVAE模型可以從較小批量的時序信號中提取出有效的故障特征,且結果有著較高的準確率。
(2)相比于其他深度神經網絡模型(CNN等),LSVAE在小批量數據測試中結果更穩(wěn)定。