粒子フィルタ

粒子フィルタ（りゅうしフィルタ、英: particle filter）や逐次モンテカルロ法 (ちくじモンテカルロほう、英: sequential Monte Carlo; SMC)とは、シミュレーションに基づく複雑なモデルの推定法である。1993年1月に北川源四郎がモンテカルロフィルタの名称で、1993年4月にN.J. Gordonらがブートストラップフィルタの名称で同時期に同じものを発表した。 この手法はふつうベイズモデルを推定するのに用いられ、バッチ処理であるマルコフ連鎖モンテカルロ法 (MCMC) の逐次 (オンライン) 版である。またこの手法は重点サンプリング法にも似たところがある。 うまく設計すると、粒子フィルタはMCMCよりも高速である。拡張カルマンフィルタや無香カルマンフィルタ (Unscented カルマンフィルタ) に比べて、サンプル点が十分多くなるとベイズ最適推定に近付くことからより高い精度の解が得られるので、これらの代わりに用いられることがある。また手法を組み合わせて、カルマンフィルタを粒子フィルタの提案分布として使うこともできる。 粒子フィルタの目的は、観測不可能な状態列 x k {\displaystyle x_{k}} ( k = 0 , 1 , 2 , 3 , … ) {\displaystyle (k=0,1,2,3,\ldots )} の確率分布を観測値 y k {\displaystyle y_{k}} ( k = 0 , 1 , 2 , 3 , … ) {\displaystyle (k=0,1,2,3,\ldots )} から推定することである。ベイズ推定値 x k {\displaystyle x_{k}} は一つ過去の確率分布 p ( x k | y 0 , y 1 , … , y k ) {\displaystyle p(x_{k}|y_{0},y_{1},\ldots ,y_{k})} から得られるのに対し、マルコフ連鎖法では過去の全てを含む確率分布 p ( x 0 , x 1 , … , x k | y 0 , y 1 , … , y k ) {\displaystyle p(x_{0},x_{1},\ldots ,x_{k}|y_{0},y_{1},\ldots ,y_{k})} より求められる. 粒子フィルタでは観測不可能な状態 x k {\displaystyle x_{k}} と観測値 y k {\displaystyle y_{k}} は以下のように表せるとする。 観測不可能な状態列 x 0 , x 1 , … {\displaystyle x_{0},x_{1},\ldots } は以下を満たす1階マルコフ過程。つまり x k {\displaystyle x_{k}} は x k − 1 {\displaystyle x_{k-1}} で決まる。ただし初期値 x 0 {\displaystyle x_{0}} の確率分布 p ( x 0 ) {\displaystyle p(x_{0})} を持つものとする。なお、これは2つ前 x k − 2 {\displaystyle x_{k-2}} の状態を使えないという意味ではなく、必要なら2つ前の状態も x k − 1 {\displaystyle x_{k-1}} に含めて使うという意味である。 x k | x k − 1 ∼ p x k | x k − 1 ( x | x k − 1 ) {\displaystyle x_{k}|x_{k-1}\sim p_{x_{k}|x_{k-1}}(x|x_{k-1})} 観測データ列 y 0 , y 1 , … {\displaystyle y_{0},y_{1},\ldots } は x 0 , x 1 , … {\displaystyle x_{0},x_{1},\ldots } が既知であるという条件の下で独立である。換言すると y k {\displaystyle y_{k}} は x k {\displaystyle x_{k}} のみに従属する。 y k | x k ∼ p y | x ( y | x k ) {\displaystyle y_{k}|x_{k}\sim p_{y|x}(y|x_{k})} その上で、下記に従う状態方程式を状態空間モデルと呼ぶ。 x k = f k ( x k − 1 , v k ) {\displaystyle x_{k}=f_{k}(x_{k-1},v_{k})\,} y k = h k ( x k , w k ) {\displaystyle y_{k}=h_{k}(x_{k},w_{k})\,} ただし v k {\displaystyle v_{k}} も w k {\displaystyle w_{k}} も異なる k {\displaystyle k} について互いに独立であり、ある確率分布に従うノイズで、 v k {\displaystyle v_{k}} をシステムノイズ、 w k {\displaystyle w_{k}} を観測ノイズと呼ぶ。また、 f k ( ⋅ ) {\displaystyle f_{k}(\cdot )} と h k ( ⋅ ) {\displaystyle h_{k}(\cdot )} は既知の関数である。 カルマンフィルターの状態方程式は状態空間モデルの一種であり、 x k {\displaystyle x_{k}} と y k {\displaystyle y_{k}} が実数の列ベクトル、関数 f k ( ⋅ ) {\displaystyle f_{k}(\cdot )} と h k ( ⋅ ) {\displaystyle h_{k}(\cdot )} が線形、 v k {\displaystyle v_{k}} と w k {\displaystyle w_{k}} が多変量正規分布に従うとすると、下記形式で表現でき、 x k = F k x k − 1 + G k v k y k = H k x k + w k {\displaystyle {\begin{aligned}x_{k}&=F_{k}x_{k-1}+G_{k}v_{k}\\y_{k}&=H_{k}x_{k}+w_{k}\end{aligned}}} x k {\displaystyle x_{k}} の確率分布は多変量正規分布になり、カルマンフィルタによってベイズ推定と厳密に一致する解が得られる。線形でない場合などは、カルマンフィルタは1次近似に過ぎない。粒子フィルタもモンテカルロ法による近似には変わりないが、十分な数の粒子があれば高い精度が得られる。 粒子法は他のサンプルリング法と同様に、フィルタリング確率分布 p ( x k | y 0 , … , y k ) {\displaystyle p(x_{k}|y_{0},\dots ,y_{k})} を近似する点列を生成する。したがって P {\displaystyle P} 個のサンプル点があれば、フィルタリング確率分布による期待値は ∫ f ( x k ) p ( x k | y 0 , … , y k ) d x k ≈ 1 P ∑ L = 1 P f ( x k ( L ) ) {\displaystyle \int f(x_{k})p(x_{k}|y_{0},\dots ,y_{k})dx_{k}\approx {\frac {1}{P}}\sum _{L=1}^{P}f(x_{k}^{(L)})} によって近似される。そして通常のモンテカルロ法と同様に f ( ⋅ ) {\displaystyle f(\cdot )} を適切に調整することで, 近似の程度に応じた次数までの モーメント を得ることができる。 Sampling importance resampling (SIR) アルゴリズムは、モンテカルロフィルタ（北川源四郎 1993）やブートストラップフィルタ（Gordon et al. 1993）による本来の粒子フィルタであるが、よく使われる粒子フィルタアルゴリズムである。ここではフィルタリング確率分布 p ( x k | y 0 , … , y k ) {\displaystyle p(x_{k}|y_{0},\ldots ,y_{k})} を P {\displaystyle P} 個の重みつき粒子によって近似する。 { ( w k ( L ) , x k ( L ) )   :   L = 1 , … , P } {\displaystyle \{(w_{k}^{(L)},x_{k}^{(L)})~:~L=1,\ldots ,P\}} . 重み w k ( L ) {\displaystyle w_{k}^{(L)}} は以後の ∑ L = 1 P w k ( L ) = 1 {\displaystyle \sum _{L=1}^{P}w_{k}^{(L)}=1} である粒子の相対事後分布(密度)の近似となっており、 ∑ L = 1 P w k ( L ) = 1 {\displaystyle \sum _{L=1}^{P}w_{k}^{(L)}=1} を満たす。 SIRは重点サンプリング の逐次版 (つまり、再帰的) と言える。 重点サンプリングにあるように、関数 f ( ⋅ ) {\displaystyle f(\cdot )} の推定値は重みつき平均 ∫ f ( x k ) p ( x k | y 0 , … , y k ) d x k ≈ ∑ L = 1 P w ( L ) f ( x k ( L ) ) {\displaystyle \int f(x_{k})p(x_{k}|y_{0},\dots ,y_{k})dx_{k}\approx \sum _{L=1}^{P}w^{(L)}f(x_{k}^{(L)})} で近似できる。 粒子の個数が有限である場合、このアルゴリズムの性能は提案分布 π ( x k | x 0 : k − 1 , y 0 : k ) {\displaystyle \pi (x_{k}|x_{0:k-1},y_{0:k})} の選択に依存する。 最適な提案分布は目的分布 π ( x k | x 0 : k − 1 , y 0 : k ) = p ( x k | x k − 1 , y k ) {\displaystyle \pi (x_{k}|x_{0:k-1},y_{0:k})=p(x_{k}|x_{k-1},y_{k})} である。 しかしながら事前遷移確率 π ( x k | x 0 : k − 1 , y 0 : k ) = p ( x k | x k − 1 ) {\displaystyle \pi (x_{k}|x_{0:k-1},y_{0:k})=p(x_{k}|x_{k-1})} を提案分布として用いることが多い。 なぜならそこからは容易に粒子をサンプルすることができるし、その後に重みを計算することもできるからである。 提案分布として事前遷移確率を用いるSIRフィルタは一般にブートストラップフィルタ・コンデンセーションアルゴリズムとして知られている。 唯一つを除いた全ての重みがゼロに近付くこと ― アルゴリズムの縮退 ― を防ぐために再サンプルが行なわれる。 このアルゴリズムの性能は再サンプリング方式の選びかたにもかかっている。 北川源四郎 (1993) によって提案された層化抽出法は分散の意味で最適である。 SIR法の1ステップは以下の様になる。 1) L = 1 , … , P {\displaystyle L=1,\ldots ,P} について, 提案分布から粒子をサンプルする x k ( L ) ∼ π ( x k | x 0 : k − 1 ( L ) , y 0 : k ) {\displaystyle x_{k}^{(L)}\sim \pi (x_{k}|x_{0:k-1}^{(L)},y_{0:k})} 2) L = 1 , … , P {\displaystyle L=1,\ldots ,P} について、重みを更新し、正規化定数を得る。 w ^ k ( L ) = w k − 1 ( L ) p ( y k | x k ( L ) ) p ( x k ( L ) | x k − 1 ( L ) ) π ( x k ( L ) | x 0 : k − 1 ( L ) , y 0 : k ) {\displaystyle {\hat {w}}_{k}^{(L)}=w_{k-1}^{(L)}{\frac {p(y_{k}|x_{k}^{(L)})p(x_{k}^{(L)}|x_{k-1}^{(L)})}{\pi (x_{k}^{(L)}|x_{0:k-1}^{(L)},y_{0:k})}}} このとき π ( x k ( L ) | x 0 : k − 1 ( L ) , y 0 : k ) = p ( x k ( L ) | x k − 1 ( L ) ) {\displaystyle \pi (x_{k}^{(L)}|x_{0:k-1}^{(L)},y_{0:k})=p(x_{k}^{(L)}|x_{k-1}^{(L)})} ならば更新式は w ^ k ( L ) = w k − 1 ( L ) p ( y k | x k ( L ) ) , {\displaystyle {\hat {w}}_{k}^{(L)}=w_{k-1}^{(L)}p(y_{k}|x_{k}^{(L)}),} のように簡単になる。 3) L = 1 , … , P {\displaystyle L=1,\ldots ,P} について、正規化された重みを計算する。 w k ( L ) = w ^ k ( L ) ∑ J = 1 P w ^ k ( J ) {\displaystyle w_{k}^{(L)}={\frac {{\hat {w}}_{k}^{(L)}}{\sum _{J=1}^{P}{\hat {w}}_{k}^{(J)}}}} 4) 有効粒子数の推定量を計算する。 N ^ e f f = 1 ∑ L = 1 P ( w k ( L ) ) 2 {\displaystyle {\hat {N}}_{\mathit {eff}}={\frac {1}{\sum _{L=1}^{P}\left(w_{k}^{(L)}\right)^{2}}}} 5) もし有効粒子数が与えられた閾値より少なかったら N ^ e f f < N t h r {\displaystyle {\hat {N}}_{\mathit {eff}}<N_{thr}} 再サンプルを実行する。 a) 現在の粒子の集合から、重みに比例した確率で P {\displaystyle P} 個の粒子を描く。現在の粒子の集合を新しい粒子の集合で置き換える。 b) L = 1 , … , P {\displaystyle L=1,\ldots ,P} について、 w k ( L ) = 1 / P {\displaystyle w_{k}^{(L)}=1/P} とする。 Sequential Importance Resampling 等の用語は SIR フィルターの意味で用いられることがある。 再サンプルが無い点を除いて SIR と同様である。 直接法は他の粒子フィルタに比べて簡単で、合成と棄却を利用する。 k {\displaystyle k} 番目の一つのサンプル x {\displaystyle x} を p x k | y 1 : k ( x | y 1 : k ) {\displaystyle p_{x_{k}|y_{1:k}}(x|y_{1:k})} から生成するのに以下の手順を踏む。 1) n = 1 {\displaystyle n=1} とする。 2) { 1 , . . . , P } {\displaystyle \{1,...,P\}} 上の一様分布から L {\displaystyle L} を生成する 3) テスト粒子 x ^ {\displaystyle {\hat {x}}} を確率分布 p x k | x k − 1 ( x | x k − 1 | k − 1 ( L ) ) {\displaystyle p_{x_{k}|x_{k-1}}(x|x_{k-1|k-1}^{(L)})} から生成する 4) y ^ {\displaystyle {\hat {y}}} の確率を x ^ {\displaystyle {\hat {x}}} を用いて p y | x ( y k | x ^ ) {\displaystyle p_{y|x}(y_{k}|{\hat {x}})} から生成する。ただし、 y k {\displaystyle y_{k}} は観測値である 5) 別の数 u {\displaystyle u} を [ 0 , m k ] {\displaystyle [0,m_{k}]} 上の一様分布からを生成する。ただし、 m k = sup x p y | x ( y k | x ) {\displaystyle m_{k}=\sup _{x}p_{y|x}(y_{k}|x)} 6) u {\displaystyle u} と y ^ {\displaystyle {\hat {y}}} を比較 6a) u {\displaystyle u} が大きければ step 2 以降を繰り返す 6b) u {\displaystyle u} が小さかったら x ^ {\displaystyle {\hat {x}}} を x k | k ( p ) {\displaystyle x{k|k}^{(p)}} として保存して n {\displaystyle n} を1増やす 7) n > P {\displaystyle n>P} ならば終了 目的は k {\displaystyle k} における P 個の粒子を、 k − 1 {\displaystyle k-1} だけから生成することである。 これにはマルコフ方程式が x k − 1 {\displaystyle x_{k-1}} だけから x k {\displaystyle x_{k}} を生成できるように記述できなければならない。 このアルゴリズムは k {\displaystyle k} における粒子を生成するために k − 1 {\displaystyle k-1} における P {\displaystyle P} 個の粒子の合成を利用しており、 k {\displaystyle k} において P {\displaystyle P} 個の粒子が生成されるまでステップ 2--6 以降を繰り返す。 これは x {\displaystyle x} を2次元配列とみなすと、より視覚的に理解できる。 一つの次元は k {\displaystyle k} であり、もう一つの次元は粒子番号 L {\displaystyle L} である。 例えば x ( k , L ) {\displaystyle x(k,L)} は k {\displaystyle k} における L {\displaystyle L} 番目の粒子であり、 x k ( L ) {\displaystyle x_{k}^{(L)}} と書ける (上記のアルゴリズムの記述に用いた通り)。 ステップ 3 は k − 1 {\displaystyle k-1} においてランダムに選ばれた粒子 x k − 1 ( L ) {\displaystyle x_{k-1}^{(L)}} から潜在的な x k {\displaystyle x_{k}} を生成し、ステップ 6で棄却 / 受領の判定が行われる。言い替えれば、 x k {\displaystyle x_{k}} の値はそれまでに生成された x k − 1 {\displaystyle x_{k-1}} を用いて生成される。 Auxiliary particle filter Gaussian particle filter Unscented particle filter Monte Carlo particle filter Gauss-Hermite particle filter Cost Reference particle filter アンサンブルカルマンフィルタ カルマンフィルタ、ガウス分布の解析的な推定器 反復ベイズ推定 北川源四郎 モンテカルロフィルタおよび平滑化について, by 北川源四郎. 統計数理, Vol.44, No.1, pp. 31--48, 1996 Sequential Monte Carlo Methods in Practice, by A Doucet, N de Freitas and N Gordon. Springer, 2001. ISBN 978-0387951461 On Sequential Monte Carlo Sampling Methods for Bayesian Filtering, by A Doucet, C Andrieu and S. Godsill, Statistics and Computing, vol. 10, no. 3, pp. 197-208, 2000 CiteSeer link Tutorial on Particle Filters for On-line Nonlinear/Non-Gaussian Bayesian Tracking (2001); S. Arulampalam, S. Maskell, N. Gordon and T. Clapp; CiteSeer link Particle Methods for Change Detection, System Identification, and Control, by Andrieu C., Doucet A., Singh S.S., and Tadic V.B., Proceedings of the IEEE, Vol 92, No 3, March 2004. SMC Homepage link A Tutorial on Bayesian Estimation and Tracking Techniques Applicable to Nonlinear and Non-Gaussian Processes, A.J. Haug, The MITRE Corporation; Mitre link Distributed Implementations of Particle Filters, Anwer Bashi, Vesselin Jilkov, Xiao Rong Li, Huimin Chen, Available from the University of New Orleans A survey of convergence results on particle filtering methods for practitioners, Crisan, D. and Doucet, A., IEEE Transactions on Signal Processing 50(2002)736-746 doi:10.1109/78.984773 Beyond the Kalman Filter: Particle Filters for Tracking Applications, by B Ristic, S Arulampalam, N Gordon. Artech House, 2004. ISBN 1-58053-631-X. ^ a b c Kitagawa, G. (1993-01). “A Monte Carlo filtering and smoothing method for non-Gaussian nonlinear state space models”. Proceedings of the 2nd U.S.-Japan Joint Seminar on Statistical Time Series: 110-131. https://www.ism.ac.jp/~kitagawa/1993_US-Japan.pdf 2019年11月20日閲覧。.  ^ a b Gordon, N.J.; Salmond, D.J.; Smith, A.F.M. (1993-04). “Novel approach to nonlinear/non-Gaussian Bayesian state estimation”. IEE Proceedings F - Radar and Signal Processing 140 (2): 107-113. doi:10.1049/ip-f-2.1993.0015.  ^ 北川源四郎『時系列解析入門』岩波書店、2005年、209頁。ISBN 4000054554。  ^ 樋口知之『予測にいかす統計モデリングの基礎―ベイズ統計入門から応用まで』講談社、2011年、29頁。ISBN 4061557955。  Sequential Monte Carlo Methods (Particle Filtering) homepage on University of Cambridge Dieter Fox's MCL Animations Nando de Freitas' free software Rob Hess' free software