理解粒子濾波
一、前言
狀態空間模型分為兩大類,一類是隱馬爾科夫模型,另一類是線性動態系統。兩者都可以用下圖來表示,其中z代表潛變數(未知),x代表觀測變數(已知),關於什麼是潛變數,可以參考我之前一篇文章的第二節。

兩者的不同之處在於,隱馬爾科夫模型適用於潛變數是離散的情形,而線性動態系統適用於潛變數和觀測變數都服從條件線性高斯分佈的情形。所謂的條件線性高斯分佈,舉個例子, ,也就是說,
關於
的條件分佈的均值是關於
值的線性表示。兩種變數都服從高斯分佈的好處就是容易得到解析解。
但是對於某些線性動態系統,它沒有線性高斯的性質,也就是說,一些變數不服從線性高斯分佈,這時如果我們做inference(根據觀測變數推知潛變數)就要藉助於粒子濾波來進行。粒子濾波是一種基於取樣的方法,因為取樣得到的是一個個資料點,所以粒子濾波的名字就是這麼來的。
二、粒子濾波器
假設我們已經建立了一個狀態空間模型,模型結構就是圖1所示,模型引數已知,所謂模型引數已知,意思是 的幾個分佈的引數都已知。
此時假設我們已經得到一個時間序列的觀測值 ,並且我們已經估計出了
。這時我們又觀測到一個
,從而我們想要通過這個
來修正已知的
估計,換句話說,我們想估計
(其實這就是一個濾波的過程,不斷利用新觀測到的值來修正已知的估計)。以上過程就是粒子濾波。
我們可以得到下式,注意在推導過程中我們用到了條件獨立性 ,這個條件獨立性可以從圖1狀態空間模型示意圖得到。


注意f是關於 的某個函式,如果只是要inference
,那令
即可。前面我們已經提到, 我們已經有了
的估計,所以在13.117式中,
是從已估計得到的
中取樣得到的(已知這個分佈的估計的目的就是為了取樣),至於如何知道這個分佈並且進行取樣,我們接下來會提到。其中
我們稱為權重,它代表我們根據已知的
分佈取樣出來的第 個
值能夠在多大程度上解釋我們新觀察到的
,能解釋的程度越大,這個取樣的權重就越高。
這樣一來,我們就通過一系列取樣得到的資料點估計出了 的分佈。
前面我們說到 是已經估計得到的所以我們才能夠從中取樣,接下來的問題是,如何估計這個分佈呢?
換個角度思考,如果我們能得到 ,那麼整個濾波過程就能順序進行下去,也就是說,能估計
,就能取樣得到
,我們就能得到
,我們就能估計
,整個過程就能依次遞迴下去。
我們通過下式即可估計 :

其中 是通過13.118已知的,
是模型本身我們假設就已知的。
注意在推導過程中,我們用到了下列條件獨立性,這些條件獨立性可以從圖1狀態空間模型示意圖得到。

這樣一來,知道初始狀態,整個例子濾波就能依次進行下去了。粒子濾波的整個過程又被稱為sampling-importance-resampling,importance就對應我們估計的權重,resampling就對應13.119這個過程,至於sampling-importance-resampling是什麼意思,第三節的例子中有提到。
三、例子
這裡有一個關於 粒子濾波在飛行器定位上的應用舉例 (時長7分鐘,可能需要梯子),非常形象而且好懂,可能會有助於你理解粒子濾波。