一、前言
粒子濾波(particle filter)是一種常見的濾波算法,廣泛應(yīng)用于目標(biāo)跟蹤、移動機(jī)器人等領(lǐng)域。網(wǎng)絡(luò)上有不少關(guān)于粒子濾波的資料,但大多是直接給出了粒子濾波的相關(guān)公式和證明,或較為直觀上的解釋。作者在學(xué)習(xí)粒子濾波的過程中對一些概念和操作時(shí)常感到突兀,后來發(fā)現(xiàn)想要完整了解粒子濾波,需要首先了解前因,逐漸深入才能理解粒子濾波,而不是直接學(xué)習(xí)粒子濾波這個(gè)方法。
本文將側(cè)重從“粒子濾波是怎么來的”這個(gè)問題介紹粒子濾波。限于篇幅與易懂性,對一些概念并沒有展開介紹,讀者在了解基本思路后可以根據(jù)給出的資料深入學(xué)習(xí)。本文包含了作者自己不嚴(yán)謹(jǐn)?shù)睦斫馀c闡述,如有疏漏,望批評指正。
二、對“濾波”的一些介紹
2.1 何為“濾波”?
貝葉斯濾波、卡爾曼濾波、粒子濾波……種種這些濾波方法,都涉及到了“濾波”這個(gè)詞。那么到底什么是濾波,不同的領(lǐng)域有不同的定義。比如在信號系統(tǒng)領(lǐng)域,濾波是指將信號中特定波段的頻率濾除的操作。而在移動機(jī)器人領(lǐng)域,我暫時(shí)沒有看到較為嚴(yán)格的定義。我認(rèn)為可以姑且理解為:通過不斷地觀測,使得對目標(biāo)狀態(tài)的估計(jì)變得更加準(zhǔn)確。
2.2 貝葉斯濾波
卡爾曼濾波與粒子濾波都是基于貝葉斯濾波框架下的濾波算法。講粒子濾波便不得不提貝葉斯濾波。貝葉斯濾波的基本思想是根據(jù)上一時(shí)刻的狀態(tài)對當(dāng)前狀態(tài)進(jìn)行預(yù)測,并根據(jù)此時(shí)的觀測進(jìn)行更新。基本算法是:
(圖片來源:《概率機(jī)器人》) 可以看出,在預(yù)測部分需要求一個(gè)積分,而這個(gè)積分往往很難求。所以顯有方法可以直接利用原始的貝葉斯進(jìn)行處理。
2.3 卡爾曼濾波
卡爾曼濾波也是非常龐大的一塊內(nèi)容,這里不展開介紹。只在這里說明,卡爾曼濾波是貝葉斯濾波在線性高斯系統(tǒng)下的一種濾波算法。而對于非線性系統(tǒng),則衍生出來了擴(kuò)展卡爾曼濾波。同時(shí)指出,無論是卡爾曼還是擴(kuò)展卡爾曼濾波,都是參數(shù)化的濾波方法,對于無法用參數(shù)化進(jìn)行表示的,則采用粒子濾波。粒子濾波是一種無參的濾波算法。
三、積分計(jì)算:從蒙特卡洛說起
3.1 分段近似法求積分
3.2 蒙特卡洛采樣求積分
(此處略過蒙特卡洛基本原理)
3.2.1 簡單的均勻采樣
求積分和求期望是相同的。假設(shè)我們對一個(gè)分布求取積分,采用最簡單的采樣方式——均勻采樣。我們求取在x滿足均勻分布u(x)時(shí),f(x)在[a,b]的期望I。按照分布u(x)進(jìn)行N次隨機(jī)采樣:
可以發(fā)現(xiàn)最后一項(xiàng)對f(x)的積分,就是x的期望。所以我們可以發(fā)現(xiàn),當(dāng)我們按照均勻分布u(x)對x進(jìn)行大量采樣,計(jì)算對應(yīng)的f(x)的平均值,就是f(x)的積分。
3.2.2 任意分布的采樣
下面我們研究,如果不是按照均勻分布u(x)采樣,而是任意分布p(x)進(jìn)行采樣,結(jié)果如何。此時(shí)
依舊與原始的積分相同。所以我們得出了重要的結(jié)論:在蒙特卡洛時(shí),我們可以按照任意分布進(jìn)行采樣,再計(jì)算對應(yīng)f(x)的積分。
這一點(diǎn)很好理解,如果我們選擇的分布p(x)就是真實(shí)的分布,那么我們從p(x)進(jìn)行采樣,就和直接從真實(shí)分布進(jìn)行采樣是一樣的,積分結(jié)果當(dāng)然是沒有誤差的。這提醒我們,在選取p(x)分布時(shí)要盡可能的與實(shí)際分布接近,從而極大程度的降低方差,從而減少需要采樣的數(shù)量。
四、重要性采樣與序列重要性采樣
4.1 重要性采樣(Importance Sampling, IS)
4.2 序列重要性采樣(Sequential Importance Sampling, SIS)
4.3 重采樣(Resampling)
在實(shí)際過程中,我們發(fā)現(xiàn)利用權(quán)重更新公式進(jìn)行更新時(shí),在幾次迭代之后,權(quán)重的分布會極其不均勻,出現(xiàn)個(gè)別粒子權(quán)重很大接近于1,而其他的都接近于0的情況。這時(shí)候采用了一種“重采樣”策略,即每次權(quán)重更新之后,根據(jù)當(dāng)前權(quán)重對所有粒子進(jìn)行重采樣,之后將所有權(quán)重設(shè)定為相同。這樣我們用粒子的數(shù)量代替了粒子的權(quán)重,避免了權(quán)重的不均勻。
5. 粒子濾波(Particle Filter)
此時(shí)對權(quán)重更新公式進(jìn)行變形(在不產(chǎn)生歧義情況下部分內(nèi)容用點(diǎn)省略):
6. 總結(jié)
本文首先從濾波問題說起,指出了貝葉斯濾波框架下積分很難求的問題。由此引出蒙特卡洛方法。之后為了降低誤差、減少運(yùn)算量和避免權(quán)重集中,對應(yīng)出現(xiàn)了重要性采樣、序列重要性采樣與重采樣,順理成章的得出了粒子濾波的數(shù)學(xué)原理,之后給出了對應(yīng)的物理模型。最后給出了簡單的粒子濾波的完整算法。
審核編輯:劉清
-
濾波算法
+關(guān)注
關(guān)注
2文章
89瀏覽量
13776 -
貝葉斯算法
+關(guān)注
關(guān)注
1文章
7瀏覽量
9110
原文標(biāo)題:粒子濾波到底是怎么得到的?
文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論