Background
カルマンフィルタにはたくさんの導出がありますが, 自分的には大まかに以下の2つのパターンを把握していれば実用上は十分だと考えています。
(なお超初心者の場合はとりあえずコードを書いて動かして見た方が理解しやすいと思います。)
オブザーバから導出するパターン
前者の例として,足立先生の「カルマンフィルタの基礎」をおすすめします。
ネタバレすると,証明は線形の(濾波型)オブザーバを設計し,ガウス分布で表される誤差が線形に伝搬する性質を用いて推定後の共分散を最小化するオブザーバゲインKを求める(平方完成)となっています。
似たアプローチとして超平面に垂線をおろす図形的なアプローチが合った気がしますが忘れてしまいました… 思い出したら書きます。
ベイズの定理から導くパターン
こちらは「確率ロボティクス」の書籍を見ると詳しくわかると思います。
確率ロボティクス (Mynavi Advanced Library)
- 作者:Sebastian Thrun,Wolfram Burgard,Dieter Fox
- 発売日: 2015/04/02
- メディア: Kindle版
以下のベイズの定理と,
の式から導出できます。
ベイズの定理から多変数カルマンフィルタのゲインを導出
確率ロボティクスに倣って導出します。 基本的な流れは先程のブログとほぼ同じです。書きやすいように表記を少しいじっていますが,恐らく意味を大きく損なわないと思います。
前提
とりあえずよく見る線形状態方程式を仮定します。
はそれぞれシステムノイズと観測ノイズでその分散は,とします。
予測
予測にはベイズの定理を使いません。
nステップでの推定値の分布の平均を 分散とすると, 予測値の分布の平均と分散は,
となります。
計測更新
ベイズの定理から予測における推定値とセンサ出力の分布からセンサ情報を考慮したときの推定値の分布がわかります。
ここで,は平均と分散のガウス分布なので,
また,観測の分布は
と表せます。
したがって,ベイズの定理を用いてこれらをかけ合わせた場合の推定値の確率分布は
となります。
このexpの肩が極小値になる時がガウス分布の極大,すなわち分布の平均値,つまり最尤値になるので,
が極大となるを求めます。
一回微分して=0の条件から,
よって共分散行列は対称行列より
したがって推定値の平均は,
また,分散はJの二階微分から明らかで,
となります。
式変形によるカルマンゲインの導出
先程の展開からカルマンゲインは
を満たすので,係数比較から以下のように導けます。
見慣れた形と違いますね?この式に右からをかけて整理することでよく見るカルマンゲインの式が得られます。
長くなりましたが,これが確率ロボティクスの教科書に倣ったベイズの定理からのカルマンゲインの導出になります。
教科書のほうが丁寧なのでそちらを参照していただければと思いますが,研修中や電車の中など時間のあるときに自分で1から計算することで理解がより深まるのではないかと思います。
余談
はてなでTex記法
はてなブログでTex記法を書こうとすると通常の書き方から大きく変えることが多かったため,回避策として以下のブログを参考にしました。