《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于蝴蝶優(yōu)化的粒子濾波算法
基于蝴蝶優(yōu)化的粒子濾波算法
劉云濤
(杭州電子科技大學(xué) 計(jì)算機(jī)學(xué)院,浙江 杭州 310018)
摘要: 針對(duì)標(biāo)準(zhǔn)粒子濾波采用次優(yōu)的重要性函數(shù)而導(dǎo)致的粒子退化問題,提出一種基于蝴蝶優(yōu)化的改進(jìn)粒子濾波算法。通過蝴蝶算法優(yōu)化粒子濾波的重要性采樣過程,使得遠(yuǎn)離真實(shí)狀態(tài)的粒子向真實(shí)狀態(tài)可能性較大的區(qū)域移動(dòng)。優(yōu)化后的粒子濾波算法增強(qiáng)了粒子的作用效果,避免了局部最優(yōu)問題。仿真結(jié)果表明,與傳統(tǒng)粒子濾波和粒子群優(yōu)化粒子濾波算法相比較,優(yōu)化后的粒子濾波算法均根方差誤差明顯減小,所需的粒子數(shù)少于常規(guī)的粒子濾波算法,有效改善了粒子退化問題,提高了濾波精度。
中圖分類號(hào):O211.64
文獻(xiàn)標(biāo)識(shí)碼:A
DOI: 10.19358/j.issn.2096-5133.2018.07.009
中文引用格式:劉云濤.基于蝴蝶優(yōu)化的粒子濾波算法[J].信息技術(shù)與網(wǎng)絡(luò)安全,2018,37(7):37-41.
?Optimizing particle filter algorithm using butterfly algorithm
?Liu Yuntao
(School of Computer Science, Hangzhou Dianzi University, Hangzhou 310018, China)
Abstract: To resolve the problem of particle impoverishment due to using suboptimal importance function, an improved particle filter algorithm based on butterfly algorithm is proposed. Through butterfly algorithm optimization, the sampling process is optimized, and particles away from the real state are moved towards regions where they have a greater possibility of being real state. The optimized particle filter algorithm enhances the effect of each particle and avoids the local optimizatioin problem. The sumilation results show that, compared with standard algorithm, the root mean square error of improved algorithm is obviously reduced, and the number of particles required is less than the convectional particle filter algorithm. It also shows that the improved algorithm effectively inhibits the problem of particle impoverishment and improves the filtering accuracy.
Key words : particle filter; particle impoverishment; butterfly algorithm; sampling process

0  引言

粒子濾波是一種基于蒙特卡羅思想的非線性非高斯?fàn)顟B(tài)估計(jì)濾波方法[1],在故障診斷、目標(biāo)跟蹤等相關(guān)領(lǐng)域取得了一定的應(yīng)用效果。段琢華等人[2]提出一種基于粒子濾波器的移動(dòng)機(jī)器人傳感器故障診斷方法,并驗(yàn)證了該方法可以有效識(shí)別移動(dòng)機(jī)器人一種或多種故障。程建等人[3]將粒子濾波理論應(yīng)用于紅外目標(biāo)跟蹤,在粒子濾波理論框架下,紅外目標(biāo)的狀態(tài)后驗(yàn)概率分布用加權(quán)隨機(jī)樣本集表示,通過隨機(jī)樣本的Bayesian迭代進(jìn)化實(shí)現(xiàn)紅外目標(biāo)的跟蹤。然而隨著迭代次數(shù)的增加,粒子重要性權(quán)重的方差越來越大,使得粒子的權(quán)重集中到很少數(shù)粒子上,其他粒子的重要性權(quán)值將會(huì)很小,這就是粒子退化現(xiàn)象。DOUCET A等人[4]已從理論上證明了粒子退化現(xiàn)象出現(xiàn)的必然性。粒子退化問題將會(huì)嚴(yán)重影響粒子濾波精度。

