一步步學會隨機有限集 之 貝葉斯遞迴濾波
之前已經介紹基於隨機有限集理論的運算方式,這篇文章來解釋貝葉斯濾波迭代。
對於多目標跟蹤問題,求解的過程主要是基於貝葉斯濾波迭代和模型,我們常常聽到的卡爾曼濾波器(Kalman Filter)和粒子濾波器(Particle Filter)等等都是基於貝葉斯濾波迭代的,讓我們簡單回顧一下:
貝葉斯濾波是基於貝葉斯規則的,學過機率論的同學應該會有印象,貝葉斯規則其實很簡單,就是:
其中
是事件B發生的機率,
是在事件B發生後,事件A發生的機率;公式右側也是類似。這個公式有什麼用呢?我們稍微調整一下形式:
此時這個公式的意義就變成了,在事件B發生之後事件A發生的機率可以由另外三項計算得到。讓我們來看一個簡單的例子:一個班裡有10個男生,10個女生,如果隨機抽一個人,我們就用事件A表示抽到的人是男生,
就是抽到男生的機率,這裡是1/2;然後夏天到了,很多同學穿起了裙子,女生裡一般有5人穿裙子,男生裡有一人穿裙子(別問我為什麼,手動狗頭),事件B就是穿裙子。那我們提問抽到一個穿裙子的同學,它是男生的機率是多少?我們可能一下子回答不出來(說一下就能算出來的同學先坐下),但是用貝葉斯公式,我們可以算出
,即男生中穿裙子的機率是十分之一,以及整個班裡穿裙子的機率
,接著就能算出穿裙子的人中男生的機率
這個例子可能大家要說,總共就6個人穿裙子,一個是男生,不是直接就算出來了嗎?讓我們再看一個例子,家裡的煙霧報警器,現在我們把事件A和B分別替換成真的發生火災和煙霧報警器響,假設我們知道火災是20年發生一次,而煙霧報警器平均每三個月都要響一次(可能是有人偷偷抽菸),那麼現在問,如果煙霧報警器響了,此時發生火災的機率,這個機率就沒這麼容易算了,那麼現在就是貝葉斯規則發揮的時候了。直接算這個題不容易,但是我們知道火災機率(以月為基礎單位)
,而
, 另外我們假設火災時煙霧報警器響的機率是百分之九十,即
。那麼現在我們就可以得到煙霧報警器響的時候發生火災的機率
現在大家應該能體會到貝葉斯公式的意義,即在很多時候,對於我們想要求的
並不是直接能得到的,例如在目標追蹤領域,我們通常是先得到了測量結果,再反過來推算目標的真實位置。
現在我們回到貝葉斯遞迴濾波,其本質也是利用貝葉斯規則,只不過是遞迴的計算,每一步計算中都用了上一步得到的結果(關於為什麼要用遞迴,在我另一篇文章裡有詳細介紹:
https://
zhuanlan。zhihu。com/p/13
3862177
)。通常由兩個步驟,分別為
預測
和
更新。
預測:即透過我們假設的運動模型和上一步的結果,來預測這一時刻目標可能的狀態
更新:透過在這個時刻又接收到的新的測量結果和測量模型,結合預測步的結果,來更新目標狀態。
公式如下:
預測:
更新:
其中z是測量結果的集合,x是目標狀態的集合。其實就是把之前的A和B替換成了x和z。我們觀察可以發現,如果我們把
看作p(z),那麼更新步其實就是用了貝葉斯規則,而對於p(x),則是用了預測結果來代替(預測步是利用了Chapman-Kolmogorov公式)。
我們對於每一項都賦予新的術語:
:傳遞密度
:上一步的後驗密度
:先驗密度
:後驗密度
:測量似然
:預測似然
可以發現要使這個過程傳遞起來,除了初始值以外,其中兩項
和
必須要得到計算,而要計算這兩項分別需要運動和測量模型,我會在之後著重介紹。其中要注意的是,因為是基於RFS理論,這裡的x和z都是隨機有限集,機率密度函式也遵循集合的計算方式。