郭繼峰 李忠志 張國強(qiáng) 房德智 李艷娟
(東北林業(yè)大學(xué)信息與計(jì)算機(jī)工程學(xué)院 黑龍江 哈爾濱 150040)
卡爾曼濾波是一種基于最小方差下的最優(yōu)估計(jì)方法。在系統(tǒng)模型、過程噪聲和測量噪聲的統(tǒng)計(jì)特性都已知的條件下,輸入觀測量、輸出估計(jì)值,并且觀測更新與時(shí)間變化具有一定聯(lián)系,通過這一聯(lián)系卡爾曼濾波可以不斷地進(jìn)行遞推和對估計(jì)進(jìn)行修正,主要解決的是隨機(jī)線性問題[1]??柭鼮V波解決的是對線性系統(tǒng)的估計(jì),主要算法設(shè)計(jì)如下,其中X(k+1)為k+1時(shí)刻目標(biāo)狀態(tài)變量,f(k)為狀態(tài)轉(zhuǎn)移矩陣,G(k)為噪聲驅(qū)動(dòng)矩陣,Z(k+1)為k+1時(shí)刻觀測向量,H(k)為觀測矩陣,R(k)為k時(shí)刻噪聲協(xié)方差矩陣。
(1) 狀態(tài)估計(jì)的一步預(yù)測方程:
(1)
(2) 一步預(yù)測狀態(tài)的協(xié)方差為:
P(k+1|k)=f(k)P(k|k)f′(k)+G(k)Q(k)G′(k)
(2)
(3) 一步觀測矩陣的協(xié)方差為:
(3)
(4) 觀測向量的預(yù)測誤差協(xié)方差為:
S(k+1)=H(k+1)P(k+1|k)H′(k+1)+R(k+1)
(4)
(5) 新息或測量殘差為:
(5)
(6) 濾波器增益為:
K(k+1)=P(k+1|k)H′(k+1)S-1(k+1)
(6)
(7) 卡爾曼濾波算法的狀態(tài)更新方程為:
(7)
(8) 濾波誤差協(xié)方差的更新方程為:
P(k+1|k+1)=P(k+1|k)-K(k+1)S(k+1)K′(k+1)=
[I-K(k+1)H(k+1)]P(k+1|k)
(8)
通過不斷重復(fù)以上步驟來不斷更新濾波的誤差協(xié)方差矩陣,獲得更精確的濾波效果,卡爾曼濾波算法的結(jié)構(gòu)如圖1所示。
圖1 卡爾曼濾波結(jié)構(gòu)框圖
傳統(tǒng)的卡爾曼濾波算法主要有自適應(yīng)卡爾曼算法[15]、模糊卡爾曼算法[16]和新息卡爾曼算法等。其中韓亞坤等[17]提出的新息自適應(yīng)卡爾曼濾波算法沒有考慮對新息測量噪聲協(xié)方差矩陣進(jìn)行在線優(yōu)化,李忠良[18]提出基于BP神經(jīng)網(wǎng)絡(luò)的自適應(yīng)卡爾曼濾波算法沒有考慮對人工神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化,只使用簡單的三角函數(shù)來對比試驗(yàn),忽略了其他影響卡爾曼濾波的因素,對預(yù)測精度有一定的影響。針對以上卡爾曼算法在濾波中出現(xiàn)的,當(dāng)系統(tǒng)模型不精確時(shí)濾波精度不高的問題,提出一種基于深度置信網(wǎng)絡(luò)模型的新息卡爾曼濾波算法。首先通過對新息卡爾曼濾波算法在濾波過程中利用實(shí)時(shí)觀測量和估計(jì)量信息在線修正參數(shù)和噪聲的統(tǒng)計(jì)特性,然后使用深度置信網(wǎng)絡(luò)模型在線調(diào)整噪聲協(xié)方差矩陣Q,使其接近實(shí)際噪聲量,從而提高濾波估計(jì)精度[2]。
自適應(yīng)卡爾曼濾波算法是為了解決理想狀態(tài)下的噪聲無法在現(xiàn)實(shí)環(huán)境中實(shí)現(xiàn)這個(gè)問題而提出的一種改進(jìn)卡爾曼算法,而新息自適應(yīng)卡爾曼算法是其中的一種。通過式(3)和式(8)推導(dǎo)出k時(shí)刻的新息,其中I(k)為k時(shí)刻的新息,C為新息協(xié)方差,Q(k+1)為k+1時(shí)刻噪聲矩陣,R(k)為k時(shí)刻觀測噪聲協(xié)方差矩陣:
(9)
k時(shí)刻的新息協(xié)方差:
(10)
由式(4)和式(7)得到Q(k+1)的表達(dá)式:
Q(k+1)=K(k)H(k)P(k)
(11)
最后將式(11)代入式(6)得出:
Q(k+1)=K(k)C(k)H(k)K′(k)
(12)
由式(10)變換可得到新息測量噪聲協(xié)方差矩陣R:
(13)
通過以上的推導(dǎo)和變換就可將標(biāo)準(zhǔn)的卡爾曼濾波算法改寫成基于新息的自適應(yīng)濾波表達(dá)式,新息的自適應(yīng)卡爾曼濾波和標(biāo)準(zhǔn)的卡爾曼濾波的不同在于,新息自適應(yīng)卡爾曼濾波表達(dá)式中的噪聲協(xié)方差不再是固定的,而是對噪聲進(jìn)行實(shí)時(shí)估計(jì),從而使R和Q更加精確,提高了濾波的精度。
深度置信網(wǎng)絡(luò)(Deep Belief Network)[14]由許多層用于接受輸入的顯層神經(jīng)元(以下簡稱顯元)和用于提取特征的隱層神經(jīng)元(以下簡稱隱元)構(gòu)成,因此隱元也可以被稱為特征檢測器[3]。頂部兩層之間是無方向連接的,并構(gòu)成聯(lián)合記憶。 下層的其他上層和下層之間存在有方向連接。 最底層表示的是數(shù)據(jù)向量,每個(gè)神經(jīng)元表示為一維數(shù)據(jù)向量。受限玻爾茲曼機(jī)RBM(Restricted Boltzmann Machine)是DBN的主要組成元件。 因此,DBN的訓(xùn)練過程是漸進(jìn)的。 在每一層中,數(shù)據(jù)向量用于推斷隱藏層神經(jīng)元,并且該隱藏層被視為下一層的數(shù)據(jù)向量。其結(jié)構(gòu)如圖2所示。
圖2 模型結(jié)構(gòu)圖
1.2.1受限玻爾茲曼機(jī)結(jié)構(gòu)及工作原理
受限玻爾茲曼機(jī)是由一層顯性神經(jīng)元和一層隱性神經(jīng)元組成的,并且兩層神經(jīng)元之間為雙向全連接,所以又被成為神經(jīng)感知器,結(jié)構(gòu)如圖3所示。
圖3 受限玻爾茲曼機(jī)網(wǎng)絡(luò)結(jié)構(gòu)圖
在受限玻爾茲曼機(jī)中,任意兩個(gè)連接的隱層神經(jīng)元和顯層神經(jīng)元都有權(quán)重w來表示它們的連接強(qiáng)度,且每個(gè)顯層神經(jīng)元都有表示自身權(quán)重的偏置系數(shù)c,每個(gè)隱層神經(jīng)元都有表示自身權(quán)重的偏置系數(shù)b。因?yàn)镽BM是基于能量的模型EBM(Energy Based Model),所以可以用下面函數(shù)表示一個(gè)受限玻爾茲曼機(jī)的能量,并通過該能量函數(shù)引入一系列相關(guān)的概率分布函數(shù):
(14)
在一個(gè)受限玻爾茲曼機(jī)中,激活隱層神經(jīng)元hj的概率密度函數(shù)為:
(15)
由于是雙向連接,所以顯層神經(jīng)元可以被隱層神經(jīng)元激活,其概率密度函數(shù)為:
(16)
式中:σ為Sigmoid函數(shù)[4],也可以設(shè)定為其他函數(shù)。由于同一層顯性或隱性神經(jīng)元之間無連接權(quán)重,故具有獨(dú)立性,所以概率密度亦滿足獨(dú)立性,易得到下式:
(17)
(18)
通過以上的推導(dǎo)和分析得出了RBM的基本構(gòu)造。
當(dāng)用一條數(shù)據(jù)向量來訓(xùn)練完RBM的顯性神經(jīng)元層后,受限玻爾茲曼機(jī)會(huì)根據(jù)式(15)計(jì)算出相應(yīng)的隱層神經(jīng)元被激活的概率:P(hi|x)j=1,2,…,Nh,并且取0-1隨機(jī)數(shù)μ作為閾值,若概率大于該閾值則神經(jīng)元將被激活,否則會(huì)被抑制,即:
hj=1P(hj|x)<μ
(19)
hj=0P(hj|x)≥μ
(20)
由以上不等式得出隱層的每個(gè)神經(jīng)元是否被激活。
RBM共有五個(gè)參數(shù):v、h、b、c、W,其中v是輸入向量,h是輸出向量,b、c、W,是通過學(xué)習(xí)相應(yīng)數(shù)據(jù)得到的偏置值和權(quán)重。訓(xùn)練RBM采用的是K步對比散度算法DC-k(Contrastive Divergence)[5]。先將數(shù)據(jù)輸入給顯層V1,并使用式(15)計(jì)算出每個(gè)隱層神經(jīng)元的激活概率值。然后從計(jì)算的概率分布中通過Gibbs抽樣[6]選取一個(gè)樣本:
h1~P(h1|V1)
(21)
并用h1重新構(gòu)造顯層,因?yàn)轱@層和隱層之間為雙向全連接所以可通過隱層反推出顯層,最后使用式(16)計(jì)算出顯層中的每個(gè)神經(jīng)元的激活概率P(V2|h1)。再次在h1的基礎(chǔ)上計(jì)算得出新的概率分布并通過Gibbs抽樣選取一個(gè)新的樣本:
V2~P(V2|h1)
(22)
利用V2再次計(jì)算每個(gè)隱層神經(jīng)元的激活概率,最后得到更新的概率分布P(h2|V2)的權(quán)重:
W←W+λ(P(h1|V1)V1-P(h2|V2)V2)
(23)
b←b+λ(V1-V2)
(24)
c←c+λ(h1-h2)
(25)
按照以上步驟經(jīng)過若干次訓(xùn)練后,隱層神經(jīng)元不但能較為精準(zhǔn)地表達(dá)出顯層神經(jīng)元的特征,而且還能夠在一定程度還原顯層。
1.2.2網(wǎng)絡(luò)的訓(xùn)練與調(diào)優(yōu)
DBN 在訓(xùn)練模型的過程中主要分為兩步:
(1) 預(yù)訓(xùn)練:首先對第一個(gè)RBM進(jìn)行完全訓(xùn)練,并將第一個(gè)RBM的偏移量和權(quán)值固定;然后將第一個(gè)RBM的隱層神經(jīng)元的學(xué)習(xí)狀態(tài)作為輸入向量輸入到第二個(gè)RBM中進(jìn)行充分訓(xùn)練,在訓(xùn)練完第二RBM之后,將第二RBM設(shè)置在第一RBM的頂部;最后重復(fù)上述訓(xùn)練步驟任意次數(shù),并需要分別對每一層的RBM網(wǎng)絡(luò)進(jìn)行無監(jiān)督訓(xùn)練以確保將特征向量盡可能地映射到多個(gè)不同的特征空間,同時(shí)保留多個(gè)特征信息,若訓(xùn)練集為被標(biāo)記的數(shù)據(jù),那么在頂層訓(xùn)練RBM時(shí),除了RBM顯層中的神經(jīng)元之外,需要加入表示分類標(biāo)簽的神經(jīng)元,與Softmax分類器等一起進(jìn)行訓(xùn)練。根據(jù)學(xué)習(xí)到的相應(yīng)標(biāo)簽數(shù)據(jù),分類器中相應(yīng)的標(biāo)簽神經(jīng)元被激活為1,其他神經(jīng)元被抑制為0。
(2) 微調(diào):在對組成DBN的RBM進(jìn)行訓(xùn)練后,每層RBM只能保證自身的權(quán)值對該層得到最優(yōu)的特征向量映射,并不能對整個(gè)DBN模型達(dá)到最優(yōu)的特征向量映射,所以還需要計(jì)算出預(yù)測值和真實(shí)值之間的誤差。這就要將DBN的輸出層替換為反向傳播層(BPNN)[7],反向傳播層會(huì)將誤差值從上向下傳播至每一層的RBM,從而達(dá)到微調(diào)整個(gè)DBN網(wǎng)絡(luò)的效果。將RBM學(xué)習(xí)到的特征向量作為其輸入向量,并且對關(guān)系分類器進(jìn)行有監(jiān)督訓(xùn)練。上述訓(xùn)練RBM網(wǎng)絡(luò)模型的過程也可以看作是對深層的BP神經(jīng)網(wǎng)絡(luò)[13]權(quán)值參數(shù)的初始化,避免了DBN像BP神經(jīng)網(wǎng)絡(luò)一樣因隨機(jī)初始化權(quán)值參數(shù)而容易陷入局部最優(yōu)和訓(xùn)練時(shí)間過長的缺陷[13]。訓(xùn)練好的模型如圖4所示,其中深色部分為參與訓(xùn)練最頂層RBM的標(biāo)簽。
圖4 訓(xùn)練好的深度置信模型
訓(xùn)練生成DBN模型后,除了頂層RBM以外,其他層RBM的權(quán)重都被分成了向下的生成權(quán)重和向上的認(rèn)知權(quán)重,接下來使用醒睡算法CWS(Contrastive Wake-Sleep)[9]對模型調(diào)優(yōu)。該算法主要分為兩個(gè)階段,醒階段為學(xué)習(xí)和認(rèn)知過程,通過學(xué)習(xí)外界的特征和向上的認(rèn)知權(quán)重產(chǎn)生每一層的抽象表示的結(jié)點(diǎn)狀態(tài),并且使用隨機(jī)梯度下降算法[10]修改層間向下的生成權(quán)重。睡眠階段為聯(lián)想和生成過程,通過醒階段學(xué)習(xí)和認(rèn)知到的概念和向下的生成權(quán)重來生成底層狀態(tài)的同時(shí)再修改層與層之間向上的認(rèn)知權(quán)重。
以電磁繼電器壽命實(shí)驗(yàn)數(shù)據(jù)的濾波來測試本算法效果。電磁繼電器是指專門應(yīng)用于電器控制的繼電器,該類繼電器切換負(fù)載功率大,抗沖、抗振性高。電磁繼電器在航空航天等用電系統(tǒng)中擔(dān)負(fù)著控制、調(diào)節(jié)和保護(hù)等極其重要的任務(wù),其質(zhì)量的好壞與工作的可靠性直接影響著各種用電設(shè)備整體運(yùn)行的可靠性和安全性。由文獻(xiàn)[18]可知接觸電阻、超程時(shí)間和彈跳時(shí)間是影響繼電器壽命和可靠性的關(guān)鍵參數(shù)。執(zhí)行大眾集團(tuán)VW80932標(biāo)準(zhǔn)工作模式:通電2 s,斷電3 s。采用壽命試驗(yàn)臺(tái)對德國海拉公司HELLA/JD191型常開式觸點(diǎn)電磁繼電器進(jìn)行壽命實(shí)驗(yàn),該樣件動(dòng)作104 088次失效[11]。圖5-圖7為該樣件三個(gè)參數(shù)進(jìn)行斷點(diǎn)和野值[12]的處理后的生命周期中退化趨勢數(shù)據(jù)。
圖5 接阻電阻隨動(dòng)作次數(shù)的變化規(guī)律
圖6 超程時(shí)間隨動(dòng)作次數(shù)的變化規(guī)律
圖7 彈跳時(shí)間隨動(dòng)作次數(shù)的變化規(guī)律
先后用新息自適應(yīng)卡爾曼算法和基于DBN模型改進(jìn)的卡爾曼算法對參數(shù)(接觸電阻、超程時(shí)間和彈跳時(shí)間)進(jìn)行濾波,前后效果對比如圖8-圖10所示??梢?,采用DBN模型對卡爾曼濾波算法的噪聲協(xié)方差矩陣進(jìn)行調(diào)整,改變了濾波增益并在線調(diào)整系統(tǒng)模型從而明顯提高對數(shù)據(jù)中目標(biāo)狀態(tài)的估計(jì)精度。
圖8 接阻電阻隨動(dòng)作次數(shù)的變化規(guī)律濾波前后對比圖
圖9 超程時(shí)間隨動(dòng)作次數(shù)的變化規(guī)律濾波前后對比圖
圖10 彈跳時(shí)間隨動(dòng)作次數(shù)的變化規(guī)律濾波前后對比圖
為了更直觀地描述濾波的性能,使用均方根誤差RMSE[20](root mean square error)進(jìn)行定量分析,定義如下:
(26)
圖11 超程時(shí)間均方根誤差對比圖
圖12 彈跳時(shí)間均方根誤差對比圖
圖13 接阻電阻均方根誤差對比圖
從圖11-圖13的三個(gè)參數(shù) RMSE曲線可以看出,采用DBN模型改進(jìn)的卡爾曼濾波算法可以較好地降低RMSE。通過使用RMSE曲線可以較好地分析和比較DBN模型對卡爾曼濾波算法的濾波增益,并且對基于不同神經(jīng)網(wǎng)絡(luò)模型改進(jìn)的濾波算法提出一種較為理想的比較手段,同時(shí)也為后續(xù)進(jìn)行濾波效果評估提供足夠的依據(jù)。
實(shí)驗(yàn)使用DBN改進(jìn)模型進(jìn)行濾波后對結(jié)果進(jìn)行分析和對比,提取了電磁繼電器中的六個(gè)重要參數(shù)中具有代表性的三個(gè)參數(shù)為輸入數(shù)據(jù),建立基于DBN的新息卡爾曼濾波模型。濾波結(jié)果表明了該模型的精確性和有效性,根據(jù)仿真計(jì)算和實(shí)驗(yàn)的結(jié)果可以看出,基于深度置信網(wǎng)絡(luò)改進(jìn)的新息卡爾曼濾波模型是可行且有效的,可為繼電器壽命預(yù)測、故障診斷以及其他相關(guān)設(shè)備器件的可靠性研究提供新的更高精度的數(shù)據(jù)處理方法。