前の状態 \(x_{t-1}\) に依存して現在の状態 \(x_t\) が決まる潜在変数と,この潜在変数に依存して決まる観測変数 \(y_t\) で現れる一般状態空間モデルを考える.
粒子フィルタは潜在変数の分布を粒子の密度で表す.各粒子を次の時間に遷移させ,その潜在変数が与えられたときの,観測量の尤度を求める.その尤度に比例する頻度で粒子を復元抽出して新たな粒子集合とする.
-- しましま
時系列が線形でノイズも正規分布ならKalmanフィルタによって、過去のすべての観測値に基づいた潜在変数の状態の確率分布が陽に求められる。ところが一般の場合はそんなにうまくはいかないので、粒子(パーティクル)を使ってモンテカルロ的に分布を近似してやる方法が粒子フィルタ(particle filter)である。
ふつうの MCMC と違って、目的とする確率分布に対して一発で集団を発生させないといけないところが難しい(収束するまで待つなどという悠長なことはできない)。 ただし、(集団の数が増えれば)漸近的に正しい分布になるようにすることはは可能である。
そのためにはいろんなインプリメンテーションが考えられるが、その一つの方法が上に書いてあるようなリサンプリング(復元抽出)と重み付け(重点サンプリング)という手法であり、さらにそれらの近似を上げるためにいい粒子と悪い粒子を選別する生成消滅過程を入れたり、いろいろな工夫がある。
そうするとかなり遺伝的アルゴリズムに近くなるが、遺伝的アルゴリズムは特に時系列のフィルタリングを目的としているわけではないので、手順は似ているが中身はかなり異なる。
それから、一般に過去から未来への一方向だけ見ているのがフィルタリングで、過去も未来も見て状態推定するのが平滑化だが、平滑化の方が情報の流れが双方向になる分難しくなる。
-- あかほ