針對(duì)粒子濾波存在的粒子退化問題,國內(nèi)外學(xué)者進(jìn)行了大量的研究。張琪等人[5]提出一種基于權(quán)值選擇的粒子濾波算法.按照粒子權(quán)值的大小選擇較好的粒子用于濾波,以增加樣本的多樣性,從而緩解粒子濾波的退化問題。夏飛等人[6]在重采樣階段采用了一種權(quán)值排序、優(yōu)勝劣汰的重采樣算法,對(duì)各粒子的歸一化權(quán)值按從小到大的順序排列,并根據(jù)權(quán)值方差大小淘汰粒子,從而得到了改進(jìn)的粒子濾波算法,在一定程度上解決了標(biāo)準(zhǔn)粒子濾波的退化問題。但是上述兩種方法仍然是基于傳統(tǒng)采樣的框架,未能徹底解決粒子退化的問題。

蝴蝶算法(Butterfly Algorithm,BA)是由ARORA S和SINGH S[7]提出的一種基于蝴蝶覓食行為的全局優(yōu)化算法。通過仿真指出該算法優(yōu)于其他自然啟發(fā)式算法,相較于其他算法具有更高的收斂精度和更快的收斂速度。受此算法特點(diǎn)啟發(fā),本文引入蝴蝶算法優(yōu)化粒子濾波采樣過程,并通過仿真實(shí)驗(yàn)驗(yàn)證蝴蝶優(yōu)化粒子濾波算法能夠改善基本粒子算法存在的濾波粒子退化問題。

1  粒子濾波算法

粒子濾波是一種基于蒙特卡羅思想的貝葉斯估計(jì)方法 [8]。假設(shè)有非線性系統(tǒng)的狀態(tài)空間模型:

微信截圖_20181025153236.png

其中,f(·)和h(·)分別為狀態(tài)轉(zhuǎn)移方程和觀測(cè)方程。xt為系統(tǒng)在t時(shí)刻的狀態(tài)變量,zt為系統(tǒng)在t時(shí)刻的觀測(cè)值,wt和vt為相互獨(dú)立的噪聲,分別為系統(tǒng)的過程噪聲和觀測(cè)噪聲,ut為系統(tǒng)在t時(shí)刻的輸入量。

濾波就是計(jì)算后驗(yàn)濾波概率密度p(xt|z1:t),已知p(xt|z1:t)是p(x0:t|z1:t)的邊沿概率密度。假設(shè)t-1時(shí)刻濾波概率密度p(xt-1|z1:t-1)已知,系統(tǒng)狀態(tài)xt服從一階馬爾可夫過程且系統(tǒng)觀測(cè)zt獨(dú)立。通過下式

微信截圖_20181025153259.png

得出包含t-1時(shí)刻觀測(cè)值的t時(shí)刻系統(tǒng)狀態(tài)先驗(yàn)概率密度p(xt|z1:t-1):

微信截圖_20181025160544.png

式(3)即為預(yù)測(cè)過程,其中,p(xt|xt-1)是系統(tǒng)的狀態(tài)轉(zhuǎn)移概率密度。利用t時(shí)刻的觀測(cè)值z(mì)t,通過更新修正p(xt|z1:t-1),得到t時(shí)刻系統(tǒng)狀態(tài)的后驗(yàn)概率密度p(xt|z1:t),由貝葉斯定理可得狀態(tài)更新方程:

微信截圖_20181025160552.png

其中

微信截圖_20181025160604.png

然而,對(duì)于非線性非高斯系統(tǒng)而言,在過程中式(3)和式(4)消去中間參量和其他位置參量的計(jì)算卻很困難,很難得到完整的解析式來表達(dá)這樣的概率密度函數(shù)。因此,粒子濾波采用序貫蒙特卡羅采樣方法,從后驗(yàn)概率密度p(xt|z1:t)采樣大量的隨機(jī)樣本點(diǎn)來近似待估計(jì)的分布,這些隨機(jī)樣本點(diǎn)稱為粒子。用大量的粒子來近似整個(gè)后驗(yàn)分布,當(dāng)粒子數(shù)量足夠多時(shí),后驗(yàn)分布能被準(zhǔn)確近似,是一種全局近似最優(yōu)濾波。假設(shè)從后驗(yàn)概率密度p(xt|z1:t)采樣得到N個(gè)粒子,則后驗(yàn)概率密度可以通過下式近似表示:

