粒子フィルタ()、または"逐次モンテカルロ法 (Sequential Monte Carlo: SMC)"とは、シミュレーションに基づく複雑なモデルの推定法である。この手法はふつうベイズモデルを推定するのに用いられ、バッチ処理であるマルコフ連鎖モンテカルロ法 (MCMC) の逐次 (オンライン) 版である。またこの手法は重点サンプリング法にも似たところがある。うまく設計すると、粒子フィルタはMCMCよりも高速である。拡張カルマンフィルタや無香カルマンフィルタ (Unscented カルマンフィルタ) に対して、十分なサンプル点があればベイズ最適推定に近付くためにより精度が高くなることから、これらの代わりに用いられることがある。手法を組み合わせ、カルマンフィルタを粒子フィルタの提案分布として使うこともできる。粒子フィルタの目的は、隠れたパラメータ列 formula_1 formula_2 を観測値 formula_3 formula_2 のみから推定することである。ベイズ推定値 formula_1 は一つ過去の確率分布 formula_6 から得られるのに対し、マルコフ連鎖法では過去の全てを含む確率分布 formula_7 より求められる.粒子フィルタではformula_1と観測値 formula_3 は以下のように表せるとする。ただし初期確率分布 formula_12 を持つものとする。このようなものの一例として次のものがある。ただし formula_20 も formula_21 も異なるformula_22について互いに独立であり、かつformula_22によらず同じ確率密度関数にしたがうものとする。また、formula_24 と formula_25 は既知の関数である。この2つの方程式は状態方程式とみなすことができ、カルマンフィルタの状態方程式と類似している。もし関数 formula_24 と formula_25 が線形かつ formula_20 および formula_21 が ガウス分布 だとすると、カルマンフィルタによってベイズ推定と厳密に一致する解が得られる。そうでない場合はカルマンフィルタは1次近似に過ぎない。粒子フィルタも近似には変わりないが、十分な数の粒子があれば高い精度が得られる。粒子法は他のサンプルリング法と同様に、フィルタリング確率分布formula_30を近似する点列を生成する。したがって formula_31 個のサンプル点があれば、フィルタリング確率分布による期待値はによって近似される。そして通常のモンテカルロ法と同様に formula_24を適切に調整することで, 近似の程度に応じた次数までの モーメント を得ることができる。 "Sampling importance resampling (SIR)" アルゴリズムは、(Gordon et al. 1993)による本来の粒子フィルタであるが、よく使われる粒子フィルタアルゴリズムである。ここではフィルタリング確率分布 formula_34 をformula_31個の重みつき粒子によって近似する。"重み" formula_37 は以後の formula_38 である粒子の相対事後分布(密度)の近似となっており、formula_38を満たす。SIRは重点サンプリング の逐次版 (つまり、再帰的) と言える。重点サンプリングにあるように、関数 formula_24 の推定値は重みつき平均で近似できる。粒子の個数が有限である場合、このアルゴリズムの性能は提案分布formula_42の選択に依存する。最適な提案分布は目的分布である。しかしながら事前遷移確率を提案分布として用いることが多い。なぜならそこからは容易に粒子をサンプルすることができるし、その後に重みを計算することもできるからである。提案分布として事前遷移確率を用いるSIRフィルタは一般にブートストラップフィルタ・コンデンセーションアルゴリズムとして知られている。唯一つを除いた全ての重みがゼロに近付くこと ― アルゴリズムの縮退 ― を防ぐために再サンプルが行なわれる。このアルゴリズムの性能は再サンプリング方式の選びかたにもかかっている。北川 (1996) によって提案された階層化再サンプル法は分散の意味で最適である。SIR法の1ステップは以下の様になる。このときformula_49ならば更新式はのように簡単になる。"Sequential Importance Resampling" 等の用語は SIR フィルターの意味で用いられることがある。直接法は他の粒子フィルタに比べて簡単で、合成と棄却を利用する。formula_22 番目の一つのサンプル formula_59 を formula_60 から生成するのに以下の手順を踏む。目的はformula_22における P 個の粒子を、formula_82 だけから生成することである。 これにはマルコフ方程式が formula_83 だけから formula_1 を生成できるように記述できなければならない。このアルゴリズムは formula_22 における粒子を生成するためにformula_82におけるformula_31個の粒子の合成を利用しており、formula_22においてformula_31個の粒子が生成されるまでステップ 2--6 以降を繰り返す。これは formula_59 を2次元配列とみなすと、より視覚的に理解できる。一つの次元は formula_22 であり、もう一つの次元は粒子番号formula_63である。例えば formula_93 は formula_22 におけるformula_63番目の粒子であり、formula_96 と書ける(上記のアルゴリズムの記述に用いた通り)。ステップ 3 は formula_82 においてランダムに選ばれた粒子formula_98 から"潜在的な" formula_1 を生成し、ステップ 6で棄却 / 受領の判定が行われる。言い替えれば、formula_1 の値はそれまでに生成された formula_83 を用いて生成される。
出典:wikipedia
LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。