パーティクルフィルタとは
パーティクルフィルタ(粒子フィルタ モンテカルロフィルタ)とは点の密度を元にして、確率密度を生成、そして次に導出されるであろう値を推定する時系列データと推定手法の一つです
有効な推定対象
- 非線形
- 非ガウス性
- 時系列データ
アルゴリズムの手順
- 初期化
- 予測
- 更新
- リサンプリング
開発者が決定する関数
- モデルから次に期待される生データを予測するシステムモデル
- 生データとモデルがどれだけ一致しているかを導出する尤度関数
具体例を交えた説明
目的
電波反射を用いて t 秒後の位置を推定したい
条件
- 電波は 10 回スキャンするとする
1. 初期化
予測済み、0 秒時のモデルを確認
2. 予測
では、電波の発信地に近づく方向で進んだ時の t 秒後の電波強度(生データ)の形がどうなっているか予測してみます
2-1. 0 秒時のモデルを元に次にどんな生データが生成されそうか予測
発信機に近づく方向での生データを予測するため全体的に右にずれた生データが期待できそうです
全体的に右にずれた生データが期待できそうのように現在のモデルから何かしらの処理を加えて次の生データを予測する処理(システムモデル)は開発者が決定します
2-2. 実際のデータと比較
ここで、尤度関数を用いて予測した生データと実際の生データがどれだけ一致しているか計算します
補足
尤度とはモデルの当てはまり度、一致率のことです
値が大きければ大きいほどモデルとの当てはまりが良いとされるので厳密には異なりますが、損失関数の逆といってもいいです
予測した生データと比べて実際の生データは電波強度の分布が全体的に若干左にはよっていますがおおかた推定できていそうです
3. 更新
モデルとして適用するデータを 2 で推定したデータに変更します
4. リサンプリング
重みを考慮して再度モデルを生成、1 に戻ります
以上を繰り返すことに動的に推定し続けることができます
参考文献