您當前的位置:首頁 > 攝影

一步步學會隨機有限集 之 貝葉斯遞迴濾波

作者:由 繆天磊 發表于 攝影時間:2020-04-17

之前已經介紹基於隨機有限集理論的運算方式,這篇文章來解釋貝葉斯濾波迭代。

對於多目標跟蹤問題,求解的過程主要是基於貝葉斯濾波迭代和模型,我們常常聽到的卡爾曼濾波器(Kalman Filter)和粒子濾波器(Particle Filter)等等都是基於貝葉斯濾波迭代的,讓我們簡單回顧一下:

貝葉斯濾波是基於貝葉斯規則的,學過機率論的同學應該會有印象,貝葉斯規則其實很簡單,就是:

P(A|B)P(B)=P(B|A)P(A) \\

其中

P(B)

是事件B發生的機率,

P(A|B)

是在事件B發生後,事件A發生的機率;公式右側也是類似。這個公式有什麼用呢?我們稍微調整一下形式:

P(A|B)=\frac{P(B|A)P(A)}{P(B)} \\

此時這個公式的意義就變成了,在事件B發生之後事件A發生的機率可以由另外三項計算得到。讓我們來看一個簡單的例子:一個班裡有10個男生,10個女生,如果隨機抽一個人,我們就用事件A表示抽到的人是男生,

P(A)

就是抽到男生的機率,這裡是1/2;然後夏天到了,很多同學穿起了裙子,女生裡一般有5人穿裙子,男生裡有一人穿裙子(別問我為什麼,手動狗頭),事件B就是穿裙子。那我們提問抽到一個穿裙子的同學,它是男生的機率是多少?我們可能一下子回答不出來(說一下就能算出來的同學先坐下),但是用貝葉斯公式,我們可以算出

P(B|A)=1/10

,即男生中穿裙子的機率是十分之一,以及整個班裡穿裙子的機率

P(B) = (5+1)/20=3/10

,接著就能算出穿裙子的人中男生的機率

P(A|B)=\frac{\frac{1}{10} \times \frac{1}{2}}{\frac{6}{20}} = \frac{1}{6} \\

這個例子可能大家要說,總共就6個人穿裙子,一個是男生,不是直接就算出來了嗎?讓我們再看一個例子,家裡的煙霧報警器,現在我們把事件A和B分別替換成真的發生火災和煙霧報警器響,假設我們知道火災是20年發生一次,而煙霧報警器平均每三個月都要響一次(可能是有人偷偷抽菸),那麼現在問,如果煙霧報警器響了,此時發生火災的機率,這個機率就沒這麼容易算了,那麼現在就是貝葉斯規則發揮的時候了。直接算這個題不容易,但是我們知道火災機率(以月為基礎單位)

P(A) = \frac{1}{20 \times 12} = \frac{1}{240}

,而

P(B) =  \frac{1}{3}

, 另外我們假設火災時煙霧報警器響的機率是百分之九十,即

P(B|A) = 0.9

。那麼現在我們就可以得到煙霧報警器響的時候發生火災的機率

P(A|B)=\frac{0.9 \times \frac{1}{240}}{\frac{1}{3}} = \frac{9}{800} \approx 0.0112 \\

現在大家應該能體會到貝葉斯公式的意義,即在很多時候,對於我們想要求的

P(A|B)

並不是直接能得到的,例如在目標追蹤領域,我們通常是先得到了測量結果,再反過來推算目標的真實位置。

現在我們回到貝葉斯遞迴濾波,其本質也是利用貝葉斯規則,只不過是遞迴的計算,每一步計算中都用了上一步得到的結果(關於為什麼要用遞迴,在我另一篇文章裡有詳細介紹:

https://

zhuanlan。zhihu。com/p/13

3862177

)。通常由兩個步驟,分別為

預測

更新。

預測:即透過我們假設的運動模型和上一步的結果,來預測這一時刻目標可能的狀態

更新:透過在這個時刻又接收到的新的測量結果和測量模型,結合預測步的結果,來更新目標狀態。

公式如下:

預測:

p( \bm{x}_k | \bm{z}_{1:k-1}) = \int p(\bm{x}_k | \bm{x}_{k-1})  p(\bm{x}_{k-1} | \bm{z}_{1:k-1}) \delta \bm{x}_{k-1} \\

更新:

p(\bm{x}_k | \bm{z}_{1:k}) = \frac{p(\bm{z}_k | \bm{x}_k) p(\bm{x}_k | \bm{z}_{1:k-1})} {\int p(\bm{z}_k | \bm{x}

其中z是測量結果的集合,x是目標狀態的集合。其實就是把之前的A和B替換成了x和z。我們觀察可以發現,如果我們把

\int p(\bm{z}_k | \bm{x}

看作p(z),那麼更新步其實就是用了貝葉斯規則,而對於p(x),則是用了預測結果來代替(預測步是利用了Chapman-Kolmogorov公式)。

我們對於每一項都賦予新的術語:

 p(\bm{x}_k | \bm{x}_{k-1})

:傳遞密度

p(\bm{x}_{k-1} | \bm{z}_{1:k-1})

:上一步的後驗密度

p(\bm{x}_k | \bm{z}_{1:k-1})

:先驗密度

p(\bm{x}_k | \bm{z}_{1:k})

:後驗密度

p(\bm{z}_k | \bm{x}_k)

:測量似然

\int p(\bm{z}_k | \bm{x}

:預測似然

可以發現要使這個過程傳遞起來,除了初始值以外,其中兩項

p(\bm{x}_k | \bm{x}_{k-1})

p(\bm{z}_k | \bm{x}_k)

必須要得到計算,而要計算這兩項分別需要運動和測量模型,我會在之後著重介紹。其中要注意的是,因為是基於RFS理論,這裡的x和z都是隨機有限集,機率密度函式也遵循集合的計算方式。

標簽: 貝葉斯  機率  裙子  男生  我們