給定t時刻以及之前的所有觀測z和輸入u,我們的目標是求得當前狀態量x的概率分布(belief),即
\[bel(x_t)=p(x_t|z_{1:t}, u_{1:t}) \]
在實際使用中,一般將求解過程分為兩步,首先求解在t時刻觀測前的先驗分布,即
\[\overline{bel}(x_t)=p(x_t|z_{1:t-1}, u_{1:t}) \]
然后再根據t時刻的觀測通過貝葉斯公式更新先驗分布,以得到后驗分布,即
\[bel(x_t)=\eta p(z_t|x_t,z_{1:t-1},u_{1:t}) \overline{bel}(x_t) \]
其中\(\eta\)是歸一化系數。
進一步,t時刻的先驗分布可以根據全概率公式用t-1時刻的后延分布表示,即
\[\overline{bel}(x_t)=p(x_t|z_{1:t-1}, u_{1:t}) \\ =\int{p(x_t, x_{t-1}|z_{1:t-1}, u_{1:t})}dx_{t-1} \\ =\int{p(x_t|x_{t-1},z_{1:t-1}, u_{1:t})p(x_{t-1}|z_{1:t-1}, u_{1:t})}dx_{t-1} \]
假設t-1時刻的狀態與t時刻的輸入無關(馬爾科夫性),那么
\[p(x_{t-1}|z_{1:t-1}, u_{1:t})=p(x_{t-1}|z_{1:t-1}, u_{1:t-1})=bel(x_{t-1}) \]
則
\[\overline{bel}(x_t)=\int{p(x_t|x_{t-1},z_{1:t-1}, u_{1:t})bel(x_{t-1})dx_{t-1}} \]
進一步假設馬爾科夫性,即t時刻的狀態只和t時刻的輸入以及t-1時刻的狀態有關,t時刻的觀測只和t時刻的狀態有關,那么
\[p(x_t|x_{t-1},z_{1:t-1}, u_{1:t})=p(x_t|x_{t-1},u_t) \\ p(z_t|x_t,z_{1:t-1},u_{1:t})=p(z_t|x_t) \]
最終可得貝葉斯濾波器的更新方程
\[\overline{bel}(x_t)=\int{p(x_t|x_{t-1},u_t)bel(x_{t-1})dx_{t-1}} \\ bel(x_t)=\eta p(z_t|x_t)\overline{bel}(x_t) \]
一個完整的貝葉斯濾波器就是隨着時間推移不斷執行以上兩步來完成狀態量的估計。其中第一個方程稱為prediction,\(p(x_t|x_{t-1},u_t)\)稱為狀態轉移概率。第二個方程稱為correction,\(p(z_t|x_t)\)稱為觀測概率或測量概率。
由以上推導可知,貝葉斯濾波器對系統狀態的更新進行了馬爾科夫假設,兩個更新方程描述了一個隱馬爾科夫模型(因為狀態量無法直接觀測到,所以為‘隱’),這也是貝葉斯濾波器與基於圖的優化器的區別,基於圖的優化器沒有做馬爾科夫假設。
實際使用貝葉斯濾波器時,需要計算prediction步驟中的積分,離散狀態量可以變為和式計算,而連續狀態量則很難計算,因此對概率分布的形態進行假設或近似就得到了其他濾波器,如下圖所示