微信截圖_20181025161305.png

其中,xit表示從后驗(yàn)概率密度中采樣得到的粒子,δ(·)表示Dirac delta函數(shù)。

但是在實(shí)際中卻很難從函數(shù)p(xt|z1:t)中采樣??梢韵葟囊粋€(gè)事先已知且容易采樣的參考分布q(xt|z1:t)中采樣,通過在q(xt|z1:t)中采樣x粒子進(jìn)行加權(quán)來近似計(jì)算p(xt|z1:t)。當(dāng)選取重要概率密度為

微信截圖_20181025161317.png

時(shí),重要性權(quán)重方差最小,此時(shí)為最優(yōu)重要性概率密度。權(quán)值計(jì)算方程為:

微信截圖_20181025161326.png

式(8)中,p(zt|xit-1)無法求解,所以更常見的是選取先驗(yàn)概率密度為重要性概率密度,即

微信截圖_20181025162218.png

式子化簡(jiǎn)為

微信截圖_20181025162225.png

將重要性權(quán)重歸一化,即

微信截圖_20181025162246.png

而后驗(yàn)概率密度可以表示為:

微信截圖_20181025162747.png

式中,重要性權(quán)值如式(11)所示。當(dāng)N→∞時(shí),由大數(shù)定理可知,式(12)逼近于真實(shí)后驗(yàn)概率p(xt|z1:t)。

2  蝴蝶優(yōu)化粒子濾波

2.1 蝴蝶算法

蝴蝶算法是一種自然啟發(fā)式全局尋優(yōu)算法,其主要思想類似于蝴蝶群覓食行為,每一只蝴蝶都會(huì)散發(fā)一定強(qiáng)度的香味,同時(shí)每只蝴蝶都會(huì)感受到周圍其它蝴蝶的香味,并朝著那些散發(fā)更多香味的蝴蝶移動(dòng)。蝴蝶的香味取決于三個(gè)因素:感知形態(tài)、刺激強(qiáng)度以及冪指數(shù)。用方程表示為

F=cIa(13)

其中,F(xiàn)表示香味濃度大小,c為感知形態(tài),I為刺激強(qiáng)度,a為冪指數(shù)。

已知目標(biāo)函數(shù)f(x),蝴蝶算法的基本步驟如下:

(1)初始化具有n只蝴蝶的蝴蝶種群,由目標(biāo)函數(shù)f(xi)決定每一只蝴蝶xi的刺激強(qiáng)度Ii。

(2)計(jì)算蝴蝶種群中每一只蝴蝶的適應(yīng)值,并找到位置最優(yōu)的蝴蝶。

(3)計(jì)算蝴蝶散發(fā)的香味。由于外界環(huán)境的干擾,產(chǎn)生隨機(jī)數(shù)p用于決定蝴蝶是進(jìn)行局部搜索還是全局搜索。

(4)若進(jìn)行全局搜索,蝴蝶飛向全局適應(yīng)度最高的蝴蝶,全局搜索可以表示為

微信截圖_20181025163006.png

其中,xt+1i為第i只蝴蝶在第t次迭代的解向量。g*表示目前所有蝴蝶中的最優(yōu)解。

(5)若進(jìn)行局部搜索,蝴蝶進(jìn)行Lévy隨機(jī)飛行。局部搜索可以表示為

微信截圖_20181025163012.png

微信截圖_20181025163446.png

為了避免蝴蝶移動(dòng)陷入局部最優(yōu),在算法中引入Lévy飛行,Lévy飛行實(shí)質(zhì)是一種隨機(jī)游走,步長(zhǎng)分布符合重尾概率分布:

微信截圖_20181025163500.png

