Problem Statement
我們考慮一個具有馬爾可夫性質、非線性、非高斯的狀態空間模型(State Space Model):對於一個時間序列上的觀測結果{ y t , t ∈ N } \{ y_t , t \in N \} { y t , t ∈ N } ,我們認爲每個觀測結果y t y_t y t 的生成依賴於一個無法直接觀察的隱變量x t ∈ { x t , t ∈ N } x_t \in \{x_t , t \in N \} x t ∈ { x t , t ∈ N } ,即:p ( y t ∣ x t ) , t ∈ [ 1 , N ] p(y_t|x_{t}), t \in [1,N] p ( y t ∣ x t ) , t ∈ [ 1 , N ] ;我們假設隱變量具有一個先驗的狀態轉移函數p ( x t ∣ x t − 1 ) , t ∈ [ 1 , N ] p(x_t | x_{t-1}), t \in [1,N] p ( x t ∣ x t − 1 ) , t ∈ [ 1 , N ] ,若給定一個初始分佈p ( x 0 ) p(x_0) p ( x 0 ) ,那麼這個模型就能由這三個參數描述:p ( x 0 ) , p ( x t ∣ x t − 1 ) , p ( y t ∣ x t ) p(x_0),p(x_t| x_{t-1}),p(y_t|x_t) p ( x 0 ) , p ( x t ∣ x t − 1 ) , p ( y t ∣ x t ) 。這裏,我們定義到時間t t t 的觀察序列:x 0 : t = { x 0 , … , x t } \mathbf{x_{0:t}}=\{ x_0, \dots, x_t\} x 0 : t = { x 0 , … , x t } 和對應的隱變量序列y 1 : t = { y 1 , … , y t } \mathbf{y_{1:t}}=\{ y_1, \dots, y_t\} y 1 : t = { y 1 , … , y t } 。
我們關心如何根據當前的觀測序列來推斷(infer)隱變量序列,即估計一個後驗概率分佈p ( x 0 : t ∣ y 1 : t ) p(\mathbf{x_{0:t}| y_{1:t}}) p ( x 0 : t ∣ y 1 : t ) ,和它的邊緣概率分佈:p ( x t ∣ y 1 : t ) p(x_{t}| \mathbf{y_{1:t}}) p ( x t ∣ y 1 : t ) (這裏通常被稱爲濾波, filtering) ,以及它對於某個函數f t f_t f t 的期望:
I ( f t ) = E p ( x 0 : t ∣ y 1 : t ) f t ( x 0 ; t ) = ∫ p ( x 0 : t ∣ y 1 : t ) f t ( x 0 ; t ) d x 1 : t
I(f_t) = \mathbb{E}_{p(\mathbf{x_{0:t}| y_{1:t}})} f_t(\mathbf{x_{0;t}}) = \int p(\mathbf{x_{0:t}| y_{1:t}}) f_t(\mathbf{x_{0;t}}) d_{\mathbf{x_{1:t}}}
I ( f t ) = E p ( x 0 : t ∣ y 1 : t ) f t ( x 0 ; t ) = ∫ p ( x 0 : t ∣ y 1 : t ) f t ( x 0 ; t ) d x 1 : t
在任何時間t t t ,我們可以推導p ( x 0 : t + 1 ∣ y 1 : t + 1 ) p(\mathbf{x_{0:t+1}| y_{1:t+1}}) p ( x 0 : t + 1 ∣ y 1 : t + 1 ) 和p ( x 0 : t ∣ y 1 : t ) p(\mathbf{x_{0:t}| y_{1:t}}) p ( x 0 : t ∣ y 1 : t ) 之間的關係:
p ( x 0 : t + 1 ∣ y 1 : t + 1 ) = p ( x 0 : t + 1 , y 1 : t + 1 ) p ( y 1 : t + 1 ) = p ( x 0 : t + 1 , y t + 1 ∣ y t ) p ( y 1 : t ) p ( y 1 : t + 1 ) = p ( x 0 : t ∣ y 1 : t ) p ( y t + 1 , x t + 1 ∣ x 0 : t , y 1 : t ) p ( y 1 : t ) p ( y 1 : t , y t + 1 ) = p ( x 0 : t ∣ y 1 : t ) p ( x t + 1 ∣ y 1 : t , x 0 : t ) p ( y t + 1 ∣ x 0 : t , y 1 : t , x t + 1 ) p ( y 1 : t ) p ( y t + 1 ∣ y 1 : t ) p ( y 1 : t ) = p ( x 0 : t ∣ y 1 : t ) p ( x t + 1 ∣ x t ) p ( y t + 1 ∣ x t + 1 ) p ( y t + 1 ∣ y 1 : t )
\begin{aligned}
{p(\mathbf{x_{0:t+1}| y_{1:t+1}})}
&= \frac {p(\mathbf{x_{0:t+1}, y_{1:t+1}})} {p(\mathbf{y_{1:t+1}})}
\\ &= \frac{p (\mathbf{x_{0:t+1}},y_{t+1}|\mathbf{y}_t) p(\mathbf{y_{1:t}})}{p(\mathbf{y_{1:t+1}})}
\\ &= \frac {p(\mathbf{x_{0:t}}|\mathbf{y_{1:t}})p(y_{t+1},x_{t+1}|\mathbf{x_{0:t}},\mathbf{y_{1:t}}) p(\mathbf{y_{1:t}}) }{p(\mathbf{y_{1:t}},y_{t+1})}
\\ &= \frac {p(\mathbf{x_{0:t}}|\mathbf{y_{1:t}})p(x_{t+1}|\mathbf{y_{1:t}},\mathbf{x_{0:t}})p(y_{t+1}|\mathbf{x_{0:t}},\mathbf{y_{1:t}},x_{t+1}) p(\mathbf{y_{1:t}}) }{p(y_{t+1}| \mathbf{y_{1:t}}) p(\mathbf{y_{1:t}})}
\\&= p(\mathbf{x_{0:t}}|\mathbf{y_{1:t}}) \frac {p(x_{t+1}|x_t) p(y_{t+1}|x_{t+1}) }{p(y_{t+1}|\mathbf{y_{1:t}})}
\end{aligned}
p ( x 0 : t + 1 ∣ y 1 : t + 1 ) = p ( y 1 : t + 1 ) p ( x 0 : t + 1 , y 1 : t + 1 ) = p ( y 1 : t + 1 ) p ( x 0 : t + 1 , y t + 1 ∣ y t ) p ( y 1 : t ) = p ( y 1 : t , y t + 1 ) p ( x 0 : t ∣ y 1 : t ) p ( y t + 1 , x t + 1 ∣ x 0 : t , y 1 : t ) p ( y 1 : t ) = p ( y t + 1 ∣ y 1 : t ) p ( y 1 : t ) p ( x 0 : t ∣ y 1 : t ) p ( x t + 1 ∣ y 1 : t , x 0 : t ) p ( y t + 1 ∣ x 0 : t , y 1 : t , x t + 1 ) p ( y 1 : t ) = p ( x 0 : t ∣ y 1 : t ) p ( y t + 1 ∣ y 1 : t ) p ( x t + 1 ∣ x t ) p ( y t + 1 ∣ x t + 1 )
Monte Carlo Sampling
假設我們能夠從p ( x 0 : t ∣ y 0 : t ) p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) p ( x 0 : t ∣ y 0 : t ) 生成N個獨立同分布的隨機樣本(也被稱爲粒子particles),那麼f t f_t f t 的期望可以用以下表示:
I N ( f t ) = 1 N ∑ i = 1 N f t ( x 0 : t ( i ) )
I_N(f_t) = \frac{1}{N} \sum_{i=1}^N f_t(\mathbf{x^{(i)}_{0:t}})
I N ( f t ) = N 1 i = 1 ∑ N f t ( x 0 : t ( i ) )
當N足夠大時,蒙特卡洛採樣能夠無偏估計f t f_t f t 的期望,然而我們通常是不知道先驗分佈p ( x 0 : t ∣ y 0 : t ) p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) p ( x 0 : t ∣ y 0 : t ) 的,因此採樣的樣本是隨機採樣的,這就會導致這種方法效率不會很高,尤其是當隨機採樣的分佈與p ( x 0 : t ∣ y 0 : t ) p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) p ( x 0 : t ∣ y 0 : t ) 的分佈相差較大時。
Importance Sampling (IS)
爲了解決採樣效率問題,我們引用一個重要性分佈π ( x 0 : t ∣ y 0 : t ) \pi(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) π ( x 0 : t ∣ y 0 : t ) 來代替之前蒙特卡洛方法裏的隨機採樣,那麼採樣權重(importance weight)可以表示爲:
w ( x 0 : t ) = p ( x 0 : t ∣ y 0 : t ) π ( x 0 : t ∣ y 0 : t )
w(\mathbf{x_{0:t}})= \frac { p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}})} {\pi(\mathbf{x_{0:t}}|\mathbf{y_{0:t}})}
w ( x 0 : t ) = π ( x 0 : t ∣ y 0 : t ) p ( x 0 : t ∣ y 0 : t )
則f t f_t f t 的期望可以被寫成:
I ( f t ) = ∫ f t ( x 0 : t ) p ( x 0 : t ∣ y 0 : t ) d x 0 : t = ∫ π ( x 0 : t ∣ y 0 : t ) p ( x 0 : t ∣ y 0 : t ) π ( x 0 : t ∣ y 0 : t ) f t ( x 0 : t ) d x 0 : t = E π ( x 0 : t ∣ y 0 : t ) [ w ( x 0 : t ) f t ( x 0 : t ) ] = 1 N ∑ i = 1 N [ w ( x 0 : t ( i ) ) f t ( x 0 : t ( i ) ) ]
\begin{aligned}
I(f_t) &= \int f_t(\mathbf{x_{0:t}}) p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) d_{\mathbf{x_{0:t}}}
\\ &= \int \pi(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) \frac { p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}})} {\pi(\mathbf{x_{0:t}}|\mathbf{y_{0:t}})} f_t(\mathbf{x_{0:t}}) d_{\mathbf{x_{0:t}}}
\\&= \mathbb{E}_{\pi(\mathbf{x_{0:t}}|\mathbf{y_{0:t}})} [w(\mathbf{x_{0:t}})f_t(\mathbf{x_{0:t}})]
\\ &= \frac{1}{N} \sum_{i=1}^N [w(\mathbf{x^{(i)}_{0:t}}) f_t(\mathbf{x^{(i)}_{0:t}})]
\end{aligned}
I ( f t ) = ∫ f t ( x 0 : t ) p ( x 0 : t ∣ y 0 : t ) d x 0 : t = ∫ π ( x 0 : t ∣ y 0 : t ) π ( x 0 : t ∣ y 0 : t ) p ( x 0 : t ∣ y 0 : t ) f t ( x 0 : t ) d x 0 : t = E π ( x 0 : t ∣ y 0 : t ) [ w ( x 0 : t ) f t ( x 0 : t ) ] = N 1 i = 1 ∑ N [ w ( x 0 : t ( i ) ) f t ( x 0 : t ( i ) ) ]
我們還可以推導另外一種寫法:由於∫ p ( x ) d x = 1 \int p(x)dx=1 ∫ p ( x ) d x = 1 ,有∫ π ( x ) w ( x ) d x = 1 \int \pi(x)w(x)dx=1 ∫ π ( x ) w ( x ) d x = 1 ,因此E π ( x ) w ( x ) = 1 \mathbb{E}_{\pi(x)}w(x)=1 E π ( x ) w ( x ) = 1 ,然後得到1 N w ( x ) = 1 \frac{1}{N}w(x)=1 N 1 w ( x ) = 1 ,即w ( x ) = N w(x)=N w ( x ) = N ,則上面的式子可以被這麼寫:
I ( f t ) = 1 N ∑ i = 1 N [ w t ( i ) f t ( x 0 : t ( i ) ) ] = ∑ i = 1 N [ w t ( i ) N f t ( x 0 : t ( i ) ) ] = ∑ i = 1 N [ w t ( i ) ∑ w t ( i ) f t ( x 0 : t ( i ) ) ] = ∑ i = 1 N w t ~ f t ( x 0 : t ( i ) )
\begin{aligned}
I(f_t) &= \frac{1}{N} \sum_{i=1}^N [w_t^{(i)} f_t(\mathbf{x^{(i)}_{0:t}})] \\
& = \sum_{i=1}^N [\frac{w_t^{(i)}}{N} f_t(\mathbf{x^{(i)}_{0:t}})] \\
& = \sum_{i=1}^N [\frac{w_t^{(i)}}{\sum w_t^{(i)}} f_t(\mathbf{x^{(i)}_{0:t}})] \\
&= \sum_{i=1}^N \tilde{w_t}f_t(\mathbf{x^{(i)}_{0:t}})
\end{aligned}
I ( f t ) = N 1 i = 1 ∑ N [ w t ( i ) f t ( x 0 : t ( i ) ) ] = i = 1 ∑ N [ N w t ( i ) f t ( x 0 : t ( i ) ) ] = i = 1 ∑ N [ ∑ w t ( i ) w t ( i ) f t ( x 0 : t ( i ) ) ] = i = 1 ∑ N w t ~ f t ( x 0 : t ( i ) )
這裏的w t ~ = w t ( x ) ∑ w t ( x ) \tilde{w_t}=\frac{w_t(x)}{\sum w_t(x)} w t ~ = ∑ w t ( x ) w t ( x ) 是一個歸一化後的採樣權重(normalized importance weight),重要性採樣IS是一個通用的蒙特卡洛方法,但是由於它的表現形式,它在時間序列上並不能進行遞歸估計,比如:爲了計算p ( x 0 : t ∣ y 0 : t ) p(\mathbf{x_{0:t}}|\mathbf{y_{0:t}}) p ( x 0 : t ∣ y 0 : t ) ,IS需要獲得所有的y 0 : t \mathbf{y_{0:t}} y 0 : t 然後才能進行計算,然後當新的y t + 1 y_{t+1} y t + 1 到來時,IS需要重新在整個觀測序列y 0 : t + 1 \mathbf{y_{0:t+1}} y 0 : t + 1 上來計算,時間複雜度高,因此我們接下來介紹在時間序列上的重要性採樣。
Sequential Importance Sampling (SIS)
我們能夠擴展IS方法,使它在t + 1 t+1 t + 1 時刻的計算能夠使用t t t 時刻的計算結果。我們先將重要性函數π ( x 0 : t ∣ y 1 : t ) \pi(\mathbf{x_{0:t}|y_{1:t}}) π ( x 0 : t ∣ y 1 : t ) 用t − 1 t-1 t − 1 時刻描述:
π ( x 0 : t ∣ y 1 : t ) = π ( x 0 : t − 1 ∣ y 1 : t ) π ( x t ∣ x 0 : t − 1 , y 1 : t ) = π ( x 0 : t − 1 ∣ y 1 : t − 1 ) π ( x t ∣ x 0 : t − 1 , y 1 : t )
\begin{aligned}
\pi(\mathbf{x_{0:t}|y_{1:t}}) &= \pi(\mathbf{x_{0:t-1}|y_{1:t}})\pi(x_t| \mathbf{x_{0:t-1},y_{1:t}}) \\
&= \pi(\mathbf{x_{0:t-1}|y_{1:t-1}})\pi(x_t| \mathbf{x_{0:t-1},y_{1:t}}) \\
\end{aligned}
π ( x 0 : t ∣ y 1 : t ) = π ( x 0 : t − 1 ∣ y 1 : t ) π ( x t ∣ x 0 : t − 1 , y 1 : t ) = π ( x 0 : t − 1 ∣ y 1 : t − 1 ) π ( x t ∣ x 0 : t − 1 , y 1 : t )
於是我們有:
π ( x 0 : t ∣ y 1 : t ) = π ( x 0 ) ∏ k t π ( x k ∣ x 0 : k − 1 , y 1 : k )
\begin{aligned}
\pi(\mathbf{x_{0:t}|y_{1:t}}) &= \pi(x_0) \prod_k^t \pi(x_k|\mathbf{x_{0:k-1},y_{1:k}})
\end{aligned}
π ( x 0 : t ∣ y 1 : t ) = π ( x 0 ) k ∏ t π ( x k ∣ x 0 : k − 1 , y 1 : k )
到這裏,由於我們可以推導出p ( x 0 : t ∣ y 1 : t ) p(\mathbf{x_{0:t}}|\mathbf{y_{1:t}}) p ( x 0 : t ∣ y 1 : t ) 和π ( x 0 : t ∣ y 1 : t ) \pi(\mathbf{x_{0:t}}|\mathbf{y_{1:t}}) π ( x 0 : t ∣ y 1 : t ) 關於t − 1 t-1 t − 1 時刻的計算,則對於重要性權重w t w_t w t 我們同樣有:
w t ( i ) ( x 0 : t ) = p ( x 0 : t ( i ) ∣ y 1 : t ( i ) ) π ( x 0 : t ( i ) ∣ y 1 : t ( i ) ) = p ( x 0 : t − 1 ( i ) ∣ y 1 : t − 1 ( i ) ) π ( x 0 : t − 1 ( i ) ∣ y 1 : t − 1 ( i ) ) p ( x t ( i ) ∣ x t − 1 ( i ) ) p ( y t ∣ x t ( i ) ) p ( y t ∣ y 1 : t − 1 ) π ( x t ∣ x 0 : t − 1 ( i ) , y 1 : t ) = w t − 1 ( i ) ( x 0 : t − 1 ( i ) ) p ( x t ( i ) ∣ x t − 1 ( i ) ) p ( y t ∣ x t ( i ) ) p ( y t ∣ y 1 : t − 1 ) π ( x t ( i ) ∣ x 0 : t − 1 ( i ) , y 1 : t )
\begin{aligned}
w^{(i)}_t(\mathbf{x_{0:t}}) &= \frac { p(\mathbf{x_{0:t}}^{(i)}|\mathbf{y_{1:t}}^{(i)})} {\pi(\mathbf{x_{0:t}}^{(i)}|\mathbf{y_{1:t}}^{(i)})}
\\ &= \frac { p(\mathbf{x_{0:t-1}}^{(i)}|\mathbf{y_{1:t-1}}^{(i)})} {\pi(\mathbf{x_{0:t-1}}^{(i)}|\mathbf{y_{1:t-1}}^{(i)})} \frac {p(x_{t}^{(i)}|x_{t-1}^{(i)}) p(y_{t}|x_{t}^{(i)}) }{p(y_{t}| \mathbf{y_{1:{t-1}}}) \pi(x_t|\mathbf{x_{0:t-1}}^{(i)}, \mathbf{y_{1:t}}) }
\\ &= w^{(i)}_{t-1}(\mathbf{x_{0:t-1}}^{(i)}) \frac {p(x_{t}^{(i)}|x_{t-1}^{(i)}) p(y_{t}|x_{t}^{(i)}) }{p(y_{t}|\mathbf{y_{1:t-1}}) \pi(x_t^{(i)}|\mathbf{x_{0:t-1}}^{(i)},\mathbf{y_{1:t}}) }
\end{aligned}
w t ( i ) ( x 0 : t ) = π ( x 0 : t ( i ) ∣ y 1 : t ( i ) ) p ( x 0 : t ( i ) ∣ y 1 : t ( i ) ) = π ( x 0 : t − 1 ( i ) ∣ y 1 : t − 1 ( i ) ) p ( x 0 : t − 1 ( i ) ∣ y 1 : t − 1 ( i ) ) p ( y t ∣ y 1 : t − 1 ) π ( x t ∣ x 0 : t − 1 ( i ) , y 1 : t ) p ( x t ( i ) ∣ x t − 1 ( i ) ) p ( y t ∣ x t ( i ) ) = w t − 1 ( i ) ( x 0 : t − 1 ( i ) ) p ( y t ∣ y 1 : t − 1 ) π ( x t ( i ) ∣ x 0 : t − 1 ( i ) , y 1 : t ) p ( x t ( i ) ∣ x t − 1 ( i ) ) p ( y t ∣ x t ( i ) )
對於當前t t t 時刻來說,p ( y t ∣ y 1 : t − 1 ) p(y_{t}|\mathbf{y_{1:t-1}}) p ( y t ∣ y 1 : t − 1 ) 是確定的,而且對於所有的採樣樣本x 0 : t ( i ) , i ∈ N \mathbf{x_{0:t}}^{(i)},i \in N x 0 : t ( i ) , i ∈ N 都一致,因此還我們可以這麼表示w ~ t ( i ) \tilde w^{(i)}_t w ~ t ( i ) 的更新:
w ~ t ( i ) ( x 0 : t ) ∝ w ~ t − 1 ( i ) ( x 0 : t − 1 ) p ( x t ∣ x t − 1 ) p ( y t ∣ x t ) π ( x t ∣ x 0 : t − 1 , y 1 : t )
\begin{aligned}
\tilde w^{(i)}_t(\mathbf{x_{0:t}}) & \propto \tilde w^{(i)}_{t-1}(\mathbf{x_{0:t-1}}) \frac {p(x_{t}|x_{t-1}) p(y_{t}|x_{t}) }{\pi(x_t|\mathbf{x_{0:t-1},y_{1:t}}) }
\end{aligned}
w ~ t ( i ) ( x 0 : t ) ∝ w ~ t − 1 ( i ) ( x 0 : t − 1 ) π ( x t ∣ x 0 : t − 1 , y 1 : t ) p ( x t ∣ x t − 1 ) p ( y t ∣ x t )
當我們採用先驗分佈作爲重要性分佈時,我們的重要性函數變成了:
π ( x 0 : t ∣ y 1 : t ) = p ( x 0 : t ) = p ( x 0 ) ∏ k = 1 t π ( x k ∣ x k − 1 )
\begin{aligned}
\pi(\mathbf{x_{0:t}|y_{1:t}}) &= p(\mathbf{x_{0:t}}) =p(x_0) \prod_{k=1}^t \pi(x_k|x_{k-1})
\end{aligned}
π ( x 0 : t ∣ y 1 : t ) = p ( x 0 : t ) = p ( x 0 ) k = 1 ∏ t π ( x k ∣ x k − 1 )
因此w w w 的更新被簡化爲:w ~ t ( i ) ( x 0 : t ) ∝ w ~ t − 1 ( i ) ( x 0 : t − 1 ) p ( y t ∣ x t ( i ) ) \tilde w^{(i)}_t(\mathbf{x_{0:t}}) \propto \tilde w^{(i)}_{t-1}(\mathbf{x_{0:t-1}}) p (y_{t}|x_t^{(i)}) w ~ t ( i ) ( x 0 : t ) ∝ w ~ t − 1 ( i ) ( x 0 : t − 1 ) p ( y t ∣ x t ( i ) ) 。SIS是一個不錯的方法,但本質上就是一個帶約束的重要性採樣方法,但是它在高維度空間的計算並不是很有效,比如當t t t 非常大時。
Bootstrap Filtering = Resampling + SIS
SIS的問題是:當t增加時,重要性權重的分佈的計算會越來越不準確,尤其是當時間t達到一定量時,通常只有很少的樣本(粒子)是有非零權重的,而大部分樣本(粒子)的權重都是0,因此會讓這個採樣分佈無法正確描述出先驗分佈。爲了處理這種退化(degeneracy),我們需要加入一個額外的重採樣(resampling)步驟。
重採樣的目的是擴增(multiply)那些權值較高的粒子個數而減少(eliminate)權值低的粒子,具體來說,假設一個粒子具有w ~ t \tilde w_t w ~ t 權值,重採樣會在此粒子附近再採樣N w ~ t N \tilde w_t N w ~ t 個粒子,若w ~ t = 0 \tilde w_t=0 w ~ t = 0 ,那麼這個粒子會被淘汰(dead),剩下的(serviving)粒子會進入到下一個時刻,注意重採樣完後的每個粒子的權值都變成了:w ~ t ( i ) = 1 N , i ∈ N \tilde w_t^{(i)}=\frac{1}{N}, i \in N w ~ t ( i ) = N 1 , i ∈ N 。
假設我們的重要性採樣分佈就是先驗分佈 ,那麼Boostrap Filtering的過程可以被如下歸納:
初始化N N N 個粒子:{ x 0 ( i ) = p ( x 0 ) , i ∈ N } \{x^{(i)}_0=p(x_0),i\in N\} { x 0 ( i ) = p ( x 0 ) , i ∈ N } ,令t = 1 t=1 t = 1 。
採樣N N N 個粒子:{ x ^ t ( i ) ∼ p ( x t ∣ x t − 1 ( i ) ) , i ∈ N } \{\hat x_t^{(i)} \sim p(x_t|x_{t-1}^{(i)}),i \in N\} { x ^ t ( i ) ∼ p ( x t ∣ x t − 1 ( i ) ) , i ∈ N } ,對於每個粒子,更新其採樣軌跡:x ^ 0 : t ( i ) = ( x 0 : t − 1 ( i ) , x ^ t ( i ) ) \mathbf {\hat x_{0:t}}^{(i)} = (\mathbf {x_{0:t-1}}^{(i)},\hat x_t^{(i)}) x ^ 0 : t ( i ) = ( x 0 : t − 1 ( i ) , x ^ t ( i ) ) 。
估計每個粒子的權重:w t ( i ) = p ( y t ∣ x ^ t ( i ) ) w_t^{(i)}=p(y_t|\hat x_t^{(i)}) w t ( i ) = p ( y t ∣ x ^ t ( i ) ) 並歸一化得到w ~ t ( i ) \tilde w_t^{(i)} w ~ t ( i ) (由於上一步的重採樣使w t − 1 ( i ) w_{t-1}^{(i)} w t − 1 ( i ) 都相同,所以不需要參與權重計算)。
根據每個粒子的權重w ~ t ( i ) \tilde w_t^{(i)} w ~ t ( i ) ,從{ x ^ t ( i ) , i ∈ N } \{\hat x_{t}^{(i)},i \in N\} { x ^ t ( i ) , i ∈ N } 中重新採樣N個粒子:{ x t ( i ) , i ∈ N } \{ x_{t}^{(i)},i \in N\} { x t ( i ) , i ∈ N } ,更新x 0 : t ( i ) = ( x 0 : t − 1 ( i ) , x t ( i ) ) \mathbf { x_{0:t}}^{(i)} = (\mathbf {x_{0:t-1}}^{(i)}, x_t^{(i)}) x 0 : t ( i ) = ( x 0 : t − 1 ( i ) , x t ( i ) ) ,此時w ~ t ( i ) = 1 N \tilde w_t^{(i)}=\frac{1}{N} w ~ t ( i ) = N 1 。
重複2-4步驟,且t = t + 1 t=t+1 t = t + 1
Bootstrap Filtering有幾個優點:1. 易實現,計算簡單;2. 擴展性好,當遷移至別的問題時,只需要更改重要性採樣分佈即可;3. 天然支持並行計算,4.重採樣過程可以看成是一種黑匣子,輸入當前的權值和粒子索引,輸出每個粒子要重採樣的次數,因此這種黑匣子有很多種實現方法,這樣可以支持很多的複雜的模型在時間序列上進行推斷(inference)
Conclusion
這種方法其實代表了一種時間序列上的推斷框架,它有很多名字:粒子濾波 / Bootstrap Filtering / 序列化蒙特卡洛 / 序列化重要性採樣 + 重採樣,這種通用的思想可以被用到很多具體的推斷問題上,特別是partially observed問題,如機器人定位,partially observed MDP (POMDPs)。借用一張圖來表示Bootstrap Filtering:
Reference
https://www.stats.ox.ac.uk/~doucet/doucet_defreitas_gordon_smcbookintro.pdf