郭 森,王大為,張紹偉,張學(xué)成
(1.上海機(jī)電工程研究所,上海 201109;2.陸軍裝備部駐上海地區(qū)第三軍代室,上海 201109)
伴隨著機(jī)器學(xué)習(xí)等人工智能技術(shù)的飛速發(fā)展,智能化技術(shù)在軍事裝備中的應(yīng)用也在不斷深入[1]。隱馬爾科夫模型(hidden Markov model,HMM)自20世紀(jì)70年代末由Baum創(chuàng)建以來[2],因其強(qiáng)大的識別能力在語音識別領(lǐng)域取得了巨大成功[3],并逐漸在圖像處理、設(shè)備狀態(tài)識別、故障診斷等模式識別方面應(yīng)用[4-7]。但是,將HMM應(yīng)用于裝備的故障診斷過程當(dāng)中出現(xiàn)了一些不足,主要是由于該模型用于解決學(xué)習(xí)問題的Baum-Welch算法在參數(shù)尋優(yōu)時會出現(xiàn)收斂到局部極值的情況,從而導(dǎo)致模型診斷結(jié)果精度不夠[8-9]。
針對這一問題,許多學(xué)者引入群體智能優(yōu)化算法來對HMM模型參數(shù)訓(xùn)練過程進(jìn)行優(yōu)化,提高學(xué)習(xí)效率及精度。文獻(xiàn)[8]將粒子群算法(PSO)引入HMM的參數(shù)優(yōu)化過程,實(shí)現(xiàn)全局優(yōu)化的目的,并將改進(jìn)后的模型應(yīng)用到對報警信息識別和預(yù)測中;文獻(xiàn)[10]將鳥群算法(BSA)與Baum-Welch算法相結(jié)合,可以有效跳出局部極值點(diǎn),相對傳統(tǒng)的HMM訓(xùn)練算法能夠取得更好的訓(xùn)練結(jié)果;文獻(xiàn)[11]提出一種帶極值擾動的自適應(yīng)粒子群算法,將改進(jìn)后的粒子群算法引入到HMM的訓(xùn)練中,對其初始參數(shù)進(jìn)行了優(yōu)化,結(jié)果表明改進(jìn)后的HMM具有較高的識別能力。
本文提出一種基于自適應(yīng)粒子群算法優(yōu)化的HMM方法,在PSO算法中增加慣性權(quán)重因子,通過動態(tài)控制慣性權(quán)重因子及加速因子的大小,改進(jìn)PSO算法的全局搜索能力,提高尋優(yōu)效率。并且,利用改進(jìn)的PSO算法對HMM參數(shù)學(xué)習(xí)過程進(jìn)行優(yōu)化。將其應(yīng)用到油機(jī)電站的故障診斷當(dāng)中,與傳統(tǒng)方法相比,診斷的效率和精度得到了有效地提升。
PSO算法是一種用于非線性函數(shù)優(yōu)化的集群智能優(yōu)化算法[12],它在解決大規(guī)模非線性問題中具有更高的優(yōu)化效率和更好的優(yōu)化結(jié)果。該算法將各個備選解稱為“粒子”,全部的粒子集合稱作“種群”。PSO算法首先生成初始種群,即在可行解空間當(dāng)中隨機(jī)初始化生成一群粒子,并根據(jù)要優(yōu)化的目標(biāo)函數(shù)確定與之相對應(yīng)的適應(yīng)度值。優(yōu)化過程就是初始種群在可行解空間內(nèi)部飛行,并尋找最大或最小適應(yīng)度值的過程,粒子飛行的方向與距離由速度決定。
其數(shù)學(xué)過程描述如下:
設(shè)搜索空間維數(shù)為D,總粒子數(shù)為N,第i個粒子的位置表示為向量xi=(xi1,xi2,…,xiD),第i個粒子當(dāng)前搜索到的最優(yōu)位置為pbesti=(Pi1,Pi2,…,PiD),整個粒子群當(dāng)前搜索到的最優(yōu)位置為gbest=(g1,g2,…,gD),第i個粒子的位置變化率(即速度)為向量vi=(vi1,vi2,…,viD),則粒子i的d維速度和位置可按照式(1)、(2)進(jìn)行迭代更新:
vid(t+1)=vid(t)+c1r1(pid(t)-xid(t))+
c2r2(gd(t)-xid(t))
(1)
xid(t+1)=xid(t)+vid(t+1),1≤i≤N,1≤d≤D
(2)
式中:c1、c2為正數(shù),稱作加速因子。c1調(diào)節(jié)粒子飛向自身最好位置方向上的步長;c2調(diào)節(jié)粒子飛向全局最好位置方向上的步長。r1、r2為[0,1]的隨機(jī)數(shù)。
通過比較更新前后各粒子的適應(yīng)度值,對單個粒子最優(yōu)位置及全局最優(yōu)位置進(jìn)行更新,直到滿足迭代終止條件。
與其它群體智能算法相比,PSO算法概念簡單,易于編程實(shí)現(xiàn)求解,但在優(yōu)化過程中同樣會面臨易于陷入局部極值點(diǎn)、搜索精度不高、收斂速度慢的問題。為此引入慣性權(quán)重因子ω,對粒子飛行速度進(jìn)行調(diào)節(jié),提高PSO算法的收斂速度及全局搜索能力,使其能夠快速得到全局最優(yōu)結(jié)果[13]。慣性權(quán)重因子ω對速度的調(diào)節(jié)原理如式(3)所示:
vid(t+1)=ωvid(t)+c1r1(pid(t)-xid(t))+
c2r2(gd(t)-xid(t))
(3)
由式(3)可以看出,引入的ω代表的含義主要對上一代粒子狀態(tài)對當(dāng)前粒子狀態(tài)的影響程度,ω取值越大,則上一代粒子狀態(tài)對與當(dāng)前粒子的狀態(tài)影響越大;反之,影響則越小。同時,算法的全局搜索能力也會隨著ω的增大而提高。因此,通過控制慣性權(quán)重因子ω的大小,可以改進(jìn)粒子群算法的全局搜索能力,當(dāng)ω值取為常數(shù)1時,式(3)即退化為基本粒子群算法的速度更新公式。
為了進(jìn)一步提高粒子群算法的優(yōu)化性能,提升算法效率,采用基于距離控制因子的自適應(yīng)調(diào)整策略來動態(tài)修正慣性權(quán)重ω及加速因子c1、c2,原理如式(4)所示:
(4)
式中:disti表示各粒子到全局最優(yōu)值的平均距離;max(dist)表示至今平均距離的最大值;cont表示距離控制因子,即各粒子到全局最優(yōu)點(diǎn)的平均距離與平均距離最大值的比值。
HMM類似于一階Markov過程,不同點(diǎn)是HMM是一個雙內(nèi)嵌式隨機(jī)過程,即HMM是由兩個隨機(jī)過程組成,一個是狀態(tài)轉(zhuǎn)移序列,它對應(yīng)著一個單純Markov過程;另一個是每次轉(zhuǎn)移時輸出的符號組成的符號序列。其中,狀態(tài)轉(zhuǎn)移隨機(jī)過程是不可觀測的,只能通過另一個隨機(jī)過程的輸出觀察序列觀測。
HMM可以通過5個參數(shù)來進(jìn)行定量描述:
(1)系統(tǒng)狀態(tài)空間Qt∈(q1,q2,…,qN),其中N為狀態(tài)數(shù)目;
(2)觀測值序列Ot∈(o1,o2,…,oM),其中M為系統(tǒng)觀測值數(shù)目;
(3)系統(tǒng)初始狀態(tài)概率分布π=(π1,π2,…,πN);
(4)系統(tǒng)狀態(tài)轉(zhuǎn)移矩陣A={aij}N×N,其中aij=P(Qt+1=qj|Qt=qi),1≤i,j≤N;
(5)觀測值轉(zhuǎn)移概率矩陣B={bjk}N×M,其中bjk=P(Ot=Vk|Qt=qj),1≤j≤N,1≤k≤M。
通常HMM模型記為λ=(N,M,π,A,B),簡記為λ=(π,A,B)。一部分隨機(jī)過程由參數(shù)π和A表示,另一部分用參數(shù)B來表示。
在實(shí)際工程應(yīng)用當(dāng)中,HMM主要解決三個問題:評估問題、解碼問題和學(xué)習(xí)問題。評估問題主要解是在模型λ和觀測序列O已知的條件下,計(jì)算在此模型下產(chǎn)生該觀測序列的概率P(O|λ),可以利用Forward-Backward算法進(jìn)行求解;解碼問題主要是在模型λ和觀測序列O已知的條件下,確定此模型下產(chǎn)生相應(yīng)觀測序列的最優(yōu)狀態(tài)序列Q,可以利用Viterbi算法加以解決;學(xué)習(xí)問題即HMM模型的參數(shù)尋優(yōu),通過對多個觀測序列O進(jìn)行學(xué)習(xí),對HMM模型參數(shù)λ=(π,A,B)進(jìn)行調(diào)整使得P(O|λ)最大,可以利用Baum-Welch算法進(jìn)行訓(xùn)練。
解決HMM參數(shù)學(xué)習(xí)問題的Baum-Welch算法是通過迭代逐步逼近極大化似然函數(shù)的下界實(shí)現(xiàn)的,它只能保證收斂到對數(shù)似然函數(shù)序列的局部極值點(diǎn),而非全局極值點(diǎn)。在HMM理論中,通過訓(xùn)練數(shù)據(jù)集對HMM參數(shù)進(jìn)行訓(xùn)練時,不同的初始模型參數(shù)對訓(xùn)練結(jié)果有較大影響,在初始模型參數(shù)適當(dāng)時才能求得與全局最優(yōu)值接近的局部極大值。較其他參數(shù)而言,觀測值概率矩陣的初始值對訓(xùn)練結(jié)果有較大影響[14-15],故使用優(yōu)化算法對其初值選取進(jìn)行優(yōu)化。
利用改進(jìn)的PSO算法對隱馬爾科夫模型初始參數(shù)優(yōu)化的流程如圖1所示。優(yōu)化過程中,每一個粒子代表一個初始參數(shù)即觀測值轉(zhuǎn)移概率矩陣B,選擇Forward-Backward算法作為適應(yīng)度函數(shù),計(jì)算每個粒子的輸出似然概率值P(O|λ)作為粒子適應(yīng)度值,并據(jù)此來選擇更優(yōu)的個體粒子,選取的原則為:適應(yīng)度值越大的粒子位置越優(yōu)。利用Forward-Backward算法計(jì)算P(O|λ)原理如式(5)所示:
圖1 HMM初始參數(shù)優(yōu)化流程Fig.1 Flowchart of optimization for HMM initial parameter
(5)
式中:T為觀測序列時間長度;αt(i)通過前向算法迭代計(jì)算;βt(i)通過后向算法迭代計(jì)算。
通過對比每次迭代后各粒子的適應(yīng)度值來對粒子群個體最優(yōu)位置pbest和全局最優(yōu)位置gbest進(jìn)行更新,粒子的速度按式(3)進(jìn)行自適應(yīng)更新,根據(jù)粒子速度來更新整個粒子群,反復(fù)迭代直至滿足終止條件,得到最優(yōu)的初始觀測值轉(zhuǎn)移概率矩陣。
在改進(jìn)粒子群優(yōu)化算法的基礎(chǔ)上,本文提出一種基于自適應(yīng)PSO-HMM的故障診斷方法,故障診斷流程如圖2所示。故障診斷主要分為兩個方面,一方面是不同故障狀態(tài)下HMM模型的建立,另一方面是利用建立的不同故障模型對待診斷數(shù)據(jù)進(jìn)行處理,得到診斷結(jié)果。
圖2 基于自適應(yīng)PSO-HMM的故障診斷流程Fig.2 Flowchart of fault diagnosis based on adaptive PSO-HMM
油機(jī)電站故障診斷的數(shù)據(jù)來源于不同狀態(tài)下的振動信號,油機(jī)振動時產(chǎn)生的噪聲對有用信號有所掩蓋。因此,在提取特征之前需要對柴油機(jī)故障振動信號進(jìn)行有效的降噪處理。
而且由于油機(jī)電站故障發(fā)生時,常常會伴隨著短時脈沖、間斷等突發(fā)性異常信號的出現(xiàn),基于小波分解等常用的信號降噪方法在處理這些異常信號時,計(jì)算復(fù)雜,費(fèi)時費(fèi)力。研究表明,在分析突發(fā)性故障信號時,數(shù)學(xué)形態(tài)濾波法更有優(yōu)勢[16]。因此,采用多尺度形態(tài)濾波器對油機(jī)電站的振動數(shù)據(jù)進(jìn)行去噪預(yù)處理。
油機(jī)運(yùn)行過程中的振動信號含有多形式、多特征、多征兆信息,這些信息蘊(yùn)含在多個特征空間內(nèi),而所采集的振動信號只是一維的時域信息。為了全面反映油機(jī)的特征,從多個特征域提取設(shè)備的振動特征,主要包括時域范圍內(nèi)的均值、方差、均方根值、波形指標(biāo)、峰值指標(biāo)、脈沖指標(biāo)、裕度指標(biāo)、峭度指標(biāo)、歪度指標(biāo)等,頻域范圍內(nèi)的頻率、幅值等,時頻域的小波包能量譜等,總共37維特征。
故障特征集構(gòu)造完畢之后,為提升算法效率,引入核主元分析(KPCA)方法對其進(jìn)行維數(shù)約簡,融合多個復(fù)雜性能指標(biāo),刪除冗余,保留反應(yīng)故障狀態(tài)的主要特征,減少模型訓(xùn)練時間。將篩選后的故障特征集進(jìn)行歸一化處理并量化,完成HMM模型訓(xùn)練之前的數(shù)據(jù)準(zhǔn)備工作。
HMM模型訓(xùn)練過程主要有兩部分,一是利用自適應(yīng)PSO算法對模型初始參數(shù)進(jìn)行優(yōu)化,二是根據(jù)參數(shù)初始化結(jié)果采用Baum-Welch算法對模型參數(shù)進(jìn)行尋優(yōu),得到油機(jī)電站不同狀態(tài)的HMM模型。
完成油機(jī)電站各狀態(tài)下HMM模型的建立之后,即可以針對實(shí)測數(shù)據(jù)進(jìn)行診斷,根據(jù)模型的輸出結(jié)果來判斷油機(jī)的故障類型。
根據(jù)圖2故障診斷流程,待診斷油機(jī)振動數(shù)據(jù)也需要進(jìn)行預(yù)處理進(jìn)行去噪,之后提取故障特征并降維量化處理,形成待診斷數(shù)據(jù)集。將經(jīng)降維量化之后的特征集輸入至經(jīng)過訓(xùn)練的各狀態(tài)HMM模型,采用Forward-Backward算法計(jì)算各模型輸出結(jié)果即對數(shù)似然概率值,選擇似然概率值較大的模型對應(yīng)油機(jī)待診斷數(shù)據(jù)所屬的故障模式,完成故障診斷。
本文采用油機(jī)電站實(shí)際振動數(shù)據(jù)對上述自適應(yīng)PSO-HMM故障診斷方法進(jìn)行仿真,試驗(yàn)選用康明斯EQB190-20型號油機(jī),在空載情況下設(shè)置正常、供氣不足、進(jìn)氣門間隙異常三種狀態(tài),采用加速度傳感器采集油機(jī)缸蓋振動信號,采樣頻率設(shè)置為20.48 kHz,采集的數(shù)據(jù)包括三種狀態(tài)下各500組振動數(shù)據(jù)。在此基礎(chǔ)上分析自適應(yīng)PSO算法優(yōu)化性能及優(yōu)化之后HMM故障診斷的精度。仿真試驗(yàn)平臺采用i5-8500處理器,內(nèi)存8 GB,操作系統(tǒng)為64位Windows 7系統(tǒng)。
首先對各組數(shù)據(jù)先進(jìn)行高通濾波,然后采用多尺度數(shù)學(xué)形態(tài)濾波方法進(jìn)行去噪,結(jié)果示例如圖3。提取混合域振動特征,并使用KPCA方法對混合域特征進(jìn)行降維和歸一化處理,其3維特征累積貢獻(xiàn)率即達(dá)到90%以上,如圖4所示,三種狀態(tài)基本能夠分離。將主元累積貢獻(xiàn)率設(shè)置為96%時,混合域特征維度降低為7維,繼續(xù)增加維度,累積貢獻(xiàn)率并無明顯提高。因此,選擇此7維特征作為融合后的故障樣本進(jìn)行量化處理,隨機(jī)選取各狀態(tài)400組樣本作為訓(xùn)練數(shù)據(jù)用于HMM模型訓(xùn)練,剩余樣本作為待診斷數(shù)據(jù)用于測試模型分類準(zhǔn)確率。
圖3 振動信號降噪結(jié)果Fig.3 Result of noise reduction for vibration signal
圖4 KPCA降維結(jié)果Fig.4 Result of dimension reduction by KPCA
初始觀測值轉(zhuǎn)移概率矩陣B的取值對隱馬爾科夫模型的訓(xùn)練結(jié)果會產(chǎn)生較大影響,因此將HMM模型的初始參數(shù)B作為算法優(yōu)化目標(biāo),以Forward-Backward算法作為適應(yīng)度函數(shù),計(jì)算每個粒子的輸出似然概率值作為粒子適應(yīng)度值。采用降維量化后的訓(xùn)練數(shù)據(jù)集進(jìn)行算法的優(yōu)化,并與標(biāo)準(zhǔn)PSO算法優(yōu)化結(jié)果進(jìn)行對比。兩種算法對不同狀態(tài)的模型初始參數(shù)優(yōu)化結(jié)果如圖5所示。
圖5 各狀態(tài)模型參數(shù)優(yōu)化訓(xùn)練曲線Fig.5 Training curve of parameter optimization
從幾種不同狀態(tài)的模型參數(shù)優(yōu)化曲線可以看出,與標(biāo)準(zhǔn)PSO算法相比,無論是在最終的適應(yīng)度收斂值上,還是收斂速度方面,經(jīng)過自適應(yīng)改進(jìn)的PSO算法表現(xiàn)都更加優(yōu)異,證明自適應(yīng)PSO算法的全局尋優(yōu)能力要優(yōu)于標(biāo)準(zhǔn)的PSO算法。
將選取的各狀態(tài)訓(xùn)練數(shù)據(jù)集量化之后用于HMM模型訓(xùn)練,HMM模型狀態(tài)數(shù)設(shè)置為3,量化級數(shù)設(shè)置為25,初始狀態(tài)轉(zhuǎn)移概率矩陣隨機(jī)選取。將經(jīng)過自適應(yīng)PSO算法優(yōu)化的結(jié)果作為Baum-Welch算法的初始參數(shù),分別對油機(jī)正常狀態(tài)、供氣不足、進(jìn)氣門間隙異常的HMM模型進(jìn)行訓(xùn)練。
訓(xùn)練完成之后,將剩余300組測試數(shù)據(jù)集分別輸入已訓(xùn)練的各狀態(tài)HMM模型,對訓(xùn)練的模型識別精度進(jìn)行測試,并將測試結(jié)果與經(jīng)標(biāo)準(zhǔn)PSO算法優(yōu)化的HMM模型及傳統(tǒng)HMM模型分類結(jié)果進(jìn)行對比。傳統(tǒng)HMM、標(biāo)準(zhǔn)PSO-HMM及自適應(yīng)PSO-HMM的輸出似然概率值如圖6~8所示。
圖6 傳統(tǒng)HMM算法輸出結(jié)果Fig.6 Output of traditional HMM
圖7 標(biāo)準(zhǔn)PSO-HMM算法輸出結(jié)果Fig.7 Output of standard PSO-HMM
圖8 自適應(yīng)PSO-HMM算法輸出結(jié)果Fig.8 Output of adaptive PSO-HMM
根據(jù)輸出似然概率值最大原則確定測試樣本的故障診斷結(jié)果,并計(jì)算各算法的識別精度。同時采用支持向量機(jī)(SVM)算法用相同數(shù)據(jù)進(jìn)行訓(xùn)練、測試,將診斷結(jié)果與自適應(yīng)PSO-HMM算法識別結(jié)果進(jìn)行對比分析。各算法分類正確率如表1所示,自適應(yīng)PSO-HMM算法識別效果最優(yōu),標(biāo)準(zhǔn)PSO-HMM和經(jīng)典SVM算法次之,傳統(tǒng)HMM算法識別能力最弱。從中可以看出,引入群體智能優(yōu)化算法能夠提高傳統(tǒng)HMM模型的診斷精度。并且經(jīng)過自適應(yīng)改進(jìn)粒子群算法優(yōu)化的HMM方法對油機(jī)電站的故障診斷精度要比標(biāo)準(zhǔn)PSO-HMM算法精度更高,其中油機(jī)正常狀態(tài)的分類正確率提升了10%,供氣不足的分類準(zhǔn)確率提升了1%,進(jìn)氣門間隙異常的分類準(zhǔn)確率提升了14%。整體分類準(zhǔn)確率達(dá)到97.3%,與標(biāo)準(zhǔn)PSO-HMM相比提高了8.3%。此外,由于經(jīng)典SVM算法中核函數(shù)及懲罰因子等參數(shù)的選擇對模型診斷結(jié)果影響較大,因而模型識別能力要弱于自適應(yīng)PSO-HMM算法。
表1 不同算法分類結(jié)果對比Tab.1 Diagnosis result of different algorithms
不同算法訓(xùn)練耗時如表2所示,由于群體智能優(yōu)化算法的引入,HMM訓(xùn)練耗時有所增加,但前期對油機(jī)振動數(shù)據(jù)進(jìn)行特征提取后采用KPCA方法進(jìn)行降維處理,有效提升后續(xù)算法的訓(xùn)練效率,一定程度上降低了由于自適應(yīng)PSO算法所帶來的模型訓(xùn)練時間上的影響。而且,對標(biāo)準(zhǔn)PSO算法進(jìn)行自適應(yīng)改進(jìn)后,能夠更快找到全局最優(yōu)值,有效減少算法迭代次數(shù),縮短訓(xùn)練時長。模型訓(xùn)練完畢,采用相同數(shù)據(jù)集進(jìn)行測試時,各算法的測試用時相差不大,均在5 s左右,說明算法的實(shí)用性。
表2 不同算法耗時對比Tab.2 Execution time of different algorithms
本文提出了一種基于自適應(yīng)粒子群優(yōu)化的HMM故障診斷方法,對標(biāo)準(zhǔn)PSO算法進(jìn)行了自適應(yīng)改進(jìn),在此基礎(chǔ)上對HMM初始參數(shù)進(jìn)行了優(yōu)化,并給出了基于自適應(yīng)PSO-HMM的故障診斷流程。為了驗(yàn)證該方法的有效性,利用油機(jī)電站不同狀態(tài)的實(shí)測振動數(shù)據(jù),將自適應(yīng)PSO-HMM與傳統(tǒng)診斷方法進(jìn)行了對比,得到以下結(jié)論:
(1)經(jīng)過改進(jìn)的自適應(yīng)PSO算法較標(biāo)準(zhǔn)算法有更優(yōu)的全局搜索能力和更快的收斂速度,模型訓(xùn)練耗時明顯降低。
(2)自適應(yīng)PSO-HMM的診斷精度比標(biāo)準(zhǔn)PSO-HMM更高,整體分類準(zhǔn)確率能夠達(dá)到97.3%,提高8%以上。