Lévy飛行能夠加快局部搜索,提高搜索效率。本文中,λ的取值范圍為(1,2]。

2.2  融合蝴蝶算法與粒子濾波

在蝴蝶算法中,把蝴蝶看作粒子濾波中的粒子,可以看出蝴蝶算法和粒子濾波存在一定的相似性。首先,蝴蝶算法中蝴蝶不斷地更新自己的位置并向適應(yīng)度最高的蝴蝶飛去,類似于粒子濾波算法中粒子不斷地逼近真實(shí)系統(tǒng)狀態(tài)的后驗(yàn)概率分布。其次,蝴蝶算法中適應(yīng)度最高的蝴蝶是種群中的最優(yōu)值,類似于粒子濾波算法中具有最大重要性權(quán)重的粒子最可能處于真實(shí)的后驗(yàn)分布。

本文將蝴蝶算法優(yōu)化思想引入粒子濾波采樣過程,提高粒子濾波性能。但是如果直接將蝴蝶優(yōu)化算法與粒子濾波結(jié)合,會(huì)導(dǎo)致許多的問題,所以引入蝴蝶算法優(yōu)化粒子濾波的過程中需做如下修改:

(1)常規(guī)粒子濾波的重要性概率密度選取的是先驗(yàn)概率密度,丟失了當(dāng)前時(shí)刻的觀測(cè)值,所以在計(jì)算蝴蝶的適應(yīng)值時(shí)利用最新時(shí)刻的觀測(cè)值。因此,計(jì)算蝴蝶的適應(yīng)值方程定義為:

微信截圖_20181025164237.png

其中,Rk是觀測(cè)噪聲方差,znew是最新的觀測(cè)值,zpred表示預(yù)測(cè)的觀測(cè)值。

(2)在蝴蝶的移動(dòng)過程中,每一只蝴蝶都會(huì)向當(dāng)前已知最優(yōu)值逼近。而在蝴蝶算法的全局搜索方程中g(shù)*-xti已經(jīng)確定了蝴蝶的移動(dòng)方向,但是當(dāng)Lévy飛行出現(xiàn)負(fù)值時(shí),蝴蝶卻會(huì)朝著最優(yōu)值反方向移動(dòng),造成無效的重復(fù)計(jì)算。因此,應(yīng)對(duì)Lévy飛行取絕對(duì)值。改進(jìn)后的全局搜索方程變?yōu)?

微信截圖_20181025164531.png

(3)在蝴蝶算法的全局搜索方程式(18)和局部搜索方程式(15)中,當(dāng)Lévy飛行值和Fi值太小時(shí)會(huì)導(dǎo)致蝴蝶的位置基本不移動(dòng),造成無效的位置更新。所以當(dāng)蝴蝶更新的位移太小時(shí)需要根據(jù)實(shí)際情況進(jìn)行適當(dāng)?shù)臄U(kuò)大。

綜上,引入蝴蝶算法優(yōu)化后的粒子濾波(BA-PF)具體實(shí)現(xiàn)如下:

(1)初始化。選取先驗(yàn)概率作為重要性概率密度函數(shù),從重要性函數(shù)中產(chǎn)生N個(gè)粒子組成微信截圖_20181025164855.png粒子群,所有粒子的權(quán)值為1/N。設(shè)置迭代次數(shù)T、搜索切換概率p等參數(shù)。

(2)預(yù)測(cè)。通過式(1)計(jì)算狀態(tài)微信截圖_20181025165125.png的預(yù)測(cè)值微信截圖_20181025165130.png。

(3)尋找最優(yōu)值。把粒子濾波中的每一個(gè)粒子看作蝴蝶算法中的一只蝴蝶。通過適應(yīng)度函數(shù)式(17)計(jì)算每一個(gè)粒子的適應(yīng)度值,并通過式(19)找到全局最優(yōu)的粒子g*,即適應(yīng)度值最大的蝴蝶。

微信截圖_20181025164902.png

