パーティクルフィルタは、不規則に変動する非線形・非ガウスの動的システムにおいて、物体の位置や状態を推測するための状態推定アルゴリズムです。多数の仮説(粒子)を用いて確率分布を近似的に表現し、観測データに基づいて尤度の高い粒子を残すことで、不確実性の高い環境でも精度よく状態を追跡できます。
パーティクルフィルタとは
パーティクルフィルタとは、時間の経過とともに変化するシステムの状態を、多数の「粒子(パーティクル)」と呼ばれる仮想的なサンプルを用いて近似的に推定する、確率的な状態推定手法です。ノイズが多く、変化の法則が複雑な環境において、対象の現在位置や状態を追跡するのに適しています。
詳しく解説
パーティクルフィルタの基本原理はモンテカルロ法に基づいています。状態空間を定式化する際、解析的に解くことが困難な「非線形(数式が直線的でない)」かつ「非ガウス(誤差が正規分布に従わない)」なシステムに対しても適用できる点が大きな特徴です。プロセスは主に、1. 粒子の予測(システムの運動モデルに基づいて粒子を遷移させる)、2. 尤度の計算(実際の観測データと各粒子の予測を比較し、各粒子の重みを評価する)、3. リサンプリング(重みの大きい粒子を複製し、重みの小さい粒子を消滅させる)という3つのステップを繰り返します。これにより、複雑な確率分布を効率的に近似し、対象の状態を頑健に追跡することができます。ベイジアンフィルタの一種としても位置づけられます。
具体例・使われ方
具体的な利用例として、自動運転車やロボットの自己位置推定(SLAM)が挙げられます。GPSの電波が届かない屋内やトンネル内で、センサーから得られる情報をもとに自身の正確な位置を割り出す際に活用されます。また、映像内の特定オブジェクトの動きを追いかける「物体追跡」や、気象予測におけるデータ同化技術、金融市場の不規則な価格変動予測など、さまざまな分野で活用されています。
似た用語との違い
パーティクルフィルタと混同されやすい手法に「カルマンフィルタ」があります。カルマンフィルタは、システムが線形(直線的)であり、かつ誤差が正規分布(ガウス分布)に従うという厳格な前提のもとで、数式を用いて最適な状態を厳密に計算します。一方、パーティクルフィルタはこのような前提が不要で、非線形・非ガウスの複雑な問題に対応できます。ただし、パーティクルフィルタは多数の粒子をシミュレーションするため、カルマンフィルタに比べて計算コストが非常に高いという違いがあります。
注意点
パーティクルフィルタの主な課題は計算コストの高さです。より複雑な状態や多次元のデータを扱う場合、確率分布を正確に表現するために膨大な数の粒子が必要となり、処理時間が飛躍的に増加します。また、リサンプリングを繰り返す過程で、特定の優秀な粒子ばかりが生き残り、サンプルの多様性が失われてしまう「粒子の縮退(サンプル枯渇)」と呼ばれる現象が起こる可能性があります。これを防ぐためには、適切なリサンプリング手法の選定やノイズの調整が不可欠です。