粒子フィルター:逐次モンテカルロフィルター †粒子フィルタ、または逐次モンテカルロ法 (Sequential Monte Carlo: SMC)とは、マルコフ過程であらわされるモデルの隠れた変数(パラメータ、状態変数)の逐次推定法である。 バッチ処理であるマルコフ連鎖モンテカルロ法 (MCMC) の逐次 (オンライン) 版である。 位置推定をイメージして説明するならば、物体の検出と追跡を同時に行う、逐次追跡アルゴリズムです。逐次追跡(追跡の終点を予め必要としない追跡)であり、かつ、計算も軽いので、リアルタイム処理が可能なアルゴリズムです。 現状態から起こりうる多数の次状態を、多数(数百or数千)のパーティクル(粒子)に見立て、全パーティクルの尤度に基づいた重みつき平均を次状態として予測しながら追跡を行っていくアルゴリズムです。パーティクルフィルタでは物体が存在すると考えられる部分の尤度と重みを大きくすることで物体が存在すると考えられる付近にパーティクルが集中するようになる. おおまかな処理の流れは以下になります。 1.リサンプリング:前状態における尤度(重み)に基づいて、パーティクルを選び直す。 2.予測:各パーティクルについて、前状態から現状態の予測を行う。 3.重み付け:現状態における各パーティクルの尤度を求める。 4.観測:結果を出力するために(今回は、全パーティクルの重みつき平均を現状態として)観測する。 マルコフ過程のモデル †隠れた変数をベクトルXtで表わす。 粒子フィルタの目的は、隠れたパラメータ列 xtを、観測値 y1,y2,...,yt のみから推定することである。 粒子フィルタではxtと観測値 yt は以下のように表せるとする。 xt|xt-1の推移確率: pxt|xt-1(x|xt-1) ...1式 ただし,x0は、初期確率分布 p(x0) を持つものとする 観測データyt はxtの確率分布からの観測値であり、過去のxt-1,xt-2...とは独立である。 yk|xkの確率:py|x(y | xk) この一例として、下記のモデルがある。 Xk=f(xk-1)+vk yk=h(xk)+wk ただし vk も wk も異なるkについて互いに独立であり、 かつkによらず同じ確率密度関数にしたがうものとする。 この2つの方程式は非線形状態方程式とみなすことができ、Vk,wkが正規分布に従う時、非線形カルマンフィルタの状態空間モデルである。カルマンフィルタによってベイズ推定と厳密に一致する解が得られる。そうでない場合はカルマンフィルタは1次近似に過ぎない。 フィルタリング確率分布は、t期までの観測値に基づくxtの推定値であるので,P(xt|y1,y2,...,yt)で表わされる。 粒子法は他のサンプルリング法と同様に、フィルタリング確率分布を近似する点列を生成する。したがって P 個のサンプル点があれば、フィルタリング確率分布による期待値は ∫ f(xt)P(xt|y1,y2,...,yt)dx=(1/p)Σf(xst) 但し、xstは、xtのサンプルs=1~P SIR法:粒子フィルターのアルゴリズム †Wikipedeliaの粒子フィルタの項を参照ください。 参考になる文献 † |