(4)利用式(13)計(jì)算每一個(gè)粒子的香味Fi,產(chǎn)生隨機(jī)數(shù)r用以決定粒子利用式(18)進(jìn)行全局搜索,或者利用式(16)進(jìn)行局部搜索。當(dāng)?shù)螖?shù)達(dá)到最大次數(shù)M時(shí),停止迭代。

(5)更新優(yōu)化后粒子的重要性權(quán)重并歸一化。

(6)重采樣。若有效粒子Neff小于有效樣本閾值Nth,即微信截圖_20181025164913.png時(shí),則進(jìn)行重采樣。得到新的粒子集微信截圖_20181025164925.png。

(7)狀態(tài)估計(jì)。利用微信截圖_20181025164919.png進(jìn)行狀態(tài)估計(jì)。

(8)判斷算法是否繼續(xù),若繼續(xù),則返回步驟(2),否則算法結(jié)束。

3  實(shí)驗(yàn)結(jié)果及分析

實(shí)驗(yàn)硬件環(huán)境為筆記本電腦(Intel Core i7處理器、16 GB內(nèi)存),實(shí)驗(yàn)軟件環(huán)境為MATLAB 2016a。為了驗(yàn)證改進(jìn)粒子濾波的有效性,將蝴蝶優(yōu)化粒子濾波算法(BA-PF)與常規(guī)粒子濾波(PF)和基于無跡卡爾曼濾波優(yōu)化的粒子濾波(UPF)進(jìn)行對(duì)比,本文采用文獻(xiàn)[9]中的非線性系統(tǒng),系統(tǒng)的狀態(tài)方程和測(cè)量方程為:

微信截圖_20181025165715.png

其中φ1=0.5,φ2=0.2,φ3=0.5,ξ=0.04,過程噪聲w取Gamma(3,2)的伽瑪噪聲,觀測(cè)噪聲v取均值為零、方差為0.000 1的高斯噪聲。采用3種算法對(duì)上述非線性模型系統(tǒng)狀態(tài)進(jìn)行估計(jì)和跟蹤。采用均方根誤差ERMSE來度量各濾波算法的性能。均方根誤差公式為:

微信截圖_20181025165826.png

微信截圖_20181025165928.png

實(shí)驗(yàn)算法參數(shù)設(shè)置值參考如表1所示。

微信截圖_20181025170000.png

仿真在不同粒子數(shù)N=20、N=40、N=100下對(duì)三種粒子濾波算法的濾波精度和運(yùn)行時(shí)間進(jìn)行對(duì)比,如表2所示。圖1為一次獨(dú)立仿真條件下粒子數(shù)N=20時(shí)三種粒子濾波算法的狀態(tài)估計(jì),圖2為對(duì)應(yīng)仿真運(yùn)行中三種粒子濾波算法的估計(jì)誤差絕對(duì)值。

微信截圖_20181025170051.png

由圖1、圖2和表2可以看出,BA-PF算法的均方根誤差明顯小于PF算法和UPF算法,同時(shí)BA-PF算法在粒子數(shù)較少時(shí)就能具有很高的濾波精度,這主要是因?yàn)锽A-PF算法能夠驅(qū)動(dòng)無效粒子向似然概率高的區(qū)域移動(dòng),增強(qiáng)了粒子的作用效果。而PF算法在粒子數(shù)量較少時(shí),容易失去狀態(tài)估計(jì),如從時(shí)間點(diǎn)t=16到t=22。UPF因?yàn)橐霟o跡卡爾曼濾波,所以濾波精度較PF算法有所提高,但是低于BA-PF算法的濾波精度。

為了測(cè)試不同粒子濾波算法的魯棒性,獨(dú)立仿真在時(shí)間點(diǎn)t=40和t=45時(shí)刻設(shè)置狀態(tài)發(fā)生的突變,幅值為15。圖3為粒子數(shù)N=20并且發(fā)生突變后三種粒子濾波算法的狀態(tài)估計(jì)結(jié)果,圖4為相應(yīng)三種粒子濾波算法的估計(jì)誤差絕對(duì)值。從表2中還可知,BA-PF算法的執(zhí)行時(shí)間稍微高于PF算法,但是遠(yuǎn)低于UPF算法的執(zhí)行時(shí)間。

