天天看點

粒子濾波學習記錄粒子濾波學習記錄

粒子濾波學習記錄

1.概況

粒子濾波是貝葉斯濾波中一種非參數實作。它的出發點是利用一系列從後驗機率分布中采樣的粒子去表示這個後驗機率。優點在于它可以表示各種奇形怪狀的分布,也可以應對非線性變換。

參數估計與非參數估計:比如下面的例子,假設有一個分布,那麼參數濾波會先确定它是個高斯分布,然後求出它的機率密度函數(由均值、方差等參數給出);而粒子濾波不去糾結這個分布的具體函數是什麼,而是利用從這個分布采樣出的大量的樣本,利用樣本去描述這個分布。那麼粒子濾波為什麼可以這麼做呢?

粒子濾波學習記錄粒子濾波學習記錄

蒙特卡洛采樣:直覺的說,假設我們能從一個目标機率分布采樣到一系列的樣本,那麼就能利用這些樣本去估計這個分布的某些性質。這裡我聯想到了大數定律,和抛硬币的實驗頻率與機率的概念。在抛硬币試驗中,如果隻抛幾次,正反面出現的次數沒有什麼規律,但是如果抛的次數足夠多,正反面出現的頻率就越來越接近真實值。以上圖為例,我從一維機率分布中采樣,那麼樣本更可能出現在高斯均值附近,是以那裡的樣本比較密集;而越遠離均值,樣本越稀疏。如果我采集的每一個樣本,給對應的位置加1,然後把頻率圖畫出來,當樣本足夠大時,形狀應該和分布形狀相似。

那麼反過來,雖然不知道分布的具體形狀,但樣本在某個區間越密集,則那個區間的機率越大,越容易出現peak。是以形象的講,樣本可以反過來推出分布的樣子。

粒子濾波學習記錄粒子濾波學習記錄

2.粒子濾波算法

流程

在particle filter中,粒子集表示如下:

粒子濾波學習記錄粒子濾波學習記錄

這裡,粒子是從後驗分布中采樣出來的,每個粒子都是t時刻狀态的一種可能假設。是以粒子濾波思想就是用粒子集來近似後驗分布。那麼,某個假設被選中加入粒子集大軍的可能性是與後驗分布相關的:

粒子濾波學習記錄粒子濾波學習記錄

由于峰值(對應真值)附近的粒子更容易被采集到,意味着某個範圍内粒子落入的越多,狀态真值越容易落在這個區間。上面提到的是标準粒子濾波算法,當粒子趨向于無窮是的特性,對于有限的M,粒子會從稍稍不同的分布中采樣。實踐中如果粒子數目不少于100,差别可以忽略不計。

t時刻的後驗分布由t時刻的粒子集描述,t-1時刻的後驗分布由t-1時刻的粒子集描述。根據貝葉斯濾波,粒子濾波就是在遞歸的求粒子集:輸入是上一時刻的粒子集,目前時刻的控制,觀測,輸出是目前的粒子集

粒子濾波學習記錄粒子濾波學習記錄
粒子濾波學習記錄粒子濾波學習記錄

我們來分析一下這個代碼:

1.輸入

2.定義兩個 空粒子集

3.對t-1時刻的M個粒子逐一處理

4.對每個粒子施加控制(含噪聲),在狀态轉移分布中采樣得到一個新粒子。所有M個新粒子組成了先驗集

5.對新粒子計算重要性因子(也就是所謂權重),即某個粒子目前狀态下得到目前觀測的可能性。後面會提到,它很重要。

6.将粒子和其重要性因子組合起來

7.循環結束

重采樣部分

8~11.從粒子集中采樣M次,以生成等大小的新粒子集。抽到粒子集中哪個粒子和它的權重有關,權重大的粒子更容易被抽到(甚至反複抽到)。這個過程中,粒子就向某些區域慢慢聚集起來。重采樣結束,得到的新粒子集組成後驗集。

12.傳回粒子集

我們看到,粒子并不是直接從後驗分布中采樣的,其實算法的trick就是在重采樣這裡,即便不是直接從後驗分布中采樣,但經過重采樣的變換後的粒子卻服從了後驗分布。

重采樣進一步了解

假設f是未知分布,稱其為目标分布,g為已知分布,稱其為提議分布。現在的問題是,怎麼通過提議分布g的粒子集得到服從目标分布f的粒子集?結合下圖會很好的了解。首先,從g中采樣出一批粒子,以藍色的豎線表示:

粒子濾波學習記錄粒子濾波學習記錄

然後計算f和g之間的不比對程度,即權重因子w

粒子濾波學習記錄粒子濾波學習記錄
粒子濾波學習記錄粒子濾波學習記錄
粒子濾波學習記錄粒子濾波學習記錄

再依據權重進行重采樣,由于豎線高(對應着權重大)的粒子更容易被選中,是以重采樣後的粒子都圍在豎線高的位置,分布就變樣了,改為服從目标分布f。

粒子濾波學習記錄粒子濾波學習記錄
粒子濾波學習記錄粒子濾波學習記錄

3.小結

為什麼别人領悟的那麼透徹…

祝大家周末愉快~

文章轉自:https://blog.csdn.net/setella/article/details/82912604

繼續閱讀