博客專欄

        EEPW首頁(yè) > 博客 > 粒子濾波到底是怎么得到的?

        粒子濾波到底是怎么得到的?

        發(fā)布人:計(jì)算機(jī)視覺(jué)工坊 時(shí)間:2020-12-16 來(lái)源:工程師 發(fā)布文章

        一、前言

        粒子濾波(particle filter)是一種常見(jiàn)的濾波算法,廣泛應(yīng)用于目標(biāo)跟蹤、移動(dòng)機(jī)器人等領(lǐng)域。網(wǎng)絡(luò)上有不少關(guān)于粒子濾波的資料,但大多是直接給出了粒子濾波的相關(guān)公式和證明,或較為直觀上的解釋。作者在學(xué)習(xí)粒子濾波的過(guò)程中對(duì)一些概念和操作時(shí)常感到突兀,后來(lái)發(fā)現(xiàn)想要完整了解粒子濾波,需要首先了解前因,逐漸深入才能理解粒子濾波,而不是直接學(xué)習(xí)粒子濾波這個(gè)方法。

        本文將側(cè)重從“粒子濾波是怎么來(lái)的”這個(gè)問(wèn)題介紹粒子濾波。限于篇幅與易懂性,對(duì)一些概念并沒(méi)有展開(kāi)介紹,讀者在了解基本思路后可以根據(jù)給出的資料深入學(xué)習(xí)。本文包含了作者自己不嚴(yán)謹(jǐn)?shù)睦斫馀c闡述,如有疏漏,望批評(píng)指正。

        二、對(duì)“濾波”的一些介紹

        2.1 何為“濾波”?

        貝葉斯濾波、卡爾曼濾波、粒子濾波……種種這些濾波方法,都涉及到了“濾波”這個(gè)詞。那么到底什么是濾波,不同的領(lǐng)域有不同的定義。比如在信號(hào)系統(tǒng)領(lǐng)域,濾波是指將信號(hào)中特定波段的頻率濾除的操作。而在移動(dòng)機(jī)器人領(lǐng)域,我暫時(shí)沒(méi)有看到較為嚴(yán)格的定義。我認(rèn)為可以姑且理解為:通過(guò)不斷地觀測(cè),使得對(duì)目標(biāo)狀態(tài)的估計(jì)變得更加準(zhǔn)確。

        2.2 貝葉斯濾波

        卡爾曼濾波與粒子濾波都是基于貝葉斯濾波框架下的濾波算法。講粒子濾波便不得不提貝葉斯濾波。貝葉斯濾波的基本思想是根據(jù)上一時(shí)刻的狀態(tài)對(duì)當(dāng)前狀態(tài)進(jìn)行預(yù)測(cè),并根據(jù)此時(shí)的觀測(cè)進(jìn)行更新。基本算法是:

        11.jpg

        (圖片來(lái)源:《概率機(jī)器人》)

        可以看出,在預(yù)測(cè)部分需要求一個(gè)積分,而這個(gè)積分往往很難求。所以顯有方法可以直接利用原始的貝葉斯進(jìn)行處理。

        2.3 卡爾曼濾波

        卡爾曼濾波也是非常龐大的一塊內(nèi)容,這里不展開(kāi)介紹。只在這里說(shuō)明,卡爾曼濾波是貝葉斯濾波在線性高斯系統(tǒng)下的一種濾波算法。而對(duì)于非線性系統(tǒng),則衍生出來(lái)了擴(kuò)展卡爾曼濾波。同時(shí)指出,無(wú)論是卡爾曼還是擴(kuò)展卡爾曼濾波,都是參數(shù)化的濾波方法,對(duì)于無(wú)法用參數(shù)化進(jìn)行表示的,則采用粒子濾波。粒子濾波是一種無(wú)參的濾波算法。

        三、積分計(jì)算:從蒙特卡洛說(shuō)起

        3.1 分段近似法求積分

        10.png

        3.2 蒙特卡洛采樣求積分

        (此處略過(guò)蒙特卡洛基本原理)

        3.2.1 簡(jiǎn)單的均勻采樣

        求積分和求期望是相同的。假設(shè)我們對(duì)一個(gè)分布求取積分,采用最簡(jiǎn)單的采樣方式——均勻采樣。我們求取在x滿足均勻分布u(x)時(shí),f(x)在[a,b]的期望I。按照分布u(x)進(jìn)行N次隨機(jī)采樣:

        9.png

        可以發(fā)現(xiàn)最后一項(xiàng)對(duì)f(x)的積分,就是x的期望。所以我們可以發(fā)現(xiàn),當(dāng)我們按照均勻分布u(x)對(duì)x進(jìn)行大量采樣,計(jì)算對(duì)應(yīng)的f(x)的平均值,就是f(x)的積分。

        3.2.2 任意分布的采樣

        下面我們研究,如果不是按照均勻分布u(x)采樣,而是任意分布p(x)進(jìn)行采樣,結(jié)果如何。此時(shí)

        8.png

        依舊與原始的積分相同。所以我們得出了重要的結(jié)論:在蒙特卡洛時(shí),我們可以按照任意分布進(jìn)行采樣,再計(jì)算對(duì)應(yīng)f(x)的積分。

        7.png

        這一點(diǎn)很好理解,如果我們選擇的分布p(x)就是真實(shí)的分布,那么我們從p(x)進(jìn)行采樣,就和直接從真實(shí)分布進(jìn)行采樣是一樣的,積分結(jié)果當(dāng)然是沒(méi)有誤差的。這提醒我們,在選取p(x)分布時(shí)要盡可能的與實(shí)際分布接近,從而極大程度的降低方差,從而減少需要采樣的數(shù)量。

        四、重要性采樣與序列重要性采樣

        4.1 重要性采樣(Importance Sampling, IS)

        6.png

        4.2 序列重要性采樣(Sequential Importance Sampling, SIS)

        5.png4.png

        4.3 重采樣(Resampling)

        在實(shí)際過(guò)程中,我們發(fā)現(xiàn)利用權(quán)重更新公式進(jìn)行更新時(shí),在幾次迭代之后,權(quán)重的分布會(huì)極其不均勻,出現(xiàn)個(gè)別粒子權(quán)重很大接近于1,而其他的都接近于0的情況。這時(shí)候采用了一種“重采樣”策略,即每次權(quán)重更新之后,根據(jù)當(dāng)前權(quán)重對(duì)所有粒子進(jìn)行重采樣,之后將所有權(quán)重設(shè)定為相同。這樣我們用粒子的數(shù)量代替了粒子的權(quán)重,避免了權(quán)重的不均勻。

        5. 粒子濾波(Particle Filter)

        3.png

        此時(shí)對(duì)權(quán)重更新公式進(jìn)行變形(在不產(chǎn)生歧義情況下部分內(nèi)容用點(diǎn)省略):

        2.png1.png

        6. 總結(jié)

        本文首先從濾波問(wèn)題說(shuō)起,指出了貝葉斯濾波框架下積分很難求的問(wèn)題。由此引出蒙特卡洛方法。之后為了降低誤差、減少運(yùn)算量和避免權(quán)重集中,對(duì)應(yīng)出現(xiàn)了重要性采樣、序列重要性采樣與重采樣,順理成章的得出了粒子濾波的數(shù)學(xué)原理,之后給出了對(duì)應(yīng)的物理模型。最后給出了簡(jiǎn)單的粒子濾波的完整算法。

        作者希望通過(guò)本文,能夠使得大家對(duì)粒子濾波的學(xué)習(xí)有一個(gè)完整的認(rèn)識(shí),知道粒子濾波之前有什么,而不是上來(lái)就對(duì)著資料直接學(xué)習(xí)粒子濾波本身。網(wǎng)絡(luò)上的學(xué)習(xí)資料甚多,在這里只推薦一個(gè):徐亦達(dá)機(jī)器學(xué)習(xí)Particle Filter:https://www.bilibili.com/video/BV1xW411N7f1?p=1。耐心看完,會(huì)有收獲。

        *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



        關(guān)鍵詞:

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宁远县| 娄烦县| 藁城市| 南乐县| 合川市| 井陉县| 大渡口区| 三原县| 江山市| 南汇区| 亳州市| 万载县| 秭归县| 虹口区| 谷城县| 鲁山县| 金山区| 长子县| 沐川县| 璧山县| 平湖市| 宁海县| 讷河市| 大同县| 成都市| 闻喜县| 隆尧县| 忻城县| 砀山县| 安塞县| 京山县| 吉木乃县| 涟水县| 喀什市| 河源市| 昌平区| 彭泽县| 从化市| 乐业县| 泾阳县| 彭阳县|