從圖3和圖4可以看出在t=40和t=45時(shí)刻狀態(tài)值發(fā)生躍變,PF算法和UPF算法都發(fā)生了明顯的估計(jì)偏差,其中又以PF算法最為明顯。而BA-PF算法由于引入Lévy隨機(jī)飛行,避免了局部最優(yōu)問題,沒有發(fā)生明顯偏差,這說明BA-PF算法對(duì)系統(tǒng)狀態(tài)突變的適應(yīng)性強(qiáng),算法魯棒性高。綜上,由于BA-PF算法在重要性采樣過程中引入蝴蝶優(yōu)化算法,有效改善了粒子退化現(xiàn)象,提高了濾波精度。

4  結(jié)論

本文提出了一種基于蝴蝶優(yōu)化的粒子濾波算法,引入蝴蝶算法優(yōu)化常規(guī)粒子濾波的重要性采樣過程,驅(qū)動(dòng)遠(yuǎn)離真實(shí)狀態(tài)的粒子向真實(shí)狀態(tài)可能性較大的區(qū)域移動(dòng),從而有效改善了粒子濾波存在的粒子退化問題,提高了粒子濾波的濾波精度。同時(shí)通過蝴蝶搜索模式的切換和Lévy隨機(jī)飛行使BA-PF算法避免陷入局部最優(yōu)。實(shí)驗(yàn)結(jié)果表明,BA-PF算法在粒子數(shù)量少量的情況下能實(shí)現(xiàn)有效濾波,比PF算法具有更好的濾波性能,算法魯棒性高。

參考文獻(xiàn)

[1] PARK S, HWANG J P, KANG H J, et al. A new evolutionary particle filter for the prevention of sample impoverishment[J]. IEEE Transactions on Evolutionary Computation, 2009, 13(4):801-809.

[2] 段琢華, 蔡自興, 于金霞,等. 基于粒子濾波器的移動(dòng)機(jī)器人慣導(dǎo)傳感器故障診斷[J]. 中南大學(xué)學(xué)報(bào)(自然科學(xué)版), 2005, 36(4):642-647.

[3] 程建, 周越, 蔡念,等. 基于粒子濾波的紅外目標(biāo)跟蹤[J]. 紅外與毫米波學(xué)報(bào), 2006, 25(2):113-117.

[4] DOUCET A, GODSILL S, ANDRIEU C. On sequential Monte Carlo sampling methods for Bayesian filtering[M]. Kluwer Academic Publishers, 2000.

[5] 張琪, 胡昌華, 喬玉坤. 基于權(quán)值選擇的粒子濾波算法研究[J]. 控制與決策, 2008, 23(1):117-120.

[6] 夏飛, 郝碩濤, 張浩,等. 改進(jìn)粒子濾波在汽輪機(jī)故障診斷中的應(yīng)用[J]. 計(jì)算機(jī)測(cè)量與控制, 2016, 24(1):35-38.

[7] ARORA S, SINGH S. Butterfly algorithm with Lèvy Flights for global optimization[C].International Conference on Signal Processing, Computing and Control. IEEE, 2016:220-224.

[8] GORDON N J, SALMOND D J, SMITH A F M. Novel approach to nonlinear/non-Gaussian Bayesian state estimation[J]. IEE Proceedings F - Radar and Signal Processing, 2002, 140(2):107-113.

[9] DOUCET A, FREITAS N D, WAN E. The unscented particle filter[C]. Neural Information Processing Systems, NIPS, 2001: 584-590.

(收稿日期:2018-03-27)

 

作者簡(jiǎn)介:

劉云濤(1991-),男,碩士,主要研究方向:嵌入式系統(tǒng)、人工智能。

 


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。