時間の経過に伴う一連の測定から未知の値を推定するアルゴリズム
カルマン フィルタは、システムの推定状態と 推定値の 分散または不確実性を追跡します。推定値は、 状態遷移 モデルと測定値を使用して更新されます。は、 k 番目の測定値 y k が考慮される 前の時間ステップ k におけるシステムの状態の推定値を表します。は、 対応する不確実性です。
x
^
け
∣
け
−
1
{\displaystyle {\hat {x}}_{k\mid k-1}}
ポ
け
∣
け
−
1
{\displaystyle P_{k\mid k-1}}
統計学 と 制御理論 において 、 カルマンフィルタリング( 線形二次推定 とも呼ばれる )は、 統計的ノイズ やその他の不正確さを含む時間の経過に伴って観測される一連の測定値を使用して、 各時間ステップの変数の 結合確率分布 を推定することにより、単一の測定に基づくものよりも正確になる傾向がある未知の変数の推定値を生成するアルゴリズムです 。このフィルタは平均二乗誤差最小化器として構築されますが、フィルタが最大尤度統計とどのように関係するかを示すフィルタの代替導出も提供されています。 [1]このフィルタは ルドルフ・E・カルマン にちなんで名付けられました 。
カルマンフィルタリング [2] には数多くの技術的応用がある。一般的な応用は、 特に航空機、宇宙船、船舶などの車両の 誘導、航行、制御で ある 。 [3]さらに、カルマンフィルタリングは、 信号処理 や 計量経済学 などの 時系列 分析タスクに多く適用されている 。カルマンフィルタリングはロボットの 動作計画 と制御にも重要であり、 [4] [5] 軌道最適化 にも使用できる 。 [6] カルマンフィルタリングは、 中枢神経系の動作制御のモデル化にも役立つ。運動コマンドの発行と 感覚フィードバックの 受信の間には時間遅延があるため 、カルマンフィルタ [7] を使用すると、運動システムの現在の状態を推定し、更新されたコマンドを発行するための現実的なモデルが提供される。 [8]
このアルゴリズムは、予測フェーズと更新フェーズの 2 段階のプロセスで機能します。予測フェーズでは、カルマン フィルタが現在の 状態変数 の推定値とその不確実性を生成します。次の測定結果 (ランダム ノイズなどの何らかのエラーによって必然的に破損している) が観測されると、これらの推定値は 加重平均 を使用して更新され、確実性が高い推定値に重みが付けられます。このアルゴリズムは 再帰的です。現在の入力測定値と以前に計算された状態とその不確実性マトリックスのみを使用して、 リアルタイム で動作できます。 過去の追加情報は必要ありません。
カルマン フィルタリングの最適性は、誤差が 正規分布 (ガウス分布)することを前提としています。 ルドルフ E. カルマン の言葉を借りれば 、「ランダム プロセスについては、次の仮定が立てられています。物理的なランダム現象は、動的システムを刺激する主要なランダム ソースによるものと考えられます。主要なソースは、平均がゼロの独立したガウス ランダム プロセスであると想定されます。動的システムは線形になります。」 [9]ただし、ガウス性に関係なく、プロセスと測定の共分散がわかっている場合は、カルマン フィルタは、 平均二乗誤差を最小化する意味 で最適な 線形 推定器です [10] 。ただし、より優れた非線形推定器が存在する可能性があります。すべてのノイズ プロセスがガウス分布であると想定されない限り、カルマン フィルタを厳密に適用できないというのは、 よくある誤解です (文献に残っています)。 [11]
この手法の拡張や 一般化 も開発されており、 非線形システムで機能する 拡張カルマンフィルタ やアンセンテッドカルマンフィルタなどが知られている 。この手法の基礎は 隠れマルコフモデル であり、 潜在変数 の 状態空間は 連続して おり、すべての潜在変数と観測変数はガウス分布に従う。カルマンフィルタリングは 、 マルチセンサーフュージョン [12] や分散 センサーネットワークで分散カルマンフィルタリングや コンセンサス カルマンフィルタリング の開発に 効果的に利用されている。 [13]
歴史
このフィルタリング方法は、ハンガリーの 亡命者 ルドルフ・E・カルマン にちなんで名付けられましたが、 ソーヴァルド・ニコライ・ティーレ [14] [15] と ピーター・スワーリングが 以前に同様のアルゴリズムを開発していました。 ジョンズ・ホプキンス応用物理学研究所 のリチャード・S・バシーが理論に貢献したため、カルマン・バシー・フィルタリングと呼ばれることもあります。カルマンは、 ウィーナーフィルタリング問題 に状態変数を適用することでカルマンフィルタを導き出しました。 [16]カルマンフィルタの最初の実装を開発した人物として一般的には
スタンレー・F・シュミットの 名が付けられています。彼は、フィルタを2つの異なる部分に分割できることに気付きました。1つはセンサー出力間の時間間隔用、もう1つは測定値を組み込むための部分です。 [17]カルマンが NASAエイムズ研究センター を訪問した際に、シュミットはカルマンのアイデアが アポロ計画 の軌道推定の非線形問題に適用できることに気づき、その結果、 アポロ航法コンピュータ にそれが組み込まれることになった 。 [18] : 16
このデジタルフィルタは、 ソ連の 数学者 ルスラン・ストラトノビッチ が開発した、より一般的な非線形フィルタの特殊なケースであるため、 ストラトノビッチ・カルマン・ビューシーフィルタ と呼ばれることもあります。 [19] [20] [21] [22] 実際、特殊なケースの線形フィルタの方程式のいくつかは、1961 年の夏、モスクワでの会議中にカルマンがストラトノビッチと会う前に発表されたストラトノビッチの論文に登場しました。 [23]
このカルマン フィルタリングは、Swerling (1958)、Kalman (1960)、Kalman と Bucy (1961) による技術論文で初めて説明され、部分的に開発されました。
アポロ コンピュータは、2k の磁気コア RAM と 36k のワイヤ ロープを使用しました [...]。CPU は IC で構築されました [...]。クロック速度は 100 kHz 未満でした [...]。MIT のエンジニアが、このような優れたソフトウェア (カルマン フィルタの非常に初期のアプリケーションの 1 つ) をこのような小さなコンピュータに詰め込んだという事実は、実に驚くべきことです。
— ジャック・クレンショーへのインタビュー、マシュー・リード著、TRS-80.org (2009) [1]
カルマンフィルタは、 米海軍の 核 弾道ミサイル搭載潜水艦 の航法システムの実装や、米海軍の トマホークミサイル や 米空軍 の 空中発射巡航ミサイルなどの巡航ミサイルの誘導航法システムに不可欠であった。また、 再使用型打ち上げロケット の誘導航法システム や、 国際宇宙ステーション にドッキングする宇宙船の 姿勢制御 航法システムにも使用されている。 [24]
計算の概要
カルマンフィルタリングは、システムの動的モデル(例:物理的な運動法則)、そのシステムへの既知の制御入力、および複数の連続した測定値(センサーなどから)を使用して、システムの変動量(その 状態 )の推定値を形成します。これは、1 つの測定値のみを使用して得られる推定値よりも優れています。そのため、これは一般的な センサー融合 および データ融合 アルゴリズムです。
ノイズの多いセンサー データ、システムの進化を記述する方程式の近似値、および考慮されていない外部要因はすべて、システムの状態を判定できる可能性を制限します。カルマン フィルターは、ノイズの多いセンサー データによる不確実性、およびある程度はランダムな外部要因を効果的に処理します。カルマン フィルターは、加重平均を使用して、システムの予測状態と新しい測定値の平均としてシステムの状態の推定値を生成します。重みの目的は、推定された不確実性がより優れている (つまり、より小さい) 値の方が「信頼される」ようにすることです。重みは、システムの状態 の 予測の推定された不確実性の尺度で ある共分散 から計算されます。加重平均の結果は、予測された状態と測定された状態の間にある新しい状態推定値であり、どちらか一方だけの場合よりも推定された不確実性が向上します。このプロセスはすべての時間ステップで繰り返され、新しい推定値とその共分散が次の反復で使用される予測に情報を提供します。つまり、カルマン フィルタは 再帰的に 動作し、新しい状態を計算するために、システムの状態の履歴全体ではなく、最後の「最善の推測」のみを必要とします。
測定の確実性の等級付けと現在の状態の推定は、重要な考慮事項です。フィルターの応答は、カルマン フィルターの ゲイン の観点から議論されるのが一般的です。カルマン ゲインは、測定と現在の状態の推定に与えられる重みであり、特定のパフォーマンスを実現するために「調整」できます。ゲインが高いと、フィルターは最新の測定に重点を置くため、より応答性よく測定に適合します。ゲインが低いと、フィルターはモデル予測にさらに厳密に適合します。極端な場合、ゲインが高い (1 に近い) と推定軌道はより不安定になり、ゲインが低い (0 に近い) とノイズは滑らかになりますが、応答性は低下します。
フィルタの実際の計算を実行する際 (以下で説明)、単一の計算セットに複数の次元が含まれるため、状態推定値と共分散は 行列 にコード化されます。これにより、任意の遷移モデルまたは共分散におけるさまざまな状態変数 (位置、速度、加速度など) 間の線形関係を表現できます。
アプリケーション例
応用例として、トラックの正確な位置を特定する問題を考えてみましょう。トラックには GPS ユニットを装備することができ、数メートル以内の位置を推定することができます。GPS 推定値はノイズが多く、実際の位置から数メートル以内ではあるものの、測定値が急速に「飛び回って」しまう可能性があります。さらに、トラックは物理法則に従うと予想されるため、車輪の回転とハンドルの角度を追跡して速度を時間とともに積分することで、トラックの位置を推定することもできます。これは デッドレコニング と呼ばれる手法です。通常、デッドレコニングではトラックの位置を非常にスムーズに推定できますが、 小さな誤差が蓄積されるにつれて、時間の経過とともに
ずれていきます。
この例では、カルマン フィルタは予測と更新という 2 つの異なるフェーズで動作していると考えられます。予測フェーズでは、トラックの古い位置が物理的な 運動法則 (動的または「状態遷移」モデル) に従って変更されます。新しい位置推定値が計算されるだけでなく、新しい共分散も計算されます。おそらく共分散はトラックの速度に比例します。これは、高速では推測航法による位置推定値の精度が不確実ですが、低速では位置推定値が非常に確実だからです。次に、更新フェーズでは、トラックの位置の測定値が GPS ユニットから取得されます。この測定値にはある程度の不確実性が伴い、前のフェーズの予測値に対するその共分散によって、新しい測定値が更新された予測にどの程度影響するかが決まります。理想的には、推測航法による推定値は実際の位置からずれる傾向があるため、GPS 測定によって位置推定値が実際の位置に戻される必要がありますが、ノイズが多くなり、急激にジャンプするほど乱れることはありません。
技術的な説明と背景
カルマンフィルタは、 一連のノイズの 多い測定値から 線形動的システム の内部状態 を推定する効率的な 再帰フィルタです。 レーダー や コンピュータービジョン から 構造的マクロ経済モデルの推定まで、 幅広い 工学 および 計量経済学のアプリケーションで使用されており、 [25] [26] 制御理論 と 制御システム 工学の重要なトピックです。 線形2次レギュレータ (LQR)とともに 、カルマンフィルタは 線形2次ガウス制御 問題(LQG)を解きます。カルマンフィルタ、線形2次レギュレータ、および線形2次ガウスコントローラは、制御理論の最も基本的な問題に対するソリューションです。
ほとんどのアプリケーションでは、内部状態は、測定される少数の「観測可能な」パラメータよりもはるかに大きくなります( 自由度が 高くなります)。ただし、一連の測定値を組み合わせることで、カルマン フィルタは内部状態全体を推定できます。
デンプスター・シェーファー理論 では、各状態方程式または観測は 線形信念関数 の特殊なケースと見なされ 、カルマンフィルタリングは結合木または マルコフ木 上で線形信念関数を組み合わせる特殊なケースです。追加の方法には、ベイズまたは状態方程式への証拠更新を使用する
信念フィルタリング があります。
現在までに、カルマン フィルタにはさまざまな種類があります。カルマンのオリジナルの定式化 (現在では「シンプル」カルマン フィルタと呼ばれています)、 カルマン - バシー フィルタ 、シュミットの「拡張」フィルタ、情報フィルタ、およびビアマン、ソーントン、その他多くの人々によって開発されたさまざまな「平方根」フィルタなどです。おそらく、最も一般的に使用されている非常にシンプルなカルマン フィルタのタイプは、 位相ロック ループ です。これは現在、ラジオ、特に 周波数変調 (FM) ラジオ、テレビ セット、 衛星通信 受信機、宇宙通信システム、およびほぼすべての他の 電子 通信機器で広く使用されています。
基礎となる動的システムモデル
カルマン フィルタリングは、 時間領域で離散化された 線形動的システムに基づいています。これらは、 ガウス ノイズを 含む可能性のあるエラーによって乱された 線形演算子 に基づく マルコフ連鎖 でモデル化されます。ターゲット システムの 状態は、 実数 の ベクトル として表される、グラウンド トゥルース (ただし隠れている) のシステム構成を指します。 離散時間 増分ごとに 、線形演算子が状態に適用され、新しい状態が生成されます。このとき、いくらかのノイズが混合され、オプションで、システムの制御からの情報 (既知の場合) も生成されます。次に、さらにノイズが混合された別の線形演算子によって、真の (「隠れた」) 状態から測定可能な出力 (つまり、観測値) が生成されます。カルマン フィルタは、隠れマルコフ モデルに類似していると考えられますが、隠れ状態変数は、隠れマルコフ モデルのように離散状態空間ではなく連続空間に値を持つという違いがあります。カルマン フィルタの方程式と隠れマルコフ モデルの方程式には、強い類似性があります。このモデルと他のモデルのレビューは、Roweisと Ghahramani (1999) [27] とHamilton(1994)の第13章 [28]に掲載されています。
ノイズの多い観測値のシーケンスのみに基づいてカルマン フィルタを使用してプロセスの内部状態を推定するには、次のフレームワークに従ってプロセスをモデル化する必要があります。これは、各時間ステップに対して 次の行列を指定することを意味します。
け
{\displaystyle k}
ふ
け
{\displaystyle \mathbf {F} _{k}}
、状態遷移モデル。
H
け
{\displaystyle \mathbf {H} _{k}}
、観測モデル。
質問
け
{\displaystyle \mathbf {Q} _{k}}
、 プロセスノイズの 共分散。
R
け
{\displaystyle \mathbf {R} _{k}}
、 観測ノイズの 共分散。
また、時には 、以下に説明する制御入力モデルが含まれる。 が含まれる場合は、
B
け
{\displaystyle \mathbf {B} _{k}}
B
け
{\displaystyle \mathbf {B} _{k}}
あなた
け
{\displaystyle \mathbf {u} _{k}}
制御入力モデルへの制御入力を表す制御ベクトル。
以下に示すように、多くのアプリケーションでは、 行列 、 、 、 が時間の経過に伴って一定であることが一般的であり 、 その 場合 、それらの インデックスは削除されることがあります。
ふ
{\displaystyle \mathbf {F} }
H
{\displaystyle \mathbf {H} }
質問
{\displaystyle \mathbf {Q} }
R
{\displaystyle \mathbf {R} }
B
{\displaystyle \mathbf {B} }
け
{\displaystyle k}
カルマン フィルターの基礎となるモデル。四角は行列を表します。楕円は 多変量正規分布 を表します(平均行列と共分散行列が囲まれています)。囲まれていない値は ベクトル です。単純なケースでは、さまざまな行列は時間に対して一定であるため、下付き文字は使用されませんが、カルマン フィルターを使用すると、各時間ステップで任意の行列を変更できます。
カルマンフィルタモデルは、時刻における真の状態 が時刻における状態から 次のように
発展すると仮定している。
け
{\displaystyle k}
け
−
1
{\displaystyle k-1}
x
け
=
ふ
け
x
け
−
1
+
B
け
あなた
け
+
わ
け
{\displaystyle \mathbf {x} _{k}=\mathbf {F} _{k}\mathbf {x} _{k-1}+\mathbf {B} _{k}\mathbf {u} _{ k}+\mathbf {w} _{k}}
どこ
ふ
け
{\displaystyle \mathbf {F} _{k}}
は、前の状態x k −1 に適用される状態遷移モデルである 。
B
け
{\displaystyle \mathbf {B} _{k}}
は制御ベクトルに適用される制御入力モデルである 。
あなた
け
{\displaystyle \mathbf {u} _{k}}
わ
け
{\displaystyle \mathbf {w} _{k}}
はプロセスノイズであり、共分散が であるゼロ平均多変量正規分布 から抽出された もの と 仮定 さ れ ます 。
いいえ
{\displaystyle {\mathcal {N}}}
質問
け
{\displaystyle \mathbf {Q} _{k}}
わ
け
〜
いいえ
(
0
、
質問
け
)
{\displaystyle \mathbf {w} _{k}\sim {\mathcal {N}}\left(0,\mathbf {Q} _{k}\right)}
が時間と独立である場合 、Roweis と Ghahramani ( 前掲書 ) に従って、代わりに と 書いて、 ノイズが時間について明示的に認識していないことを強調することができます。
質問
{\displaystyle \mathbf {Q} }
わ
∙
{\displaystyle \mathbf {w} _{\bullet }}
わ
け
{\displaystyle \mathbf {w} _{k}}
真の状態の 観察(または測定) は 、
け
{\displaystyle k}
ず
け
{\displaystyle \mathbf {z} _{k}}
x
け
{\displaystyle \mathbf {x} _{k}}
ず
け
=
H
け
x
け
+
ヴ
け
{\displaystyle \mathbf {z} _{k}=\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k}}
どこ
H
け
{\displaystyle \mathbf {H} _{k}}
観測モデルは、真の状態空間を観測空間にマッピングし、
ヴ
け
{\displaystyle \mathbf {v} _{k}}
は観測ノイズであり、 共分散が であるゼロ平均のガウス 白色ノイズ であると仮定されます 。
R
け
{\displaystyle \mathbf {R} _{k}}
ヴ
け
〜
いいえ
(
0
、
R
け
)
{\displaystyle \mathbf {v} _{k}\sim {\mathcal {N}}\left(0,\mathbf {R} _{k}\right)}
の場合と同様に、 が時間に依存しない 場合は の代わりに と 書くことができます 。
わ
け
{\displaystyle \mathbf {w} _{k}}
ヴ
∙
{\displaystyle \mathbf {v} _{\bullet }}
ヴ
け
{\displaystyle \mathbf {v} _{k}}
R
{\displaystyle \mathbf {R} }
初期状態と各ステップのノイズベクトルは すべて相互に 独立して いると仮定されます。
{
x
0
、
わ
1
、
…
、
わ
け
、
ヴ
1
、
…
、
ヴ
け
}
{\displaystyle \{\mathbf {x} _{0},\mathbf {w} _{1},\dots ,\mathbf {w} _{k},\mathbf {v} _{1},\dots ,\mathbf {v} _{k}\}}
多くのリアルタイムダイナミックシステムは、このモデルに厳密には従いません。実際、モデル化されていないダイナミクスは、未知の確率的信号を入力として動作することになっていたとしても、フィルタのパフォーマンスを著しく低下させる可能性があります。その理由は、モデル化されていないダイナミクスの影響は入力に依存し、したがって推定アルゴリズムを不安定にする(発散する)可能性があるためです。一方、独立したホワイトノイズ信号はアルゴリズムを発散させません。測定ノイズとモデル化されていないダイナミクスを区別する問題は難しい問題であり、 ロバスト制御を 使用した制御理論の問題として扱われます。 [29] [30]
詳細
カルマン フィルタは 再帰 推定器です。つまり、現在の状態の推定値を計算するには、前の時間ステップからの推定状態と現在の測定値のみが必要です。バッチ推定手法とは対照的に、観測や推定値の履歴は必要ありません。以下では、表記は、時間 m ≤ n までの観測値に基づく 時間 n での の推定値を表します 。
x
^
ん
∣
メートル
{\displaystyle {\hat {\mathbf {x} }}_{n\mid m}}
x
{\displaystyle \mathbf {x} }
フィルターの状態は次の 2 つの変数で表されます。
x
^
け
∣
け
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}}
時刻k までの観測値に基づく時刻 k における 事後 状態推定値の平均 。
ポ
け
∣
け
{\displaystyle \mathbf {P} _{k\mid k}}
、 事後 推定共分散行列(状態推定の 推定 精度の尺度)。
カルマン フィルタのアルゴリズム構造は、 アルファ ベータ フィルタ のものと似ています。カルマン フィルタは 1 つの方程式として記述できますが、多くの場合、「予測」と「更新」という 2 つの異なるフェーズとして概念化されます。予測フェーズでは、前のタイムステップの状態推定を使用して、現在のタイムステップの状態の推定値を生成します。この予測された状態推定値は、 現在のタイムステップの状態の推定値ではあるものの、現在のタイムステップからの観測情報を含まないため、 事前状態推定値とも呼ばれます。更新フェーズでは、 イノベーション (事前適合残差)、つまり現在の 事前予測と現在の観測情報との差が最適なカルマン ゲインで乗算され、前の状態推定値と組み合わされて状態推定値が調整されます。現在の観測に基づくこの改善された推定値は、 事後 状態推定値と呼ばれます 。
通常、2つのフェーズは交互に行われ、予測は次に予定されている観測まで状態を進め、更新は観測を組み込む。ただし、これは必須ではない。何らかの理由で観測が利用できない場合は、更新をスキップして複数の予測手順を実行することができる。同様に、複数の独立した観測が同時に利用できる場合は、複数の更新手順を実行することができる(通常は異なる観測行列Hkを使用 ) 。 [ 31] [32]
予測する
アップデート
上記の更新された(事後 )推定共分散の式は、残差誤差を最小化する 最適な K kゲインに有効であり、この形式でアプリケーションで最も広く使用されています。式の証明は 導出 セクションに記載されており、任意の K k に有効な式 も示されています。
更新された状態推定値()をより直感的に表現する方法は次のとおり です。
x
^
k
∣
k
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}}
x
^
k
∣
k
=
(
I
−
K
k
H
k
)
x
^
k
∣
k
−
1
+
K
k
z
k
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}=(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}){\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\mathbf {z} _{k}}
この式は、[0,1]間の 線形補間を思い起こさせます 。この場合、
x
=
(
1
−
t
)
(
a
)
+
t
(
b
)
{\displaystyle x=(1-t)(a)+t(b)}
t
{\displaystyle t}
t
{\displaystyle t}
は、(センサーの高誤差) から (低誤差)への投影値を取得する 行列です。
K
k
H
k
{\displaystyle \mathbf {K} _{k}\mathbf {H} _{k}}
0
{\displaystyle 0}
I
{\displaystyle I}
a
{\displaystyle a}
モデルから推定された 内部状態です。
x
^
k
∣
k
−
1
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1}}
b
{\displaystyle b}
は特異でないと仮定して、測定から推定された 内部状態です 。
H
k
−
1
z
k
{\displaystyle \mathbf {H} _{k}^{-1}\mathbf {z} _{k}}
H
k
{\displaystyle \mathbf {H} _{k}}
この式は、 アルファ ベータ フィルターの 更新手順にも似ています。
不変条件
モデルが正確で、 およびの値が 初期状態値の分布を正確に反映している場合、次の不変量が保持されます。
x
^
0
∣
0
{\displaystyle {\hat {\mathbf {x} }}_{0\mid 0}}
P
0
∣
0
{\displaystyle \mathbf {P} _{0\mid 0}}
E
[
x
k
−
x
^
k
∣
k
]
=
E
[
x
k
−
x
^
k
∣
k
−
1
]
=
0
E
[
y
~
k
]
=
0
{\displaystyle {\begin{aligned}\operatorname {E} [\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}]&=\operatorname {E} [\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}]=0\\\operatorname {E} [{\tilde {\mathbf {y} }}_{k}]&=0\end{aligned}}}
ここで は の 期待値 です 。つまり、すべての推定値の平均誤差はゼロになります。
E
[
ξ
]
{\displaystyle \operatorname {E} [\xi ]}
ξ
{\displaystyle \xi }
また:
P
k
∣
k
=
cov
(
x
k
−
x
^
k
∣
k
)
P
k
∣
k
−
1
=
cov
(
x
k
−
x
^
k
∣
k
−
1
)
S
k
=
cov
(
y
~
k
)
{\displaystyle {\begin{aligned}\mathbf {P} _{k\mid k}&=\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)\\\mathbf {P} _{k\mid k-1}&=\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\\\mathbf {S} _{k}&=\operatorname {cov} \left({\tilde {\mathbf {y} }}_{k}\right)\end{aligned}}}
したがって、共分散行列は推定値の共分散を正確に反映します。
ノイズ共分散Qの推定 け とR け
カルマンフィルタの実際の実装は、ノイズ共分散行列 Q k と R k の適切な推定値を得るのが難しいため、難しいことがよくあります。データからこれらの共分散を推定するための広範な研究が行われてきました。これを行うための実用的な方法の1つは、共分散を推定するために日常的な操作データの 時間遅れの 自己共分散を使用する 自己共分散最小二乗法(ALS )です。 [33] [34] ALS法を使用してノイズ共分散行列を計算するために使用される GNU Octave および Matlab コードは、 GNU General Public License を使用してオンラインで入手できます。 [35] 状態、パラメータ、およびノイズ共分散を同時に推定できるベイズアルゴリズムであるフィールドカルマンフィルタ(FKF)が提案されています。 [36] FKFアルゴリズムは、再帰的な定式化、良好な収束が観測され、比較的複雑性が低いため、FKFアルゴリズムは自己共分散最小二乗法の価値ある代替手段になる可能性があります。もう一つのアプローチは 最適化カルマンフィルタ ( OKF )であり、共分散行列をノイズの代表としてではなく、最も正確な状態推定を達成するためのパラメータとして考慮する。 [37] これら2つの見解はKFの仮定の下では一致するが、実際のシステムではしばしば互いに矛盾する。したがって、OKFの状態推定はモデルの不正確さに対してより堅牢である。
理論から、カルマンフィルタは、次の場合に、最適な状態推定を提供することがわかります。a) モデルが実際のシステムと完全に一致し、b) 入ってくるノイズが「ホワイト」(無相関)であり、c) ノイズの共分散が正確にわかっている。相関ノイズもカルマンフィルタを使用して処理できます。 [38]
過去数十年間に、上記のセクションで説明した ALS を含め、ノイズ共分散推定のいくつかの方法が提案されました。より一般的には、モデルの仮定が実際のシステムと完全に一致しない場合、 Q k と R k を ノイズの共分散に設定することによって、最適な状態推定が必ずしも得られるわけではありません。代わりに、その場合は、パラメータ Q k と R k を 設定して、状態推定を明示的に最適化することができます [37] 。たとえば、標準的な 教師あり学習 を使用します。
共分散が設定された後、フィルタの性能、すなわち状態推定品質を改善できるかどうかを評価することが有用である。カルマンフィルタが最適に機能する場合、イノベーションシーケンス(出力予測誤差)はホワイトノイズであるため、イノベーションのホワイトネス特性が フィルタ の性能を測定する。この目的のために、いくつかの異なる方法を使用できます。 [39] ノイズ項が非ガウス分布している場合、確率不等式または大規模サンプル理論を使用するフィルタ推定の性能を評価する方法が文献で知られています。 [40] [41]
応用例、技術
真実
フィルタリングされたプロセス
観察
摩擦のない直線レール上のトラックを考えてみましょう。最初、トラックは位置 0 で静止していますが、ランダムな制御されていない力によってあちこちに揺さぶられます。トラックの位置を Δ t秒ごとに測定しますが、これらの測定値は不正確です。トラックの位置と 速度 のモデルを維持する必要があります 。ここでは、カルマン フィルターを作成するためのモデルを導出する方法を示します。
は定数なので 、時間インデックスは削除されます。
F
,
H
,
R
,
Q
{\displaystyle \mathbf {F} ,\mathbf {H} ,\mathbf {R} ,\mathbf {Q} }
トラックの位置と速度は線形状態空間で記述される。
x
k
=
[
x
x
˙
]
{\displaystyle \mathbf {x} _{k}={\begin{bmatrix}x\\{\dot {x}}\end{bmatrix}}}
ここで 、は速度、つまり時間に関する位置の微分です。
x
˙
{\displaystyle {\dot {x}}}
( k − 1) と k の 時間ステップの間で、制御されていない力によって平均 0 と標準偏差 σ a で正規分布する 一定 の加速度 a k が発生すると仮定します。 ニュートンの運動の法則 から、次の結論が導かれます。
x
k
=
F
x
k
−
1
+
G
a
k
{\displaystyle \mathbf {x} _{k}=\mathbf {F} \mathbf {x} _{k-1}+\mathbf {G} a_{k}}
(既知の制御入力がないので項は ありません。代わりに、 k は 未知の入力の効果であり、 その効果を状態ベクトルに適用します)ここで
B
u
{\displaystyle \mathbf {B} u}
G
{\displaystyle \mathbf {G} }
F
=
[
1
Δ
t
0
1
]
G
=
[
1
2
Δ
t
2
Δ
t
]
{\displaystyle {\begin{aligned}\mathbf {F} &={\begin{bmatrix}1&\Delta t\\0&1\end{bmatrix}}\\[4pt]\mathbf {G} &={\begin{bmatrix}{\frac {1}{2}}{\Delta t}^{2}\\[6pt]\Delta t\end{bmatrix}}\end{aligned}}}
となることによって
x
k
=
F
x
k
−
1
+
w
k
{\displaystyle \mathbf {x} _{k}=\mathbf {F} \mathbf {x} _{k-1}+\mathbf {w} _{k}}
どこ
w
k
∼
N
(
0
,
Q
)
Q
=
G
G
T
σ
a
2
=
[
1
4
Δ
t
4
1
2
Δ
t
3
1
2
Δ
t
3
Δ
t
2
]
σ
a
2
.
{\displaystyle {\begin{aligned}\mathbf {w} _{k}&\sim N(0,\mathbf {Q} )\\\mathbf {Q} &=\mathbf {G} \mathbf {G} ^{\textsf {T}}\sigma _{a}^{2}={\begin{bmatrix}{\frac {1}{4}}{\Delta t}^{4}&{\frac {1}{2}}{\Delta t}^{3}\\[6pt]{\frac {1}{2}}{\Delta t}^{3}&{\Delta t}^{2}\end{bmatrix}}\sigma _{a}^{2}.\end{aligned}}}
行列は フルランクではない( の場合、ランク1である )。したがって、分布は 絶対連続ではなく、 確率密度関数を持たない 。明示的な退化分布を避けてこれを表現する別の方法は、次のように表される。
Q
{\displaystyle \mathbf {Q} }
Δ
t
≠
0
{\displaystyle \Delta t\neq 0}
N
(
0
,
Q
)
{\displaystyle N(0,\mathbf {Q} )}
w
k
∼
G
⋅
N
(
0
,
σ
a
2
)
.
{\displaystyle \mathbf {w} _{k}\sim \mathbf {G} \cdot N\left(0,\sigma _{a}^{2}\right).}
各時間フェーズで、トラックの実際の位置のノイズ測定が行われます。測定ノイズ v k も平均 0 および標準偏差σ z で正規分布していると仮定します 。
z
k
=
H
x
k
+
v
k
{\displaystyle \mathbf {z} _{k}=\mathbf {Hx} _{k}+\mathbf {v} _{k}}
どこ
H
=
[
1
0
]
{\displaystyle \mathbf {H} ={\begin{bmatrix}1&0\end{bmatrix}}}
そして
R
=
E
[
v
k
v
k
T
]
=
[
σ
z
2
]
{\displaystyle \mathbf {R} =\mathrm {E} \left[\mathbf {v} _{k}\mathbf {v} _{k}^{\textsf {T}}\right]={\begin{bmatrix}\sigma _{z}^{2}\end{bmatrix}}}
トラックの初期始動状態は完璧にわかっているので、初期化します。
x
^
0
∣
0
=
[
0
0
]
{\displaystyle {\hat {\mathbf {x} }}_{0\mid 0}={\begin{bmatrix}0\\0\end{bmatrix}}}
正確な位置と速度がわかっていることをフィルターに伝えるために、ゼロ共分散行列を与えます。
P
0
∣
0
=
[
0
0
0
0
]
{\displaystyle \mathbf {P} _{0\mid 0}={\begin{bmatrix}0&0\\0&0\end{bmatrix}}}
初期位置と速度が完全にわかっていない場合、共分散行列は対角線上に適切な分散で初期化する必要があります。
P
0
∣
0
=
[
σ
x
2
0
0
σ
x
˙
2
]
{\displaystyle \mathbf {P} _{0\mid 0}={\begin{bmatrix}\sigma _{x}^{2}&0\\0&\sigma _{\dot {x}}^{2}\end{bmatrix}}}
フィルターは、モデルにすでに存在する情報よりも、最初の測定値からの情報を優先します。
簡単にするために、制御入力 と仮定します 。すると、カルマンフィルタは次のように記述できます。
u
k
=
0
{\displaystyle \mathbf {u} _{k}=\mathbf {0} }
x
^
k
∣
k
=
F
k
x
^
k
−
1
∣
k
−
1
+
K
k
[
z
k
−
H
k
F
k
x
^
k
−
1
∣
k
−
1
]
.
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}=\mathbf {F} _{k}{\hat {\mathbf {x} }}_{k-1\mid k-1}+\mathbf {K} _{k}[\mathbf {z} _{k}-\mathbf {H} _{k}\mathbf {F} _{k}{\hat {\mathbf {x} }}_{k-1\mid k-1}].}
ゼロ以外の制御入力を含める場合も同様の式が成り立ちます。ゲイン行列は 測定値とは独立して変化します 。上記から、カルマンゲインを更新するために必要な 4 つの式は次のようになります。
K
k
{\displaystyle \mathbf {K} _{k}}
z
k
{\displaystyle \mathbf {z} _{k}}
P
k
∣
k
−
1
=
F
k
P
k
−
1
∣
k
−
1
F
k
T
+
Q
k
,
S
k
=
H
k
P
k
∣
k
−
1
H
k
T
+
R
k
,
K
k
=
P
k
∣
k
−
1
H
k
T
S
k
−
1
,
P
k
|
k
=
(
I
−
K
k
H
k
)
P
k
|
k
−
1
.
{\displaystyle {\begin{aligned}\mathbf {P} _{k\mid k-1}&=\mathbf {F} _{k}\mathbf {P} _{k-1\mid k-1}\mathbf {F} _{k}^{\textsf {T}}+\mathbf {Q} _{k},\\\mathbf {S} _{k}&=\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k},\\\mathbf {K} _{k}&=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1},\\\mathbf {P} _{k|k}&=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k|k-1}.\end{aligned}}}
ゲイン行列はモデルのみに依存し、測定値には依存しないため、オフラインで計算できます。ゲイン行列の 漸近行列への収束は、WalrandとDimakis [42] で確立された条件に適用されます。 シミュレーションにより、収束までのステップ数が確立されます。上記の移動中のトラックの例では、およびの場合 、 シミュレーションは反復で収束を示します 。
K
k
{\displaystyle \mathbf {K} _{k}}
K
∞
{\displaystyle \mathbf {K} _{\infty }}
Δ
t
=
1
{\displaystyle \Delta t=1}
σ
a
2
=
σ
z
2
=
σ
x
2
=
σ
x
˙
2
=
1
{\displaystyle \sigma _{a}^{2}=\sigma _{z}^{2}=\sigma _{x}^{2}=\sigma _{\dot {x}}^{2}=1}
10
{\displaystyle 10}
漸近ゲインを使用し、および が から独立している と仮定すると 、カルマンフィルタは 線形時間不変 フィルタになります。
H
k
{\displaystyle \mathbf {H} _{k}}
F
k
{\displaystyle \mathbf {F} _{k}}
k
{\displaystyle k}
x
^
k
=
F
x
^
k
−
1
+
K
∞
[
z
k
−
H
F
x
^
k
−
1
]
.
{\displaystyle {\hat {\mathbf {x} }}_{k}=\mathbf {F} {\hat {\mathbf {x} }}_{k-1}+\mathbf {K} _{\infty }[\mathbf {z} _{k}-\mathbf {H} \mathbf {F} {\hat {\mathbf {x} }}_{k-1}].}
漸近的ゲインは、もし存在するならば、まず 漸近的状態共分散に対する次の離散 リカッチ方程式を 解くことによって計算できる : [42]
K
∞
{\displaystyle \mathbf {K} _{\infty }}
P
∞
{\displaystyle \mathbf {P} _{\infty }}
P
∞
=
F
(
P
∞
−
P
∞
H
T
(
H
P
∞
H
T
+
R
)
−
1
H
P
∞
)
F
T
+
Q
.
{\displaystyle \mathbf {P} _{\infty }=\mathbf {F} \left(\mathbf {P} _{\infty }-\mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\left(\mathbf {H} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}+\mathbf {R} \right)^{-1}\mathbf {H} \mathbf {P} _{\infty }\right)\mathbf {F} ^{\textsf {T}}+\mathbf {Q} .}
その後、漸近ゲインは前と同じように計算されます。
K
∞
=
P
∞
H
T
(
R
+
H
P
∞
H
T
)
−
1
.
{\displaystyle \mathbf {K} _{\infty }=\mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\left(\mathbf {R} +\mathbf {H} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\right)^{-1}.}
さらに、制御理論でより一般的に使用される漸近カルマンフィルタの形式は次のように表される。
x
^
k
+
1
=
F
x
^
k
+
B
u
k
+
K
¯
∞
[
z
k
−
H
x
^
k
]
,
{\displaystyle {\displaystyle {\hat {\mathbf {x} }}_{k+1}=\mathbf {F} {\hat {\mathbf {x} }}_{k}+\mathbf {B} \mathbf {u} _{k}+\mathbf {\overline {K}} _{\infty }[\mathbf {z} _{k}-\mathbf {H} {\hat {\mathbf {x} }}_{k}],}}
どこ
K
¯
∞
=
F
P
∞
H
T
(
R
+
H
P
∞
H
T
)
−
1
.
{\displaystyle {\overline {\mathbf {K} }}_{\infty }=\mathbf {F} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\left(\mathbf {R} +\mathbf {H} \mathbf {P} _{\infty }\mathbf {H} ^{\textsf {T}}\right)^{-1}.}
これにより、次のような形式の推定値が得られる。
x
^
k
+
1
=
(
F
−
K
¯
∞
H
)
x
^
k
+
B
u
k
+
K
¯
∞
z
k
,
{\displaystyle {\displaystyle {\hat {\mathbf {x} }}_{k+1}=(\mathbf {F} -{\overline {\mathbf {K} }}_{\infty }\mathbf {H} ){\hat {\mathbf {x} }}_{k}+\mathbf {B} \mathbf {u} _{k}+\mathbf {\overline {K}} _{\infty }\mathbf {z} _{k},}}
派生語
カルマンフィルタは、 過去のデータに基づいて 一般化された最小二乗法として導出することができる。 [43]
導出 事後的に 共分散行列を推定する
誤差共分散 P k | k の不変量から始めると、
P
k
∣
k
=
cov
(
x
k
−
x
^
k
∣
k
)
{\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)}
の定義に代入する
x
^
k
∣
k
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}}
P
k
∣
k
=
cov
[
x
k
−
(
x
^
k
∣
k
−
1
+
K
k
y
~
k
)
]
{\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left[\mathbf {x} _{k}-\left({\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}{\tilde {\mathbf {y} }}_{k}\right)\right]}
代替
y
~
k
{\displaystyle {\tilde {\mathbf {y} }}_{k}}
P
k
∣
k
=
cov
(
x
k
−
[
x
^
k
∣
k
−
1
+
K
k
(
z
k
−
H
k
x
^
k
∣
k
−
1
)
]
)
{\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left(\mathbf {x} _{k}-\left[{\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\left(\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}\right)\right]\right)}
そして
z
k
{\displaystyle \mathbf {z} _{k}}
P
k
∣
k
=
cov
(
x
k
−
[
x
^
k
∣
k
−
1
+
K
k
(
H
k
x
k
+
v
k
−
H
k
x
^
k
∣
k
−
1
)
]
)
{\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left(\mathbf {x} _{k}-\left[{\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\left(\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}\right)\right]\right)}
そして誤差ベクトルを集めると
P
k
∣
k
=
cov
[
(
I
−
K
k
H
k
)
(
x
k
−
x
^
k
∣
k
−
1
)
−
K
k
v
k
]
{\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left[\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)-\mathbf {K} _{k}\mathbf {v} _{k}\right]}
測定誤差 v kは 他の項と相関がないので、これは次のようになる。
P
k
∣
k
=
cov
[
(
I
−
K
k
H
k
)
(
x
k
−
x
^
k
∣
k
−
1
)
]
+
cov
[
K
k
v
k
]
{\displaystyle \mathbf {P} _{k\mid k}=\operatorname {cov} \left[\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\right]+\operatorname {cov} \left[\mathbf {K} _{k}\mathbf {v} _{k}\right]}
ベクトル共分散 の性質により、 これは
P
k
∣
k
=
(
I
−
K
k
H
k
)
cov
(
x
k
−
x
^
k
∣
k
−
1
)
(
I
−
K
k
H
k
)
T
+
K
k
cov
(
v
k
)
K
k
T
{\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\operatorname {cov} \left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\operatorname {cov} \left(\mathbf {v} _{k}\right)\mathbf {K} _{k}^{\textsf {T}}}
これはP k | k −1 の不変量と R k の定義を用いると 次のようになる。
P
k
∣
k
=
(
I
−
K
k
H
k
)
P
k
∣
k
−
1
(
I
−
K
k
H
k
)
T
+
K
k
R
k
K
k
T
{\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\textsf {T}}}
この式 (共分散更新方程式のジョセフ形式 とも呼ばれる) は、 K k の任意の値に対して有効です。 K k が 最適なカルマン ゲインである場合 、これは以下に示すようにさらに簡略化できます。
カルマンゲイン導出
カルマンフィルタは 最小平均二乗誤差推定器である。 事後 状態推定
における誤差は
x
k
−
x
^
k
∣
k
{\displaystyle \mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}}
このベクトルの大きさの二乗の期待値を最小化することを目指します。これは、 事後 推定 共分散 行列の トレースを 最小化することと同じです 。上記の式の項を展開してまとめると、次のようになります。
E
[
‖
x
k
−
x
^
k
|
k
‖
2
]
{\displaystyle \operatorname {E} \left[\left\|\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k|k}\right\|^{2}\right]}
P
k
|
k
{\displaystyle \mathbf {P} _{k|k}}
P
k
∣
k
=
P
k
∣
k
−
1
−
K
k
H
k
P
k
∣
k
−
1
−
P
k
∣
k
−
1
H
k
T
K
k
T
+
K
k
(
H
k
P
k
∣
k
−
1
H
k
T
+
R
k
)
K
k
T
=
P
k
∣
k
−
1
−
K
k
H
k
P
k
∣
k
−
1
−
P
k
∣
k
−
1
H
k
T
K
k
T
+
K
k
S
k
K
k
T
{\displaystyle {\begin{aligned}\mathbf {P} _{k\mid k}&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}+\mathbf {K} _{k}\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k}\right)\mathbf {K} _{k}^{\textsf {T}}\\[6pt]&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}+\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\textsf {T}}\end{aligned}}}
トレースは、ゲイン 行列に対する行列 微分がゼロのときに最小化されます。 勾配行列の規則 と関係する行列の対称性を使用すると、次の式が得られます。
∂
tr
(
P
k
∣
k
)
∂
K
k
=
−
2
(
H
k
P
k
∣
k
−
1
)
T
+
2
K
k
S
k
=
0.
{\displaystyle {\frac {\partial \;\operatorname {tr} (\mathbf {P} _{k\mid k})}{\partial \;\mathbf {K} _{k}}}=-2\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\right)^{\textsf {T}}+2\mathbf {K} _{k}\mathbf {S} _{k}=0.}
これをK k について解くと、 カルマンゲインが得られます。
K
k
S
k
=
(
H
k
P
k
∣
k
−
1
)
T
=
P
k
∣
k
−
1
H
k
T
⇒
K
k
=
P
k
∣
k
−
1
H
k
T
S
k
−
1
{\displaystyle {\begin{aligned}\mathbf {K} _{k}\mathbf {S} _{k}&=\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\right)^{\textsf {T}}=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\\\Rightarrow \mathbf {K} _{k}&=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}\end{aligned}}}
このゲインは最適カルマンゲイン と呼ばれ、使用すると MMSE 推定値が得られます 。
の簡素化 事後的に 誤差共分散式
事後 誤差共分散を計算するために使用される式は、 カルマンゲインが上で導出された最適値に等しい場合に簡略化できます。右辺のカルマンゲイン式の両辺に S k K k T を掛けると、次のようになります。
K
k
S
k
K
k
T
=
P
k
∣
k
−
1
H
k
T
K
k
T
{\displaystyle \mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\textsf {T}}=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}}
事後 誤差共分散の拡張式に戻ると 、
P
k
∣
k
=
P
k
∣
k
−
1
−
K
k
H
k
P
k
∣
k
−
1
−
P
k
∣
k
−
1
H
k
T
K
k
T
+
K
k
S
k
K
k
T
{\displaystyle \mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\mathbf {K} _{k}^{\textsf {T}}+\mathbf {K} _{k}\mathbf {S} _{k}\mathbf {K} _{k}^{\textsf {T}}}
最後の2つの項は打ち消され、
P
k
∣
k
=
P
k
∣
k
−
1
−
K
k
H
k
P
k
∣
k
−
1
=
(
I
−
K
k
H
k
)
P
k
∣
k
−
1
{\displaystyle \mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}=(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k})\mathbf {P} _{k\mid k-1}}
この式は計算コストが低いため、実際にはほぼ常に使用されますが、最適なゲインに対してのみ有効です。算術精度が異常に低く、 数値安定性 に問題がある場合、または最適でないカルマン ゲインが意図的に使用されている場合は、この簡略化は適用できません。上記で導出された 事後 誤差共分散式 (Joseph 形式) を使用する必要があります。
感度分析
カルマンフィルタリング方程式は、状態 とその誤差共分散の推定値 を再帰的に提供します。推定値とその品質は、推定器への入力として供給されるシステムパラメータとノイズ統計に依存します。このセクションでは、フィルタへの統計入力の不確実性の影響を分析します。 [44] 信頼できる統計やノイズ共分散行列と 真の値がない場合 、式
x
^
k
∣
k
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}}
P
k
∣
k
{\displaystyle \mathbf {P} _{k\mid k}}
Q
k
{\displaystyle \mathbf {Q} _{k}}
R
k
{\displaystyle \mathbf {R} _{k}}
P
k
∣
k
=
(
I
−
K
k
H
k
)
P
k
∣
k
−
1
(
I
−
K
k
H
k
)
T
+
K
k
R
k
K
k
T
{\displaystyle \mathbf {P} _{k\mid k}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}\mathbf {K} _{k}^{\textsf {T}}}
実際の誤差共分散を提供しなくなりました。言い換えると、 ほとんどのリアルタイム アプリケーションでは、カルマン フィルタの設計に使用される共分散行列は、実際の (真の) ノイズ共分散行列とは異なります。 [ 要出典 ] この感度分析は、フィルタへの入力として供給されるノイズ共分散とシステム行列および が 正しくない場合の推定誤差共分散の動作について説明します。したがって、感度分析は、推定量への誤って指定された統計的およびパラメトリックな入力に対する推定量の堅牢性 (または感度) について説明します。
P
k
∣
k
≠
E
[
(
x
k
−
x
^
k
∣
k
)
(
x
k
−
x
^
k
∣
k
)
T
]
{\displaystyle \mathbf {P} _{k\mid k}\neq E\left[\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)^{\textsf {T}}\right]}
F
k
{\displaystyle \mathbf {F} _{k}}
H
k
{\displaystyle \mathbf {H} _{k}}
この議論は、統計的不確実性がある場合の誤差感度分析に限定されます。ここで、実際のノイズ共分散はそれぞれ およびで表され 、推定器で使用される設計値はそれぞれおよびです 。 実際の誤差共分散は、およびで表され 、 カルマン フィルタによって計算されるものは、リカッチ変数と呼ばれます。および のとき 、これは を意味します 。 を使用して実際の誤差共分散を計算する際に 、およびを代入し 、およびという事実を使用する と 、 に関する次の再帰方程式が得られます 。
Q
k
a
{\displaystyle \mathbf {Q} _{k}^{a}}
R
k
a
{\displaystyle \mathbf {R} _{k}^{a}}
Q
k
{\displaystyle \mathbf {Q} _{k}}
R
k
{\displaystyle \mathbf {R} _{k}}
P
k
∣
k
a
{\displaystyle \mathbf {P} _{k\mid k}^{a}}
P
k
∣
k
{\displaystyle \mathbf {P} _{k\mid k}}
Q
k
≡
Q
k
a
{\displaystyle \mathbf {Q} _{k}\equiv \mathbf {Q} _{k}^{a}}
R
k
≡
R
k
a
{\displaystyle \mathbf {R} _{k}\equiv \mathbf {R} _{k}^{a}}
P
k
∣
k
=
P
k
∣
k
a
{\displaystyle \mathbf {P} _{k\mid k}=\mathbf {P} _{k\mid k}^{a}}
P
k
∣
k
a
=
E
[
(
x
k
−
x
^
k
∣
k
)
(
x
k
−
x
^
k
∣
k
)
T
]
{\displaystyle \mathbf {P} _{k\mid k}^{a}=E\left[\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)\left(\mathbf {x} _{k}-{\hat {\mathbf {x} }}_{k\mid k}\right)^{\textsf {T}}\right]}
x
^
k
∣
k
{\displaystyle {\widehat {\mathbf {x} }}_{k\mid k}}
E
[
w
k
w
k
T
]
=
Q
k
a
{\displaystyle E\left[\mathbf {w} _{k}\mathbf {w} _{k}^{\textsf {T}}\right]=\mathbf {Q} _{k}^{a}}
E
[
v
k
v
k
T
]
=
R
k
a
{\displaystyle E\left[\mathbf {v} _{k}\mathbf {v} _{k}^{\textsf {T}}\right]=\mathbf {R} _{k}^{a}}
P
k
∣
k
a
{\displaystyle \mathbf {P} _{k\mid k}^{a}}
P
k
∣
k
−
1
a
=
F
k
P
k
−
1
∣
k
−
1
a
F
k
T
+
Q
k
a
{\displaystyle \mathbf {P} _{k\mid k-1}^{a}=\mathbf {F} _{k}\mathbf {P} _{k-1\mid k-1}^{a}\mathbf {F} _{k}^{\textsf {T}}+\mathbf {Q} _{k}^{a}}
そして
P
k
∣
k
a
=
(
I
−
K
k
H
k
)
P
k
∣
k
−
1
a
(
I
−
K
k
H
k
)
T
+
K
k
R
k
a
K
k
T
{\displaystyle \mathbf {P} _{k\mid k}^{a}=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}^{a}\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)^{\textsf {T}}+\mathbf {K} _{k}\mathbf {R} _{k}^{a}\mathbf {K} _{k}^{\textsf {T}}}
を計算する際 、設計上、フィルタは暗黙的におよび を仮定します 。 および の再帰式は 、それぞれ 設計値 およびの代わりに およびが 存在することを除いて同一です 。カルマンフィルタシステムの堅牢性を分析するための研究が行われてきました。 [45]
P
k
∣
k
{\displaystyle \mathbf {P} _{k\mid k}}
E
[
w
k
w
k
T
]
=
Q
k
{\displaystyle E\left[\mathbf {w} _{k}\mathbf {w} _{k}^{\textsf {T}}\right]=\mathbf {Q} _{k}}
E
[
v
k
v
k
T
]
=
R
k
{\displaystyle E\left[\mathbf {v} _{k}\mathbf {v} _{k}^{\textsf {T}}\right]=\mathbf {R} _{k}}
P
k
∣
k
a
{\displaystyle \mathbf {P} _{k\mid k}^{a}}
P
k
∣
k
{\displaystyle \mathbf {P} _{k\mid k}}
Q
k
a
{\displaystyle \mathbf {Q} _{k}^{a}}
R
k
a
{\displaystyle \mathbf {R} _{k}^{a}}
Q
k
{\displaystyle \mathbf {Q} _{k}}
R
k
{\displaystyle \mathbf {R} _{k}}
カルマン フィルタの問題の 1 つは、 数値的安定性 です。プロセス ノイズ共分散 Q k が小さい場合、丸め誤差により、状態共分散行列 Pの小さな正の固有値が負の数として計算されることがよくあります。これにより、 P の数値表現は 不定に なりますが、その真の形式は 正定値 です。
正定値行列は、特異でない 下 三角行列 S とその 転置行列 の積に因数分解できるという特性があります : P = S · S T 。因数 Sは、 コレスキー分解 アルゴリズムを使用して効率的に計算できます 。共分散行列 P のこの積形式は対称であることが保証されており、すべての 1 <= k <= n について、 k 番目の対角要素 P kk は S の k 番目の行の ユークリッドノルム に等しく 、これは必ず正になります。 コレスキー分解 アルゴリズムに含まれる 平方根 演算の多くを回避しながら、望ましい数値特性を保持する同等の形式は、UD 分解形式 P = U · D · U T です。ここで、 U は 単位三角行列 (対角要素が単位)、 D は 対角行列です。
2つの因数分解のうち、UD因数分解は使用する記憶領域は同じで、計算量はやや少なく、最も一般的に使用されている三角因数分解です。(相対的な効率に関する初期の文献は、平方根は除算よりもはるかに時間がかかると想定していたため、やや誤解を招くものでしたが、 [46] : 69 21世紀のコンピュータでは、平方根は除算よりもわずかに高価であるだけです。)
因数分解された形式でのカルマン予測と更新ステップのための効率的なアルゴリズムは、GJ BiermanとCL Thorntonによって開発された。 [46] [47]
イノベーション共分散行列 S kの L · D · L T 分解 は 、数値的に効率的で堅牢な別のタイプの平方根フィルタの基礎となる。 [48] アルゴリズムは、線形代数パッケージ ( LAPACK ) に実装されている LU 分解から始まる。これらの結果は、 対称非特異行列に対して Golub と Van Loan によって示された方法 (アルゴリズム 4.1.2) を使用して、 L · D · L T構造にさらに因数分解される。 [49] 任意の特異共分散行列は、最初の対角パーティションが 非特異 で 条件が整っている ように ピボットされる。ピボット アルゴリズムは、 y k の補助観測に関連付けられている
観測状態変数 H k · x k| k -1 に直接対応するイノベーション共分散行列の部分を保持する必要がある 。l · d · l t 平方根フィルタでは、 観測ベクトルの 直交化が必要である。 [47] [48] これは、ハイアム(2002、p.263)の方法2を使用して、補助変数の共分散行列の逆平方根で行うことができます。 [50]
カルマンフィルタは、 中央処理装置 (CPU)での順次データ処理には効率的ですが、元の形式では グラフィックス処理装置 (GPU)などの並列アーキテクチャでは非効率的です。ただし、SärkkäとGarcía-Fernández(2021)の定式化を使用して、結合演算子の観点からフィルタ更新ルーチンを表現することは可能です。 [51] 次に、 GPUで効率的に実装できる プレフィックス合計 アルゴリズムを使用して、フィルタソリューションを取得できます。 [52]これにより、 計算の複雑さが 時間ステップ数から に 削減されます 。
O
(
N
)
{\displaystyle O(N)}
O
(
log
(
N
)
)
{\displaystyle O(\log(N))}
再帰ベイズ推定との関係
カルマンフィルタは、最も単純な 動的ベイジアンネットワーク の1つとして表すことができます。カルマンフィルタは、入力される測定値と数学的プロセスモデルを使用して、時間の経過に伴って再帰的に状態の真の値の推定値を計算します。同様に、 再帰 ベイジアン推定は、 入力される測定値と数学的プロセスモデルを使用して、時間の経過に伴って再帰的に未知の 確率密度関数 ( PDF)の推定値を計算します。 [53]
再帰的ベイズ推定では、真の状態は観測されない マルコフ過程 であると想定され、測定値は隠れマルコフモデル (HMM) の観測された状態です。
隠れマルコフモデル
マルコフ仮定により、真の状態は、直前の状態が与えられれば、それ以前のすべての状態から条件付きで独立しています。
p
(
x
k
∣
x
0
,
…
,
x
k
−
1
)
=
p
(
x
k
∣
x
k
−
1
)
{\displaystyle p(\mathbf {x} _{k}\mid \mathbf {x} _{0},\dots ,\mathbf {x} _{k-1})=p(\mathbf {x} _{k}\mid \mathbf {x} _{k-1})}
同様に、 k 番目のタイムステップでの測定は 現在の状態のみに依存し、現在の状態が与えられた場合、他のすべての状態からは条件付きで独立しています。
p
(
z
k
∣
x
0
,
…
,
x
k
)
=
p
(
z
k
∣
x
k
)
{\displaystyle p(\mathbf {z} _{k}\mid \mathbf {x} _{0},\dots ,\mathbf {x} _{k})=p(\mathbf {z} _{k}\mid \mathbf {x} _{k})}
これらの仮定を使用すると、隠れマルコフモデルのすべての状態における確率分布は次のように簡単に記述できます。
p
(
x
0
,
…
,
x
k
,
z
1
,
…
,
z
k
)
=
p
(
x
0
)
∏
i
=
1
k
p
(
z
i
∣
x
i
)
p
(
x
i
∣
x
i
−
1
)
{\displaystyle p\left(\mathbf {x} _{0},\dots ,\mathbf {x} _{k},\mathbf {z} _{1},\dots ,\mathbf {z} _{k}\right)=p\left(\mathbf {x} _{0}\right)\prod _{i=1}^{k}p\left(\mathbf {z} _{i}\mid \mathbf {x} _{i}\right)p\left(\mathbf {x} _{i}\mid \mathbf {x} _{i-1}\right)}
ただし、カルマン フィルタを使用して状態 x を 推定する場合、対象となる確率分布は、現在のタイムステップまでの測定に基づいて条件付けられた現在の状態に関連付けられた確率分布です。これは、以前の状態を周辺化して、測定セットの確率で割ることによって実現されます。
この結果、 カルマンフィルタの 予測 フェーズと 更新フェーズが確率的に記述されます。予測された状態に関連付けられた確率分布は、( k − 1)番目のタイムステップから k 番目 への遷移に関連付けられた確率分布と、前の状態に関連付けられた確率分布の積を、すべての可能な範囲にわたって合計(積分) したものです 。
x
k
−
1
{\displaystyle x_{k-1}}
p
(
x
k
∣
Z
k
−
1
)
=
∫
p
(
x
k
∣
x
k
−
1
)
p
(
x
k
−
1
∣
Z
k
−
1
)
d
x
k
−
1
{\displaystyle p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k-1}\right)=\int p\left(\mathbf {x} _{k}\mid \mathbf {x} _{k-1}\right)p\left(\mathbf {x} _{k-1}\mid \mathbf {Z} _{k-1}\right)\,d\mathbf {x} _{k-1}}
時刻t までの測定セットアップ は
Z
t
=
{
z
1
,
…
,
z
t
}
{\displaystyle \mathbf {Z} _{t}=\left\{\mathbf {z} _{1},\dots ,\mathbf {z} _{t}\right\}}
更新の確率分布は、測定尤度と予測状態の積に比例します。
p
(
x
k
∣
Z
k
)
=
p
(
z
k
∣
x
k
)
p
(
x
k
∣
Z
k
−
1
)
p
(
z
k
∣
Z
k
−
1
)
{\displaystyle p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k}\right)={\frac {p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k-1}\right)}{p\left(\mathbf {z} _{k}\mid \mathbf {Z} _{k-1}\right)}}}
分母
p
(
z
k
∣
Z
k
−
1
)
=
∫
p
(
z
k
∣
x
k
)
p
(
x
k
∣
Z
k
−
1
)
d
x
k
{\displaystyle p\left(\mathbf {z} _{k}\mid \mathbf {Z} _{k-1}\right)=\int p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)p\left(\mathbf {x} _{k}\mid \mathbf {Z} _{k-1}\right)\,d\mathbf {x} _{k}}
正規化項です。
残りの確率密度関数は
p
(
x
k
∣
x
k
−
1
)
=
N
(
F
k
x
k
−
1
,
Q
k
)
p
(
z
k
∣
x
k
)
=
N
(
H
k
x
k
,
R
k
)
p
(
x
k
−
1
∣
Z
k
−
1
)
=
N
(
x
^
k
−
1
,
P
k
−
1
)
{\displaystyle {\begin{aligned}p\left(\mathbf {x} _{k}\mid \mathbf {x} _{k-1}\right)&={\mathcal {N}}\left(\mathbf {F} _{k}\mathbf {x} _{k-1},\mathbf {Q} _{k}\right)\\p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)&={\mathcal {N}}\left(\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}\right)\\p\left(\mathbf {x} _{k-1}\mid \mathbf {Z} _{k-1}\right)&={\mathcal {N}}\left({\hat {\mathbf {x} }}_{k-1},\mathbf {P} _{k-1}\right)\end{aligned}}}
前のタイムステップでの PDF は、推定された状態と共分散であると帰納的に想定されます。これは、最適な推定器として、カルマン フィルターが測定値を最大限に活用するため正当化され、したがって、 測定値が与えられた場合の PDF は カルマン フィルターの推定値になります。
x
k
{\displaystyle \mathbf {x} _{k}}
Z
k
{\displaystyle \mathbf {Z} _{k}}
限界確率
上述の再帰的ベイズ解釈に関連して、カルマンフィルタは 生成モデル 、すなわちランダムな観測値のストリーム z = ( z 0 , z 1 , z 2 , ...)を 生成する プロセスとして見ることができる 。具体的には、プロセスは次のようになる。
ガウス事前分布から 隠れ状態をサンプリングします 。
x
0
{\displaystyle \mathbf {x} _{0}}
p
(
x
0
)
=
N
(
x
^
0
∣
0
,
P
0
∣
0
)
{\displaystyle p\left(\mathbf {x} _{0}\right)={\mathcal {N}}\left({\hat {\mathbf {x} }}_{0\mid 0},\mathbf {P} _{0\mid 0}\right)}
観測モデルから 観測をサンプリングします 。
z
0
{\displaystyle \mathbf {z} _{0}}
p
(
z
0
∣
x
0
)
=
N
(
H
0
x
0
,
R
0
)
{\displaystyle p\left(\mathbf {z} _{0}\mid \mathbf {x} _{0}\right)={\mathcal {N}}\left(\mathbf {H} _{0}\mathbf {x} _{0},\mathbf {R} _{0}\right)}
については 、
k
=
1
,
2
,
3
,
…
{\displaystyle k=1,2,3,\ldots }
遷移モデルから 次の隠れ状態をサンプリングする
x
k
{\displaystyle \mathbf {x} _{k}}
p
(
x
k
∣
x
k
−
1
)
=
N
(
F
k
x
k
−
1
+
B
k
u
k
,
Q
k
)
.
{\displaystyle p\left(\mathbf {x} _{k}\mid \mathbf {x} _{k-1}\right)={\mathcal {N}}\left(\mathbf {F} _{k}\mathbf {x} _{k-1}+\mathbf {B} _{k}\mathbf {u} _{k},\mathbf {Q} _{k}\right).}
観測モデルから 観測をサンプリングする
z
k
{\displaystyle \mathbf {z} _{k}}
p
(
z
k
∣
x
k
)
=
N
(
H
k
x
k
,
R
k
)
.
{\displaystyle p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)={\mathcal {N}}\left(\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}\right).}
このプロセスは、離散状態と観測値がガウス分布からサンプリングされた連続変数に置き換えられることを除いて、隠れマルコフモデル と同一の構造を持ちます 。
一部のアプリケーションでは、 特定のパラメータ セット (事前分布、遷移および観測モデル、制御入力) を持つカルマン フィルタが特定の観測信号を生成する 確率を計算すると便利です。この確率は、隠れた状態変数の値を積分 (「周辺化」) するため、観測信号のみを使用して計算できるため、 周辺尤度と呼ばれます。周辺尤度は、さまざまなパラメータの選択を評価したり、 ベイズ モデル比較を 使用してカルマン フィルタを他のモデルと比較したりするのに役立ちます 。
再帰フィルタリング計算の副作用として周辺尤度を計算するのは簡単です。 連鎖律 により、尤度は、以前の観測値から各観測値の確率を乗じて因数分解できます。
p
(
z
)
=
∏
k
=
0
T
p
(
z
k
∣
z
k
−
1
,
…
,
z
0
)
{\displaystyle p(\mathbf {z} )=\prod _{k=0}^{T}p\left(\mathbf {z} _{k}\mid \mathbf {z} _{k-1},\ldots ,\mathbf {z} _{0}\right)}
、
カルマンフィルタはマルコフ過程を記述するため、以前の観測からのすべての関連情報は現在の状態推定値に含まれる。 したがって、周辺尤度は次のように与えられる。
x
^
k
∣
k
−
1
,
P
k
∣
k
−
1
.
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {P} _{k\mid k-1}.}
p
(
z
)
=
∏
k
=
0
T
∫
p
(
z
k
∣
x
k
)
p
(
x
k
∣
z
k
−
1
,
…
,
z
0
)
d
x
k
=
∏
k
=
0
T
∫
N
(
z
k
;
H
k
x
k
,
R
k
)
N
(
x
k
;
x
^
k
∣
k
−
1
,
P
k
∣
k
−
1
)
d
x
k
=
∏
k
=
0
T
N
(
z
k
;
H
k
x
^
k
∣
k
−
1
,
R
k
+
H
k
P
k
∣
k
−
1
H
k
T
)
=
∏
k
=
0
T
N
(
z
k
;
H
k
x
^
k
∣
k
−
1
,
S
k
)
,
{\displaystyle {\begin{aligned}p(\mathbf {z} )&=\prod _{k=0}^{T}\int p\left(\mathbf {z} _{k}\mid \mathbf {x} _{k}\right)p\left(\mathbf {x} _{k}\mid \mathbf {z} _{k-1},\ldots ,\mathbf {z} _{0}\right)d\mathbf {x} _{k}\\&=\prod _{k=0}^{T}\int {\mathcal {N}}\left(\mathbf {z} _{k};\mathbf {H} _{k}\mathbf {x} _{k},\mathbf {R} _{k}\right){\mathcal {N}}\left(\mathbf {x} _{k};{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {P} _{k\mid k-1}\right)d\mathbf {x} _{k}\\&=\prod _{k=0}^{T}{\mathcal {N}}\left(\mathbf {z} _{k};\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {R} _{k}+\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\right)\\&=\prod _{k=0}^{T}{\mathcal {N}}\left(\mathbf {z} _{k};\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {S} _{k}\right),\end{aligned}}}
すなわち、ガウス密度の積であり、それぞれは 現在のフィルタリング分布における1つの観測値 z k の密度に対応する。これは単純な再帰更新として簡単に計算できるが、 数値アンダーフローを回避するために、実際の実装では通常、代わりに 対数 周辺尤度 を計算することが望ましい 。慣例を採用すると 、これは再帰更新規則によって実行できる。
H
k
x
^
k
∣
k
−
1
,
S
k
{\displaystyle \mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1},\mathbf {S} _{k}}
ℓ
=
log
p
(
z
)
{\displaystyle \ell =\log p(\mathbf {z} )}
ℓ
(
−
1
)
=
0
{\displaystyle \ell ^{(-1)}=0}
ℓ
(
k
)
=
ℓ
(
k
−
1
)
−
1
2
(
y
~
k
T
S
k
−
1
y
~
k
+
log
|
S
k
|
+
d
y
log
2
π
)
,
{\displaystyle \ell ^{(k)}=\ell ^{(k-1)}-{\frac {1}{2}}\left({\tilde {\mathbf {y} }}_{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}{\tilde {\mathbf {y} }}_{k}+\log \left|\mathbf {S} _{k}\right|+d_{y}\log 2\pi \right),}
ここで、は 測定ベクトルの次元である。 [54]
d
y
{\displaystyle d_{y}}
このような観測値の (対数) 尤度 (フィルター パラメーターが与えられた場合) が使用される重要なアプリケーションは、マルチターゲット追跡です。たとえば、観測値のストリームが入力であるが、シーン内にいくつのオブジェクトがあるかが不明な (または、オブジェクトの数はわかっているが 1 より大きい) オブジェクト追跡シナリオを考えてみましょう。このようなシナリオでは、どの観測値/測定値がどのオブジェクトによって生成されたかは事前に不明である可能性があります。複数仮説トラッカー (MHT) は通常、異なるトラック関連付け仮説を形成します。ここで、各仮説は、仮説オブジェクトに関連付けられた特定のパラメーター セットを持つカルマン フィルター (線形ガウスの場合) と見なすことができます。したがって、検討中のさまざまな仮説の観測値の尤度を計算して、最も可能性の高い仮説を見つけることが重要です。
観測ベクトルy の次元が状態空間ベクトル x の次元よりも大きい場合 、情報フィルタは、予測ステップでより小さな行列を反転するという代償を払って、カルマンゲイン計算でより大きな行列の反転を回避することができ、計算時間を節約できます。さらに、情報フィルタは、通常 のカルマンフィルタでは不可能な、 に従ったシステム情報の初期化を可能にします。 [55] 情報フィルタ、または逆共分散フィルタでは、推定共分散と推定状態は、それぞれ 情報行列 と 情報 ベクトルに置き換えられます。これらは次のように定義されます。
I
1
|
0
=
P
1
|
0
−
1
=
0
{\displaystyle {I_{1|0}=P_{1|0}^{-1}=0}}
Y
k
∣
k
=
P
k
∣
k
−
1
y
^
k
∣
k
=
P
k
∣
k
−
1
x
^
k
∣
k
{\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k}&=\mathbf {P} _{k\mid k}^{-1}\\{\hat {\mathbf {y} }}_{k\mid k}&=\mathbf {P} _{k\mid k}^{-1}{\hat {\mathbf {x} }}_{k\mid k}\end{aligned}}}
同様に、予測された共分散と状態には、次のように定義される同等の情報形式があります。
Y
k
∣
k
−
1
=
P
k
∣
k
−
1
−
1
y
^
k
∣
k
−
1
=
P
k
∣
k
−
1
−
1
x
^
k
∣
k
−
1
{\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k-1}&=\mathbf {P} _{k\mid k-1}^{-1}\\{\hat {\mathbf {y} }}_{k\mid k-1}&=\mathbf {P} _{k\mid k-1}^{-1}{\hat {\mathbf {x} }}_{k\mid k-1}\end{aligned}}}
測定共分散と測定ベクトルは次のように定義されます。
I
k
=
H
k
T
R
k
−
1
H
k
i
k
=
H
k
T
R
k
−
1
z
k
{\displaystyle {\begin{aligned}\mathbf {I} _{k}&=\mathbf {H} _{k}^{\textsf {T}}\mathbf {R} _{k}^{-1}\mathbf {H} _{k}\\\mathbf {i} _{k}&=\mathbf {H} _{k}^{\textsf {T}}\mathbf {R} _{k}^{-1}\mathbf {z} _{k}\end{aligned}}}
情報の更新にかかる費用は今やわずかなものとなった。 [56]
Y
k
∣
k
=
Y
k
∣
k
−
1
+
I
k
y
^
k
∣
k
=
y
^
k
∣
k
−
1
+
i
k
{\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k}&=\mathbf {Y} _{k\mid k-1}+\mathbf {I} _{k}\\{\hat {\mathbf {y} }}_{k\mid k}&={\hat {\mathbf {y} }}_{k\mid k-1}+\mathbf {i} _{k}\end{aligned}}}
情報フィルターの主な利点は、情報行列とベクトルを単純に合計するだけで、 N 個の測定値を各時間ステップでフィルター処理できることです。
Y
k
∣
k
=
Y
k
∣
k
−
1
+
∑
j
=
1
N
I
k
,
j
y
^
k
∣
k
=
y
^
k
∣
k
−
1
+
∑
j
=
1
N
i
k
,
j
{\displaystyle {\begin{aligned}\mathbf {Y} _{k\mid k}&=\mathbf {Y} _{k\mid k-1}+\sum _{j=1}^{N}\mathbf {I} _{k,j}\\{\hat {\mathbf {y} }}_{k\mid k}&={\hat {\mathbf {y} }}_{k\mid k-1}+\sum _{j=1}^{N}\mathbf {i} _{k,j}\end{aligned}}}
情報フィルタを予測するために、情報行列と情報ベクトルをそれらの状態空間の同等物に変換するか、あるいは情報空間予測を使用することができる。 [56]
M
k
=
[
F
k
−
1
]
T
Y
k
−
1
∣
k
−
1
F
k
−
1
C
k
=
M
k
[
M
k
+
Q
k
−
1
]
−
1
L
k
=
I
−
C
k
Y
k
∣
k
−
1
=
L
k
M
k
+
C
k
Q
k
−
1
C
k
T
y
^
k
∣
k
−
1
=
L
k
[
F
k
−
1
]
T
y
^
k
−
1
∣
k
−
1
{\displaystyle {\begin{aligned}\mathbf {M} _{k}&=\left[\mathbf {F} _{k}^{-1}\right]^{\textsf {T}}\mathbf {Y} _{k-1\mid k-1}\mathbf {F} _{k}^{-1}\\\mathbf {C} _{k}&=\mathbf {M} _{k}\left[\mathbf {M} _{k}+\mathbf {Q} _{k}^{-1}\right]^{-1}\\\mathbf {L} _{k}&=\mathbf {I} -\mathbf {C} _{k}\\\mathbf {Y} _{k\mid k-1}&=\mathbf {L} _{k}\mathbf {M} _{k}+\mathbf {C} _{k}\mathbf {Q} _{k}^{-1}\mathbf {C} _{k}^{\textsf {T}}\\{\hat {\mathbf {y} }}_{k\mid k-1}&=\mathbf {L} _{k}\left[\mathbf {F} _{k}^{-1}\right]^{\textsf {T}}{\hat {\mathbf {y} }}_{k-1\mid k-1}\end{aligned}}}
固定ラグスムーザー
最適な固定ラグスムーザは、からまでの測定値を使用して、与えられた固定ラグに対するの最適な推定値を提供します 。 [ 57 ] これ は、拡張状態を介して以前の理論を使用して導出することができ、フィルタの主な方程式は次のとおりです。
x
^
k
−
N
∣
k
{\displaystyle {\hat {\mathbf {x} }}_{k-N\mid k}}
N
{\displaystyle N}
z
1
{\displaystyle \mathbf {z} _{1}}
z
k
{\displaystyle \mathbf {z} _{k}}
[
x
^
t
∣
t
x
^
t
−
1
∣
t
⋮
x
^
t
−
N
+
1
∣
t
]
=
[
I
0
⋮
0
]
x
^
t
∣
t
−
1
+
[
0
…
0
I
0
⋮
⋮
⋱
⋮
0
…
I
]
[
x
^
t
−
1
∣
t
−
1
x
^
t
−
2
∣
t
−
1
⋮
x
^
t
−
N
+
1
∣
t
−
1
]
+
[
K
(
0
)
K
(
1
)
⋮
K
(
N
−
1
)
]
y
t
∣
t
−
1
{\displaystyle {\begin{bmatrix}{\hat {\mathbf {x} }}_{t\mid t}\\{\hat {\mathbf {x} }}_{t-1\mid t}\\\vdots \\{\hat {\mathbf {x} }}_{t-N+1\mid t}\\\end{bmatrix}}={\begin{bmatrix}\mathbf {I} \\0\\\vdots \\0\\\end{bmatrix}}{\hat {\mathbf {x} }}_{t\mid t-1}+{\begin{bmatrix}0&\ldots &0\\\mathbf {I} &0&\vdots \\\vdots &\ddots &\vdots \\0&\ldots &\mathbf {I} \\\end{bmatrix}}{\begin{bmatrix}{\hat {\mathbf {x} }}_{t-1\mid t-1}\\{\hat {\mathbf {x} }}_{t-2\mid t-1}\\\vdots \\{\hat {\mathbf {x} }}_{t-N+1\mid t-1}\\\end{bmatrix}}+{\begin{bmatrix}\mathbf {K} ^{(0)}\\\mathbf {K} ^{(1)}\\\vdots \\\mathbf {K} ^{(N-1)}\\\end{bmatrix}}\mathbf {y} _{t\mid t-1}}
どこ:
x
^
t
∣
t
−
1
{\displaystyle {\hat {\mathbf {x} }}_{t\mid t-1}}
標準的なカルマンフィルタによって推定されます。
y
t
∣
t
−
1
=
z
t
−
H
x
^
t
∣
t
−
1
{\displaystyle \mathbf {y} _{t\mid t-1}=\mathbf {z} _{t}-\mathbf {H} {\hat {\mathbf {x} }}_{t\mid t-1}}
標準カルマンフィルタの推定を考慮して生成されたイノベーションです。
さまざまなもの は 新しい変数です。つまり、標準のカルマンフィルタには表示されません。
x
^
t
−
i
∣
t
{\displaystyle {\hat {\mathbf {x} }}_{t-i\mid t}}
i
=
1
,
…
,
N
−
1
{\displaystyle i=1,\ldots ,N-1}
ゲインは次の方式で計算されます。
K
(
i
+
1
)
=
P
(
i
)
H
T
[
H
P
H
T
+
R
]
−
1
{\displaystyle \mathbf {K} ^{(i+1)}=\mathbf {P} ^{(i)}\mathbf {H} ^{\textsf {T}}\left[\mathbf {H} \mathbf {P} \mathbf {H} ^{\textsf {T}}+\mathbf {R} \right]^{-1}}
そして
P
(
i
)
=
P
[
(
F
−
K
H
)
T
]
i
{\displaystyle \mathbf {P} ^{(i)}=\mathbf {P} \left[\left(\mathbf {F} -\mathbf {K} \mathbf {H} \right)^{\textsf {T}}\right]^{i}}
ここで 、および は予測誤差共分散と標準カルマンフィルタのゲイン(すなわち、 )です。
P
{\displaystyle \mathbf {P} }
K
{\displaystyle \mathbf {K} }
P
t
∣
t
−
1
{\displaystyle \mathbf {P} _{t\mid t-1}}
推定誤差共分散が次のように定義される場合
P
i
:=
E
[
(
x
t
−
i
−
x
^
t
−
i
∣
t
)
∗
(
x
t
−
i
−
x
^
t
−
i
∣
t
)
∣
z
1
…
z
t
]
,
{\displaystyle \mathbf {P} _{i}:=E\left[\left(\mathbf {x} _{t-i}-{\hat {\mathbf {x} }}_{t-i\mid t}\right)^{*}\left(\mathbf {x} _{t-i}-{\hat {\mathbf {x} }}_{t-i\mid t}\right)\mid z_{1}\ldots z_{t}\right],}
の推定値の改善は次 のように表される。
x
t
−
i
{\displaystyle \mathbf {x} _{t-i}}
P
−
P
i
=
∑
j
=
0
i
[
P
(
j
)
H
T
(
H
P
H
T
+
R
)
−
1
H
(
P
(
i
)
)
T
]
{\displaystyle \mathbf {P} -\mathbf {P} _{i}=\sum _{j=0}^{i}\left[\mathbf {P} ^{(j)}\mathbf {H} ^{\textsf {T}}\left(\mathbf {H} \mathbf {P} \mathbf {H} ^{\textsf {T}}+\mathbf {R} \right)^{-1}\mathbf {H} \left(\mathbf {P} ^{(i)}\right)^{\textsf {T}}\right]}
固定間隔スムージング
最適な固定間隔スムージングは、 固定間隔から までの測定値を使用して ( ) の 最適な推定値を提供します 。これは「カルマン スムージング」とも呼ばれます。一般的に使用されるスムージング アルゴリズムはいくつかあります。
x
^
k
∣
n
{\displaystyle {\hat {\mathbf {x} }}_{k\mid n}}
k
<
n
{\displaystyle k<n}
z
1
{\displaystyle \mathbf {z} _{1}}
z
n
{\displaystyle \mathbf {z} _{n}}
ラウフ・トゥング・シュトリーベル
ラウフ・トゥング・ストリーベル(RTS)スムーザーは、固定間隔のスムージングのための効率的な2パスアルゴリズムです。 [58]
フォワードパスは、通常のカルマンフィルタアルゴリズムと同じです。これらの フィルタリングされた 事前および事後状態推定値 、 および共分散は 、 バックワードパス( 遡及 用)で使用するために保存されます。
x
^
k
∣
k
−
1
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1}}
x
^
k
∣
k
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k}}
P
k
∣
k
−
1
{\displaystyle \mathbf {P} _{k\mid k-1}}
P
k
∣
k
{\displaystyle \mathbf {P} _{k\mid k}}
後方パスでは、 平滑化された 状態推定値 と共分散を計算します 。最後の時間ステップから開始し、次の再帰方程式を使用して時間を遡っていきます。
x
^
k
∣
n
{\displaystyle {\hat {\mathbf {x} }}_{k\mid n}}
P
k
∣
n
{\displaystyle \mathbf {P} _{k\mid n}}
x
^
k
∣
n
=
x
^
k
∣
k
+
C
k
(
x
^
k
+
1
∣
n
−
x
^
k
+
1
∣
k
)
P
k
∣
n
=
P
k
∣
k
+
C
k
(
P
k
+
1
∣
n
−
P
k
+
1
∣
k
)
C
k
T
{\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k\mid n}&={\hat {\mathbf {x} }}_{k\mid k}+\mathbf {C} _{k}\left({\hat {\mathbf {x} }}_{k+1\mid n}-{\hat {\mathbf {x} }}_{k+1\mid k}\right)\\\mathbf {P} _{k\mid n}&=\mathbf {P} _{k\mid k}+\mathbf {C} _{k}\left(\mathbf {P} _{k+1\mid n}-\mathbf {P} _{k+1\mid k}\right)\mathbf {C} _{k}^{\textsf {T}}\end{aligned}}}
どこ
C
k
=
P
k
∣
k
F
k
+
1
T
P
k
+
1
∣
k
−
1
.
{\displaystyle \mathbf {C} _{k}=\mathbf {P} _{k\mid k}\mathbf {F} _{k+1}^{\textsf {T}}\mathbf {P} _{k+1\mid k}^{-1}.}
x
k
∣
k
{\displaystyle \mathbf {x} _{k\mid k}}
はタイムステップの事後状態推定値であり 、 はタイムステップの事前状態推定値です 。同じ表記が共分散にも適用されます。
k
{\displaystyle k}
x
k
+
1
∣
k
{\displaystyle \mathbf {x} _{k+1\mid k}}
k
+
1
{\displaystyle k+1}
修正ブライソン・フレイジャースムーザー
RTSアルゴリズムの代替として、ビアマンが開発した修正ブライソン・フレイジャー(MBF)固定間隔スムーザーがあります。 [47] これも、カルマンフィルタのフォワードパスから保存されたデータを処理するバックワードパスを使用します。バックワードパスの方程式には、各観測時間で使用されるデータの再帰計算が含まれており、平滑化された状態と共分散を計算します。
再帰方程式は
Λ
~
k
=
H
k
T
S
k
−
1
H
k
+
C
^
k
T
Λ
^
k
C
^
k
Λ
^
k
−
1
=
F
k
T
Λ
~
k
F
k
Λ
^
n
=
0
λ
~
k
=
−
H
k
T
S
k
−
1
y
k
+
C
^
k
T
λ
^
k
λ
^
k
−
1
=
F
k
T
λ
~
k
λ
^
n
=
0
{\displaystyle {\begin{aligned}{\tilde {\Lambda }}_{k}&=\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}\mathbf {H} _{k}+{\hat {\mathbf {C} }}_{k}^{\textsf {T}}{\hat {\Lambda }}_{k}{\hat {\mathbf {C} }}_{k}\\{\hat {\Lambda }}_{k-1}&=\mathbf {F} _{k}^{\textsf {T}}{\tilde {\Lambda }}_{k}\mathbf {F} _{k}\\{\hat {\Lambda }}_{n}&=0\\{\tilde {\lambda }}_{k}&=-\mathbf {H} _{k}^{\textsf {T}}\mathbf {S} _{k}^{-1}\mathbf {y} _{k}+{\hat {\mathbf {C} }}_{k}^{\textsf {T}}{\hat {\lambda }}_{k}\\{\hat {\lambda }}_{k-1}&=\mathbf {F} _{k}^{\textsf {T}}{\tilde {\lambda }}_{k}\\{\hat {\lambda }}_{n}&=0\end{aligned}}}
ここで、 は残差共分散、はである 。平滑化された状態と共分散は、次の式に代入することで求められる。
S
k
{\displaystyle \mathbf {S} _{k}}
C
^
k
=
I
−
K
k
H
k
{\displaystyle {\hat {\mathbf {C} }}_{k}=\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}}
P
k
∣
n
=
P
k
∣
k
−
P
k
∣
k
Λ
^
k
P
k
∣
k
x
k
∣
n
=
x
k
∣
k
−
P
k
∣
k
λ
^
k
{\displaystyle {\begin{aligned}\mathbf {P} _{k\mid n}&=\mathbf {P} _{k\mid k}-\mathbf {P} _{k\mid k}{\hat {\Lambda }}_{k}\mathbf {P} _{k\mid k}\\\mathbf {x} _{k\mid n}&=\mathbf {x} _{k\mid k}-\mathbf {P} _{k\mid k}{\hat {\lambda }}_{k}\end{aligned}}}
または
P
k
∣
n
=
P
k
∣
k
−
1
−
P
k
∣
k
−
1
Λ
~
k
P
k
∣
k
−
1
x
k
∣
n
=
x
k
∣
k
−
1
−
P
k
∣
k
−
1
λ
~
k
.
{\displaystyle {\begin{aligned}\mathbf {P} _{k\mid n}&=\mathbf {P} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}{\tilde {\Lambda }}_{k}\mathbf {P} _{k\mid k-1}\\\mathbf {x} _{k\mid n}&=\mathbf {x} _{k\mid k-1}-\mathbf {P} _{k\mid k-1}{\tilde {\lambda }}_{k}.\end{aligned}}}
MBF の重要な利点は、共分散行列の逆行列を求める必要がないことです。
最小分散スムージング
最小分散スムーザーは、モデルが線形であり、そのパラメータとノイズ統計が正確にわかっている場合、可能な限り最高の誤差性能を達成することができます。 [59]このスムーザーは、最適な非因果 ウィーナーフィルタ の時間変動状態空間一般化です 。
より滑らかな計算は2つのパスで行われます。フォワード計算は1ステップ先の予測子を必要とし、次のように表されます。
x
^
k
+
1
∣
k
=
(
F
k
−
K
k
H
k
)
x
^
k
∣
k
−
1
+
K
k
z
k
α
k
=
−
S
k
−
1
2
H
k
x
^
k
∣
k
−
1
+
S
k
−
1
2
z
k
{\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k+1\mid k}&=(\mathbf {F} _{k}-\mathbf {K} _{k}\mathbf {H} _{k}){\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\mathbf {z} _{k}\\\alpha _{k}&=-\mathbf {S} _{k}^{-{\frac {1}{2}}}\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {S} _{k}^{-{\frac {1}{2}}}\mathbf {z} _{k}\end{aligned}}}
上記のシステムは逆ウィーナーホップ因子として知られています。後方再帰は上記の前方システムの随伴です。後方パスの結果は、 前方方程式を時間反転したものに作用させ、その結果を時間反転させることで計算できます 。出力推定の場合、平滑化された推定値は次のように与えられます。
β
k
{\displaystyle \beta _{k}}
α
k
{\displaystyle \alpha _{k}}
y
^
k
∣
N
=
z
k
−
R
k
β
k
{\displaystyle {\hat {\mathbf {y} }}_{k\mid N}=\mathbf {z} _{k}-\mathbf {R} _{k}\beta _{k}}
この最小分散平滑化の因果部分を取ると、
y
^
k
∣
k
=
z
k
−
R
k
S
k
−
1
2
α
k
{\displaystyle {\hat {\mathbf {y} }}_{k\mid k}=\mathbf {z} _{k}-\mathbf {R} _{k}\mathbf {S} _{k}^{-{\frac {1}{2}}}\alpha _{k}}
これは最小分散カルマン フィルタと同じです。上記のソリューションは、出力推定誤差の分散を最小化します。Rauch–Tung–Striebel スムーザー導出では、基礎となる分布がガウス分布であると想定していますが、最小分散ソリューションではそうではないことに注意してください。状態推定と入力推定の最適なスムーザーも同様に構築できます。
上記のスムーザーの連続時間バージョンは [60] [61]で説明されている。
期待最大化アルゴリズムは、 最小分散フィルタとスムーザー内で未知の状態空間パラメータの近似 最大尤度 推定値を計算するために使用されることがある。多くの場合、問題の仮定には不確実性が残る。不確実性に対応するスムーザーは、リカッチ方程式に正定値項を追加することで設計できる。 [62]
モデルが非線形の場合、段階的な線形化は最小分散フィルターとより滑らかな再帰( 拡張カルマンフィルタリング )の範囲内で行われる可能性があります。
周波数加重カルマンフィルタ
異なる周波数における音の知覚に関する先駆的な研究は、1930 年代にフレッチャーとマンソンによって行われました。彼らの研究は、産業騒音と難聴の調査において測定された音のレベルを重み付けする標準的な方法につながりました。それ以来、周波数重み付けは、フィルターとコントローラーの設計において、対象帯域内でのパフォーマンスを管理するために使用されています。
通常、周波数成形関数は、指定された周波数帯域の誤差スペクトル密度の平均パワーを重み付けするために使用されます。 は 、従来のカルマン フィルタによって示される出力推定誤差を表します。また、 は 因果周波数重み付け伝達関数を表します。 の分散を最小化する最適解は、 を構築するだけで得られます 。
y
−
y
^
{\displaystyle \mathbf {y} -{\hat {\mathbf {y} }}}
W
{\displaystyle \mathbf {W} }
W
(
y
−
y
^
)
{\displaystyle \mathbf {W} \left(\mathbf {y} -{\hat {\mathbf {y} }}\right)}
W
−
1
y
^
{\displaystyle \mathbf {W} ^{-1}{\hat {\mathbf {y} }}}
の設計は 未解決の問題である。一つの方法は、推定誤差を生成するシステムを特定し、 そのシステムの逆数に等しい設定を行うことである。 [63] この手順は、フィルタ次数の増加を犠牲にして平均二乗誤差の改善を得るために反復することができる。同じ手法はスムージングにも適用できる。
W
{\displaystyle \mathbf {W} }
W
{\displaystyle \mathbf {W} }
非線形フィルタ
基本的なカルマン フィルタは線形仮定に限定されます。ただし、より複雑なシステムは 非線形 になる場合があります。非線形性は、プロセス モデルまたは観測モデルのいずれか、あるいはその両方に関連付けることができます。
非線形システム用のカルマンフィルタの最も一般的なバリエーションは、拡張カルマンフィルタと無香料カルマンフィルタです。どのフィルタを使用するかは、プロセスと観測モデルの非線形性指標によって異なります。 [64]
拡張カルマンフィルタ
拡張カルマン フィルタ (EKF) では、状態遷移モデルと観測モデルは状態の線形関数である必要はなく、非線形関数である場合があります。これらの関数は 微分可能な タイプです。
x
k
=
f
(
x
k
−
1
,
u
k
)
+
w
k
z
k
=
h
(
x
k
)
+
v
k
{\displaystyle {\begin{aligned}\mathbf {x} _{k}&=f(\mathbf {x} _{k-1},\mathbf {u} _{k})+\mathbf {w} _{k}\\\mathbf {z} _{k}&=h(\mathbf {x} _{k})+\mathbf {v} _{k}\end{aligned}}}
関数 f は 、以前の推定値から予測された状態を計算するために使用でき、同様に関数 h は、予測された状態から予測された測定値を計算するために使用できます。ただし、 f と h は 共分散に直接適用することはできません。代わりに、偏導関数の行列 ( ヤコビアン ) が計算されます。
各タイムステップで、ヤコビアンは現在予測された状態で評価されます。これらの行列は、カルマン フィルター方程式で使用できます。このプロセスは、基本的に現在の推定値を中心に非線形関数を線形化します。
無香料カルマンフィルター
状態遷移モデルと観測モデル、つまり予測関数と更新関数が高度に非線形である場合 、 拡張カルマンフィルタ のパフォーマンスは 特に低下する可能性があります。 [65] [66]これは、基礎となる非線形モデルの線形化を通じて共分散が伝播するためです。無香料カルマンフィルタ (UKF) [65] は、 無香料変換 (UT) と呼ばれる決定論的サンプリング手法を使用して 、平均値の周りのサンプルポイント (シグマポイントと呼ばれる) の最小セットを選択します。次に、シグマポイントは非線形関数を通じて伝播され、そこから新しい平均値と共分散の推定値が形成されます。結果として得られるフィルタは、UT の変換された統計量がどのように計算され、どのシグマポイントのセットが使用されるかによって異なります。一貫した方法で常に新しい UKF を構築できることに留意する必要があります。 [67] 特定のシステムでは、結果として得られる UKF は真の平均と共分散をより正確に推定します。 [68]これは モンテカルロサンプリング や事後統計の テイラー級数 展開 で検証できる 。さらに、この手法ではヤコビアンを明示的に計算する必要がなくなる。ヤコビアンを計算することは、複雑な関数の場合、それ自体が困難な作業(解析的に行う場合は複雑な導関数が必要、数値的に行う場合は計算コストがかかる)になる可能性があり、不可能になることもある(それらの関数が微分可能でない場合)。
f
{\displaystyle f}
h
{\displaystyle h}
シグマポイント
ランダム ベクトル の場合 、シグマ点は任意のベクトルの集合である。
x
=
(
x
1
,
…
,
x
L
)
{\displaystyle \mathbf {x} =(x_{1},\dots ,x_{L})}
{
s
0
,
…
,
s
N
}
=
{
(
s
0
,
1
s
0
,
2
…
s
0
,
L
)
,
…
,
(
s
N
,
1
s
N
,
2
…
s
N
,
L
)
}
{\displaystyle \{\mathbf {s} _{0},\dots ,\mathbf {s} _{N}\}={\bigl \{}{\begin{pmatrix}s_{0,1}&s_{0,2}&\ldots &s_{0,L}\end{pmatrix}},\dots ,{\begin{pmatrix}s_{N,1}&s_{N,2}&\ldots &s_{N,L}\end{pmatrix}}{\bigr \}}}
とされる
を満たす 一次重み
W
0
a
,
…
,
W
N
a
{\displaystyle W_{0}^{a},\dots ,W_{N}^{a}}
∑
j
=
0
N
W
j
a
=
1
{\displaystyle \sum _{j=0}^{N}W_{j}^{a}=1}
全員 :
i
=
1
,
…
,
L
{\displaystyle i=1,\dots ,L}
E
[
x
i
]
=
∑
j
=
0
N
W
j
a
s
j
,
i
{\displaystyle E[x_{i}]=\sum _{j=0}^{N}W_{j}^{a}s_{j,i}}
2次の重み を満たす
W
0
c
,
…
,
W
N
c
{\displaystyle W_{0}^{c},\dots ,W_{N}^{c}}
∑
j
=
0
N
W
j
c
=
1
{\displaystyle \sum _{j=0}^{N}W_{j}^{c}=1}
すべてのペアに対して 。
(
i
,
l
)
∈
{
1
,
…
,
L
}
2
:
E
[
x
i
x
l
]
=
∑
j
=
0
N
W
j
c
s
j
,
i
s
j
,
l
{\displaystyle (i,l)\in \{1,\dots ,L\}^{2}:E[x_{i}x_{l}]=\sum _{j=0}^{N}W_{j}^{c}s_{j,i}s_{j,l}}
UKFアルゴリズムにおける
シグマポイントと重みの簡単な選択は、
x
k
−
1
∣
k
−
1
{\displaystyle \mathbf {x} _{k-1\mid k-1}}
s
0
=
x
^
k
−
1
∣
k
−
1
−
1
<
W
0
a
=
W
0
c
<
1
s
j
=
x
^
k
−
1
∣
k
−
1
+
L
1
−
W
0
A
j
,
j
=
1
,
…
,
L
s
L
+
j
=
x
^
k
−
1
∣
k
−
1
−
L
1
−
W
0
A
j
,
j
=
1
,
…
,
L
W
j
a
=
W
j
c
=
1
−
W
0
2
L
,
j
=
1
,
…
,
2
L
{\displaystyle {\begin{aligned}\mathbf {s} _{0}&={\hat {\mathbf {x} }}_{k-1\mid k-1}\\-1&<W_{0}^{a}=W_{0}^{c}<1\\\mathbf {s} _{j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}+{\sqrt {\frac {L}{1-W_{0}}}}\mathbf {A} _{j},\quad j=1,\dots ,L\\\mathbf {s} _{L+j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}-{\sqrt {\frac {L}{1-W_{0}}}}\mathbf {A} _{j},\quad j=1,\dots ,L\\W_{j}^{a}&=W_{j}^{c}={\frac {1-W_{0}}{2L}},\quad j=1,\dots ,2L\end{aligned}}}
ここで は の平均推定値です 。ベクトル はの j 番目の列 で、 です 。通常、 は の コレスキー分解 によって得られます。注意すれば、フィルタ方程式は の中間計算なしに直接評価される ように表現できます。これは 平方根アンセンテッドカルマンフィルタ と呼ばれます 。 [69]
x
^
k
−
1
∣
k
−
1
{\displaystyle {\hat {\mathbf {x} }}_{k-1\mid k-1}}
x
k
−
1
∣
k
−
1
{\displaystyle \mathbf {x} _{k-1\mid k-1}}
A
j
{\displaystyle \mathbf {A} _{j}}
A
{\displaystyle \mathbf {A} }
P
k
−
1
∣
k
−
1
=
A
A
T
{\displaystyle \mathbf {P} _{k-1\mid k-1}=\mathbf {AA} ^{\textsf {T}}}
A
{\displaystyle \mathbf {A} }
P
k
−
1
∣
k
−
1
{\displaystyle \mathbf {P} _{k-1\mid k-1}}
A
{\displaystyle \mathbf {A} }
P
k
−
1
∣
k
−
1
{\displaystyle \mathbf {P} _{k-1\mid k-1}}
平均値の重みは 任意に選択できます。
W
0
{\displaystyle W_{0}}
もう一つの一般的なパラメータ化(上記を一般化する)は
s
0
=
x
^
k
−
1
∣
k
−
1
W
0
a
=
α
2
κ
−
L
α
2
κ
W
0
c
=
W
0
a
+
1
−
α
2
+
β
s
j
=
x
^
k
−
1
∣
k
−
1
+
α
κ
A
j
,
j
=
1
,
…
,
L
s
L
+
j
=
x
^
k
−
1
∣
k
−
1
−
α
κ
A
j
,
j
=
1
,
…
,
L
W
j
a
=
W
j
c
=
1
2
α
2
κ
,
j
=
1
,
…
,
2
L
.
{\displaystyle {\begin{aligned}\mathbf {s} _{0}&={\hat {\mathbf {x} }}_{k-1\mid k-1}\\W_{0}^{a}&={\frac {\alpha ^{2}\kappa -L}{\alpha ^{2}\kappa }}\\W_{0}^{c}&=W_{0}^{a}+1-\alpha ^{2}+\beta \\\mathbf {s} _{j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}+\alpha {\sqrt {\kappa }}\mathbf {A} _{j},\quad j=1,\dots ,L\\\mathbf {s} _{L+j}&={\hat {\mathbf {x} }}_{k-1\mid k-1}-\alpha {\sqrt {\kappa }}\mathbf {A} _{j},\quad j=1,\dots ,L\\W_{j}^{a}&=W_{j}^{c}={\frac {1}{2\alpha ^{2}\kappa }},\quad j=1,\dots ,2L.\end{aligned}}}
α
{\displaystyle \alpha }
および シグマポイントの広がりを制御します。 は の分布に関連しています。 、 およびのいずれか 1 つを 任意に選択できるという
意味で、これは過剰パラメータ化であることに注意してください。
κ
{\displaystyle \kappa }
β
{\displaystyle \beta }
x
{\displaystyle x}
α
{\displaystyle \alpha }
β
{\displaystyle \beta }
κ
{\displaystyle \kappa }
適切な値は問題によって異なりますが、一般的には 、、 が推奨されます 。 [70] の 真の分布が ガウス分布である場合、 が最適です。 [71]
α
=
1
{\displaystyle \alpha =1}
β
=
0
{\displaystyle \beta =0}
κ
≈
3
L
/
2
{\displaystyle \kappa \approx 3L/2}
x
{\displaystyle x}
β
=
2
{\displaystyle \beta =2}
予測する
EKF と同様に、UKF 予測は UKF 更新とは独立して使用することも、線形 (または EKF) 更新と組み合わせて使用することも、その逆も可能です。
平均と共分散の推定値、 およびが与えられると、 上のセクションで説明したようにシグマ ポイントが 得られます。シグマ ポイントは遷移関数 f を通じて伝播されます。
x
^
k
−
1
∣
k
−
1
{\displaystyle {\hat {\mathbf {x} }}_{k-1\mid k-1}}
P
k
−
1
∣
k
−
1
{\displaystyle \mathbf {P} _{k-1\mid k-1}}
N
=
2
L
+
1
{\displaystyle N=2L+1}
x
j
=
f
(
s
j
)
j
=
0
,
…
,
2
L
{\displaystyle \mathbf {x} _{j}=f\left(\mathbf {s} _{j}\right)\quad j=0,\dots ,2L}
。
伝播されたシグマ ポイントは重み付けされ、予測される平均と共分散が生成されます。
x
^
k
∣
k
−
1
=
∑
j
=
0
2
L
W
j
a
x
j
P
k
∣
k
−
1
=
∑
j
=
0
2
L
W
j
c
(
x
j
−
x
^
k
∣
k
−
1
)
(
x
j
−
x
^
k
∣
k
−
1
)
T
+
Q
k
{\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k\mid k-1}&=\sum _{j=0}^{2L}W_{j}^{a}\mathbf {x} _{j}\\\mathbf {P} _{k\mid k-1}&=\sum _{j=0}^{2L}W_{j}^{c}\left(\mathbf {x} _{j}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)\left(\mathbf {x} _{j}-{\hat {\mathbf {x} }}_{k\mid k-1}\right)^{\textsf {T}}+\mathbf {Q} _{k}\end{aligned}}}
ここで、 は元のシグマポイントの 1 次重み、 は 2 次重みです。行列は 遷移ノイズの共分散です 。
W
j
a
{\displaystyle W_{j}^{a}}
W
j
c
{\displaystyle W_{j}^{c}}
Q
k
{\displaystyle \mathbf {Q} _{k}}
w
k
{\displaystyle \mathbf {w} _{k}}
アップデート
予測推定値とが与えられる と、 対応する1次重み と2次重みを持つ新しい シグマポイント の集合 が計算される。 [72] これらのシグマポイントは測定関数を通じて変換される 。
x
^
k
∣
k
−
1
{\displaystyle {\hat {\mathbf {x} }}_{k\mid k-1}}
P
k
∣
k
−
1
{\displaystyle \mathbf {P} _{k\mid k-1}}
N
=
2
L
+
1
{\displaystyle N=2L+1}
s
0
,
…
,
s
2
L
{\displaystyle \mathbf {s} _{0},\dots ,\mathbf {s} _{2L}}
W
0
a
,
…
W
2
L
a
{\displaystyle W_{0}^{a},\dots W_{2L}^{a}}
W
0
c
,
…
,
W
2
L
c
{\displaystyle W_{0}^{c},\dots ,W_{2L}^{c}}
h
{\displaystyle h}
z
j
=
h
(
s
j
)
,
j
=
0
,
1
,
…
,
2
L
{\displaystyle \mathbf {z} _{j}=h(\mathbf {s} _{j}),\,\,j=0,1,\dots ,2L}
。
次に、変換されたポイントの経験的平均と共分散が計算されます。
z
^
=
∑
j
=
0
2
L
W
j
a
z
j
S
^
k
=
∑
j
=
0
2
L
W
j
c
(
z
j
−
z
^
)
(
z
j
−
z
^
)
T
+
R
k
{\displaystyle {\begin{aligned}{\hat {\mathbf {z} }}&=\sum _{j=0}^{2L}W_{j}^{a}\mathbf {z} _{j}\\[6pt]{\hat {\mathbf {S} }}_{k}&=\sum _{j=0}^{2L}W_{j}^{c}(\mathbf {z} _{j}-{\hat {\mathbf {z} }})(\mathbf {z} _{j}-{\hat {\mathbf {z} }})^{\textsf {T}}+\mathbf {R_{k}} \end{aligned}}}
ここで、 は観測ノイズの共分散行列である。 さらに、相互共分散行列も必要である。
R
k
{\displaystyle \mathbf {R} _{k}}
v
k
{\displaystyle \mathbf {v} _{k}}
C
x
z
=
∑
j
=
0
2
L
W
j
c
(
x
j
−
x
^
k
|
k
−
1
)
(
z
j
−
z
^
)
T
.
{\displaystyle {\begin{aligned}\mathbf {C_{xz}} &=\sum _{j=0}^{2L}W_{j}^{c}(\mathbf {x} _{j}-{\hat {\mathbf {x} }}_{k|k-1})(\mathbf {z} _{j}-{\hat {\mathbf {z} }})^{\textsf {T}}.\end{aligned}}}
カルマンゲインは
K
k
=
C
x
z
S
^
k
−
1
.
{\displaystyle {\begin{aligned}\mathbf {K} _{k}=\mathbf {C_{xz}} {\hat {\mathbf {S} }}_{k}^{-1}.\end{aligned}}}
更新された平均と共分散の推定値は
x
^
k
∣
k
=
x
^
k
|
k
−
1
+
K
k
(
z
k
−
z
^
)
P
k
∣
k
=
P
k
∣
k
−
1
−
K
k
S
^
k
K
k
T
.
{\displaystyle {\begin{aligned}{\hat {\mathbf {x} }}_{k\mid k}&={\hat {\mathbf {x} }}_{k|k-1}+\mathbf {K} _{k}(\mathbf {z} _{k}-{\hat {\mathbf {z} }})\\\mathbf {P} _{k\mid k}&=\mathbf {P} _{k\mid k-1}-\mathbf {K} _{k}{\hat {\mathbf {S} }}_{k}\mathbf {K} _{k}^{\textsf {T}}.\end{aligned}}}
識別カルマンフィルタ
観測モデルが 高度に非線形かつ非ガウス分布である場合、 ベイズの定理 を適用して推定
することが有利となる可能性がある。
p
(
z
k
∣
x
k
)
{\displaystyle p(\mathbf {z} _{k}\mid \mathbf {x} _{k})}
p
(
z
k
∣
x
k
)
≈
p
(
x
k
∣
z
k
)
p
(
x
k
)
{\displaystyle p(\mathbf {z} _{k}\mid \mathbf {x} _{k})\approx {\frac {p(\mathbf {x} _{k}\mid \mathbf {z} _{k})}{p(\mathbf {x} _{k})}}}
ここで、 非線形関数 です 。これは、標準カルマン フィルタの生成仕様を、 観測値が与えられた潜在状態の
識別モデルに置き換えます。
p
(
x
k
∣
z
k
)
≈
N
(
g
(
z
k
)
,
Q
(
z
k
)
)
{\displaystyle p(\mathbf {x} _{k}\mid \mathbf {z} _{k})\approx {\mathcal {N}}(g(\mathbf {z} _{k}),Q(\mathbf {z} _{k}))}
g
,
Q
{\displaystyle g,Q}
定常 状態モデル
では
p
(
x
1
)
=
N
(
0
,
T
)
,
p
(
x
k
∣
x
k
−
1
)
=
N
(
F
x
k
−
1
,
C
)
,
{\displaystyle {\begin{aligned}p(\mathbf {x} _{1})&={\mathcal {N}}(0,\mathbf {T} ),\\p(\mathbf {x} _{k}\mid \mathbf {x} _{k-1})&={\mathcal {N}}(\mathbf {F} \mathbf {x} _{k-1},\mathbf {C} ),\end{aligned}}}
ここで 、もし
T
=
F
T
F
⊺
+
C
{\displaystyle \mathbf {T} =\mathbf {F} \mathbf {T} \mathbf {F} ^{\intercal }+\mathbf {C} }
p
(
x
k
∣
z
1
:
k
)
≈
N
(
x
^
k
|
k
−
1
,
P
k
|
k
−
1
)
,
{\displaystyle p(\mathbf {x} _{k}\mid \mathbf {z} _{1:k})\approx {\mathcal {N}}({\hat {\mathbf {x} }}_{k|k-1},\mathbf {P} _{k|k-1}),}
新たな観察が与えられると 、次のようになる [73]。
z
k
{\displaystyle \mathbf {z} _{k}}
p
(
x
k
+
1
∣
z
1
:
k
+
1
)
≈
N
(
x
^
k
+
1
|
k
,
P
k
+
1
|
k
)
{\displaystyle p(\mathbf {x} _{k+1}\mid \mathbf {z} _{1:k+1})\approx {\mathcal {N}}({\hat {\mathbf {x} }}_{k+1|k},\mathbf {P} _{k+1|k})}
どこ
M
k
+
1
=
F
P
k
|
k
−
1
F
⊺
+
C
,
P
k
+
1
|
k
=
(
M
k
+
1
−
1
+
Q
(
z
k
)
−
1
−
T
−
1
)
−
1
,
x
^
k
+
1
|
k
=
P
k
+
1
|
k
(
M
k
+
1
−
1
F
x
^
k
|
k
−
1
+
P
k
+
1
|
k
−
1
g
(
z
k
)
)
.
{\displaystyle {\begin{aligned}\mathbf {M} _{k+1}&=\mathbf {F} \mathbf {P} _{k|k-1}\mathbf {F} ^{\intercal }+\mathbf {C} ,\\\mathbf {P} _{k+1|k}&=(\mathbf {M} _{k+1}^{-1}+Q(\mathbf {z} _{k})^{-1}-\mathbf {T} ^{-1})^{-1},\\{\hat {\mathbf {x} }}_{k+1|k}&=\mathbf {P} _{k+1|k}(\mathbf {M} _{k+1}^{-1}\mathbf {F} {\hat {\mathbf {x} }}_{k|k-1}+\mathbf {P} _{k+1|k}^{-1}g(\mathbf {z} _{k})).\end{aligned}}}
この近似は 正定値であることが必要であることに注意する。そうでない場合は、
Q
(
z
k
)
−
1
−
T
−
1
{\displaystyle Q(\mathbf {z} _{k})^{-1}-\mathbf {T} ^{-1}}
P
k
+
1
|
k
=
(
M
k
+
1
−
1
+
Q
(
z
k
)
−
1
)
−
1
{\displaystyle \mathbf {P} _{k+1|k}=(\mathbf {M} _{k+1}^{-1}+Q(\mathbf {z} _{k})^{-1})^{-1}}
代わりに使用される。このようなアプローチは、観測の次元が潜在状態の次元よりもはるかに大きい場合に特に有用であることが証明されており [74] 、観測モデルの非定常性に対して特に堅牢なフィルタを構築するために使用することができる。 [75]
適応カルマンフィルタ
適応カルマンフィルタは、プロセスモデルでモデル化されていないプロセスダイナミクスに適応することを可能にする 。これは、例えば、一定速度(低次元)カルマンフィルタが追跡に使用される場合の操縦ターゲットのコンテキストで発生する。 [76]
F
(
t
)
{\displaystyle \mathbf {F} (t)}
カルマン・ビューシーフィルタ
カルマン・ビューシーフィルタリング(リチャード・スノーデン・ビューシーにちなんで名付けられた)は、カルマンフィルタリングの連続時間バージョンである。 [77] [78]
これは状態空間モデルに基づいている
d
d
t
x
(
t
)
=
F
(
t
)
x
(
t
)
+
B
(
t
)
u
(
t
)
+
w
(
t
)
z
(
t
)
=
H
(
t
)
x
(
t
)
+
v
(
t
)
{\displaystyle {\begin{aligned}{\frac {d}{dt}}\mathbf {x} (t)&=\mathbf {F} (t)\mathbf {x} (t)+\mathbf {B} (t)\mathbf {u} (t)+\mathbf {w} (t)\\\mathbf {z} (t)&=\mathbf {H} (t)\mathbf {x} (t)+\mathbf {v} (t)\end{aligned}}}
ここで 、およびはそれぞれ2つのホワイトノイズ項 および の強度を表します 。
Q
(
t
)
{\displaystyle \mathbf {Q} (t)}
R
(
t
)
{\displaystyle \mathbf {R} (t)}
w
(
t
)
{\displaystyle \mathbf {w} (t)}
v
(
t
)
{\displaystyle \mathbf {v} (t)}
フィルターは、状態推定用と共分散用の 2 つの微分方程式で構成されます。
d
d
t
x
^
(
t
)
=
F
(
t
)
x
^
(
t
)
+
B
(
t
)
u
(
t
)
+
K
(
t
)
(
z
(
t
)
−
H
(
t
)
x
^
(
t
)
)
d
d
t
P
(
t
)
=
F
(
t
)
P
(
t
)
+
P
(
t
)
F
T
(
t
)
+
Q
(
t
)
−
K
(
t
)
R
(
t
)
K
T
(
t
)
{\displaystyle {\begin{aligned}{\frac {d}{dt}}{\hat {\mathbf {x} }}(t)&=\mathbf {F} (t){\hat {\mathbf {x} }}(t)+\mathbf {B} (t)\mathbf {u} (t)+\mathbf {K} (t)\left(\mathbf {z} (t)-\mathbf {H} (t){\hat {\mathbf {x} }}(t)\right)\\{\frac {d}{dt}}\mathbf {P} (t)&=\mathbf {F} (t)\mathbf {P} (t)+\mathbf {P} (t)\mathbf {F} ^{\textsf {T}}(t)+\mathbf {Q} (t)-\mathbf {K} (t)\mathbf {R} (t)\mathbf {K} ^{\textsf {T}}(t)\end{aligned}}}
ここでカルマンゲインは次のように与えられる。
K
(
t
)
=
P
(
t
)
H
T
(
t
)
R
−
1
(
t
)
{\displaystyle \mathbf {K} (t)=\mathbf {P} (t)\mathbf {H} ^{\textsf {T}}(t)\mathbf {R} ^{-1}(t)}
この式では 観測ノイズの共分散は 同時に予測誤差(または イノベーション )の共分散も表していることに注意する 。これらの共分散は連続時間の場合にのみ等しい。 [79]
K
(
t
)
{\displaystyle \mathbf {K} (t)}
R
(
t
)
{\displaystyle \mathbf {R} (t)}
y
~
(
t
)
=
z
(
t
)
−
H
(
t
)
x
^
(
t
)
{\displaystyle {\tilde {\mathbf {y} }}(t)=\mathbf {z} (t)-\mathbf {H} (t){\hat {\mathbf {x} }}(t)}
離散時間カルマンフィルタリングの予測ステップと更新ステップの区別は、連続時間では存在しません。
共分散に関する 2 番目の微分方程式は、リカッチ方程式 の例です 。カルマン-ビューシー フィルタの非線形一般化には、連続時間拡張カルマン フィルタが含まれます。
ハイブリッドカルマンフィルタ
ほとんどの物理システムは連続時間モデルとして表現されますが、離散時間測定はデジタルプロセッサを介して状態推定のために頻繁に行われます。したがって、システムモデルと測定モデルは次のように表されます。
x
˙
(
t
)
=
F
(
t
)
x
(
t
)
+
B
(
t
)
u
(
t
)
+
w
(
t
)
,
w
(
t
)
∼
N
(
0
,
Q
(
t
)
)
z
k
=
H
k
x
k
+
v
k
,
v
k
∼
N
(
0
,
R
k
)
{\displaystyle {\begin{aligned}{\dot {\mathbf {x} }}(t)&=\mathbf {F} (t)\mathbf {x} (t)+\mathbf {B} (t)\mathbf {u} (t)+\mathbf {w} (t),&\mathbf {w} (t)&\sim N\left(\mathbf {0} ,\mathbf {Q} (t)\right)\\\mathbf {z} _{k}&=\mathbf {H} _{k}\mathbf {x} _{k}+\mathbf {v} _{k},&\mathbf {v} _{k}&\sim N(\mathbf {0} ,\mathbf {R} _{k})\end{aligned}}}
どこ
x
k
=
x
(
t
k
)
{\displaystyle \mathbf {x} _{k}=\mathbf {x} (t_{k})}
。
初期化
x
^
0
∣
0
=
E
[
x
(
t
0
)
]
,
P
0
∣
0
=
Var
[
x
(
t
0
)
]
{\displaystyle {\hat {\mathbf {x} }}_{0\mid 0}=E\left[\mathbf {x} (t_{0})\right],\mathbf {P} _{0\mid 0}=\operatorname {Var} \left[\mathbf {x} \left(t_{0}\right)\right]}
予測する
x
^
˙
(
t
)
=
F
(
t
)
x
^
(
t
)
+
B
(
t
)
u
(
t
)
, with
x
^
(
t
k
−
1
)
=
x
^
k
−
1
∣
k
−
1
⇒
x
^
k
∣
k
−
1
=
x
^
(
t
k
)
P
˙
(
t
)
=
F
(
t
)
P
(
t
)
+
P
(
t
)
F
(
t
)
T
+
Q
(
t
)
, with
P
(
t
k
−
1
)
=
P
k
−
1
∣
k
−
1
⇒
P
k
∣
k
−
1
=
P
(
t
k
)
{\displaystyle {\begin{aligned}{\dot {\hat {\mathbf {x} }}}(t)&=\mathbf {F} (t){\hat {\mathbf {x} }}(t)+\mathbf {B} (t)\mathbf {u} (t){\text{, with }}{\hat {\mathbf {x} }}\left(t_{k-1}\right)={\hat {\mathbf {x} }}_{k-1\mid k-1}\\\Rightarrow {\hat {\mathbf {x} }}_{k\mid k-1}&={\hat {\mathbf {x} }}\left(t_{k}\right)\\{\dot {\mathbf {P} }}(t)&=\mathbf {F} (t)\mathbf {P} (t)+\mathbf {P} (t)\mathbf {F} (t)^{\textsf {T}}+\mathbf {Q} (t){\text{, with }}\mathbf {P} \left(t_{k-1}\right)=\mathbf {P} _{k-1\mid k-1}\\\Rightarrow \mathbf {P} _{k\mid k-1}&=\mathbf {P} \left(t_{k}\right)\end{aligned}}}
予測方程式は、測定値からの更新のない連続時間カルマンフィルタの方程式から導出されます。つまり、 予測された状態と共分散は、それぞれ、前のステップでの推定値に等しい初期値を持つ一連の微分方程式を解くことによって計算されます。
K
(
t
)
=
0
{\displaystyle \mathbf {K} (t)=0}
線形時間不変 システムの場合 、連続時間ダイナミクスは、 行列指数を 使用して離散時間システムに正確に 離散化 できます。
アップデート
K
k
=
P
k
∣
k
−
1
H
k
T
(
H
k
P
k
∣
k
−
1
H
k
T
+
R
k
)
−
1
x
^
k
∣
k
=
x
^
k
∣
k
−
1
+
K
k
(
z
k
−
H
k
x
^
k
∣
k
−
1
)
P
k
∣
k
=
(
I
−
K
k
H
k
)
P
k
∣
k
−
1
{\displaystyle {\begin{aligned}\mathbf {K} _{k}&=\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}\left(\mathbf {H} _{k}\mathbf {P} _{k\mid k-1}\mathbf {H} _{k}^{\textsf {T}}+\mathbf {R} _{k}\right)^{-1}\\{\hat {\mathbf {x} }}_{k\mid k}&={\hat {\mathbf {x} }}_{k\mid k-1}+\mathbf {K} _{k}\left(\mathbf {z} _{k}-\mathbf {H} _{k}{\hat {\mathbf {x} }}_{k\mid k-1}\right)\\\mathbf {P} _{k\mid k}&=\left(\mathbf {I} -\mathbf {K} _{k}\mathbf {H} _{k}\right)\mathbf {P} _{k\mid k-1}\end{aligned}}}
更新方程式は離散時間カルマン フィルタの方程式と同一です。
疎な信号の回復のための変種
従来のカルマンフィルタは、ノイズの多い観測からスパースな、おそらく動的な信号を回復するためにも使用されています。最近の研究 [80] [81] [82]では、制限された等長特性や関連する確率的回復の議論など、 圧縮センシング /サンプリングの理論の概念を利用して 、本質的に低次元のシステムにおけるスパース状態を順次推定しています。
ガウス過程との関係
線形ガウス状態空間モデルはガウス過程につながるため、カルマンフィルタは ガウス過程回帰 の逐次ソルバーとして見ることができる。 [83]
アプリケーション
参照
参考文献
^ Lacey, Tony. 「第 11 章 チュートリアル: カルマン フィルター」 (PDF) 。
^ ファウジ、ヒルマン;ウズマ州バツール(2019年7月15日)。 「単一ソリューションのシミュレートされたカルマン フィルター オプティマイザーを使用した 3 バー トラス設計」。 メカトロニカ 。 1 (2): 98-102。 土井 : 10.15282/mekatronika.v1i2.4991 。 S2CID 222355496。
^ ポール・ザーチャン、ハワード・ムソフ (2000)。カルマンフィルタリングの基礎:実践的アプローチ。アメリカ航空宇宙学会 。ISBN 978-1-56347-455-2 。
^ Lora-Millan, Julio S.; Hidalgo, Andres F.; Rocon, Eduardo (2021). 「ウェアラブルロボットデバイスの制御のための歩行下肢矢状方向運動学を推定するIMUベースの拡張カルマンフィルター」. IEEE Access . 9 : 144540–144554. Bibcode :2021IEEEA...9n4540L. doi : 10.1109/ACCESS.2021.3122160 . hdl : 10261/254265 . ISSN 2169-3536. S2CID 239938971.
^ Kalita, Diana; Lyakhov, Pavel (2022年12月). 「カルマンフィルタとメディアンフィルタリングの組み合わせに基づく移動物体検出」. ビッグデータと認知コンピューティング . 6 (4): 142. doi : 10.3390/bdcc6040142 . ISSN 2504-2289.
^ Ghysels, Eric; Marcellino, Massimiliano (2018). 時系列手法を用いた応用経済予測 。ニューヨーク、NY: Oxford University Press。p. 419。ISBN 978-0-19-062201-5 . OCLC 1010658777.
^ アッザム、M. アブドラ;ウズマ州バツール。ファウジ、ヒルマン(2019年7月15日)。 「単一解シミュレーション カルマン フィルター オプティマイザーを使用したらせんバネの設計」。 メカトロニカ 。 1 (2):93-97。 土井 : 10.15282/mekatronika.v1i2.4990 。 S2CID 221855079。
^ Wolpert, Daniel; Ghahramani, Zoubin (2000). 「運動神経科学の計算原理」 Nature Neuroscience . 3 : 1212–7. doi :10.1038/81497. PMID 11127840. S2CID 736756.
^ Kalman, RE (1960). 「線形フィルタリングと予測問題への新しいアプローチ」 Journal of Basic Engineering . 82 : 35–45. doi :10.1115/1.3662552. S2CID 1242324.
^ Humpherys, Jeffrey (2012). 「カルマンフィルタの新たな見方」 SIAM Review . 54 (4): 801–823. doi :10.1137/100799666.
^ Uhlmann, Jeffrey; Julier, Simon (2022). 「ガウス性とカルマンフィルタ:シンプルだが複雑な関係」 (PDF) . Journal de Ciencia e Ingeniería . 14 (1): 21–26. doi :10.46571/JCI.2022.1.2. S2CID 251143915. 文献におけるこの誤解の例が 12 件ほどあるので、Uhlmann と Julier を参照してください。
^ Li, Wangyan; Wang, Zidong; Wei, Guoliang; Ma, Lifeng; Hu, Jun; Ding, Derui (2015). 「センサーネットワークのマルチセンサー融合とコンセンサスフィルタリングに関する調査」。Discrete Dynamics in Nature and Society . 2015 : 1–12. doi : 10.1155/2015/683701 . ISSN 1026-0226.
^ Li, Wangyan; Wang, Zidong; Ho, Daniel WC; Wei, Guoliang (2019). 「カルマンコンセンサスフィルタリング問題における誤差共分散の有界性について」. IEEE Transactions on Automatic Control . 65 (6): 2654–2661. doi :10.1109/TAC.2019.2942826. ISSN 0018-9286. S2CID 204196474.
^ Lauritzen, S. L. (1981 年 12 月). 「1880 年の時系列分析 。TN Thiele の貢献についての考察」。International Statistical Review。49 (3): 319–331。doi :10.2307/1402616。JSTOR 1402616。彼は、回帰成分を推定し、ブラウン運動を予測するための再帰的手順を導出しました。この手順は現在 、カルマン フィルタリング として知ら れ ています。
^ Lauritzen, S. L. (2002). Thiele: 統計のパイオニア。ニューヨーク: Oxford University Press。p . 41。ISBN 978-0-19-850972-1 彼は回帰係数を推定し、ブラウン運動の値を最小二乗法で予測する問題を解決し、計算を実行するための洗練された再帰手順を提示しました。この手順は現在、カルマンフィルタリングとして知られて い ます 。
^ Grewal, Mohinder S.; Andrews, Angus P. (2015). "1". カルマンフィルタリング: MATLAB を使用した理論と実践 (第 4 版). ホーボーケン、ニュージャージー: Wiley. pp. 16–18. ISBN 978-1-118-98498-7 。
^ 「Mohinder S. Grewal and Angus P. Andrews」 (PDF) 。 2016年3月7日時点の オリジナル (PDF)よりアーカイブ。 2015年4月23日 閲覧 。
^ Jerrold H. Suddath、Robert H. Kidd、Arnold G. Reinhold (1967 年 8 月)。アポロ月着陸船の搭載型主要ナビゲーション システムの線形誤差分析、NASA TN D-4027 (PDF) 。アメリカ航空宇宙局。
^ Stratonovich, RL (1959). 一定のパラメータを持つ信号とノイズを分離する最適な非線形システム 。Radiofizika、2:6、pp.892–901。
^ Stratonovich, RL (1959). ランダム関数の最適非線形フィルタリングの理論について . 確率理論とその応用, 4, pp. 223–225.
^ Stratonovich, RL (1960) マルコフ過程理論の最適フィルタリングへの応用 無線工学および電子物理学、5:11、pp. 1–19。
^ Stratonovich, RL (1960). 条件付きマルコフ過程 . 確率理論とその応用, 5, pp. 156–178.
^ Stepanov, OA (2011 年 5 月 15 日). 「カルマンフィルタリング: 過去と現在。ロシアからの展望。(ルドルフ・エミール・カルマン生誕 80 周年を記念して)」. ジャイロスコピーとナビゲーション . 2 (2): 105. Bibcode :2011GyNav...2...99S. doi :10.1134/S2075108711020076. S2CID 53120402.
^ Gaylor, David; Lightsey, E. Glenn (2003). 「国際宇宙ステーションの近傍で動作する宇宙船の GPS/INS カルマン フィルタ設計」 AIAA ガイダンス、ナビゲーション、および制御会議および展示会 . doi :10.2514/6.2003-5445. ISBN 978-1-62410-090-1 。
^ Ingvar Strid、Karl Walentin (2009 年 4 月)。「大規模 DSGE モデル の ためのブロック カルマン フィルタリング」。Computational Economics。33 ( 3): 277–304。CiteSeerX 10.1.1.232.3790。doi : 10.1007 /s10614-008-9160-4。hdl :10419/ 81929。S2CID 3042206 。
^ Martin Møller Andreasen (2008)。「非線形 DSGE モデル、中心差分カルマン フィルタ、および平均シフト粒子フィルタ」。
^ Roweis, S; Ghahramani, Z (1999). 「線形ガウスモデルの統一レビュー」 (PDF) . Neural Computation . 11 (2): 305–45. doi :10.1162/089976699300016674. PMID 9950734. S2CID 2590898.
^ Hamilton, J. (1994)、 時系列分析 、プリンストン大学出版局。第 13 章「カルマン フィルタ」
^ Ishihara, JY; Terra, MH; Campos, JCT (2006). 「ディスクリプタシステムのためのロバストなカルマンフィルタ」. IEEE Transactions on Automatic Control . 51 (8): 1354. doi :10.1109/TAC.2006.878741. S2CID 12741796.
^ Terra, Marco H.; Cerri, Joao P.; Ishihara, Joao Y. (2014). 「不確実性を伴うシステムのための最適ロバスト線形二次レギュレータ」. IEEE Transactions on Automatic Control . 59 (9): 2586–2591. doi :10.1109/TAC.2014.2309282. S2CID 8810105.
^ Kelly, Alonzo (1994). 「自律走行車用ナビゲーション カルマン フィルタの 3D 状態空間定式化」 (PDF) 。DTIC ドキュメント : 13。2014 年 12 月 30 日のオリジナルからアーカイブ (PDF) 。 2006 修正版 2017-01-10 に Wayback Machineにアーカイブされました
^ Reid, Ian; Term, Hilary. 「Estimation II」 (PDF) . www.robots.ox.ac.uk . Oxford University . 2014年 8月6日 閲覧 。
^ Rajamani, Murali (2007年10月). モデル予測制御における状態推定を改善するためのデータに基づく手法 (PDF) (博士論文). ウィスコンシン大学マディソン校. 2016年3月4日時点のオリジナル (PDF)からアーカイブ。 2011年4月4日 閲覧 。
^ Rajamani, Murali R.; Rawlings, James B. (2009). 「半正定値計画法と最適重み付けを用いたデータからの擾乱構造の推定」. Automatica . 45 (1): 142–148. doi :10.1016/j.automatica.2008.05.032. S2CID 5699674.
^ 「Autocovariance Least-Squares Toolbox」 Jbrwww.che.wisc.edu . 2021年8月18日 閲覧 。
^ Bania, P.; Baranowski, J. (2016 年 12 月 12 日)。フィールド カルマン フィルタとその近似。IEEE 第 55 回意思決定および制御会議 (CDC)。米国ネバダ州ラスベガス: IEEE。pp. 2875–2880。
^ ab Greenberg, Ido; Yannay, Netanel; Mannor, Shie (2023-12-15). 「最適化かアーキテクチャか: カルマンフィルタリングをハックする方法」. ニューラル情報処理システムの進歩 . 36 : 50482–50505. arXiv : 2310.00675 .
^ Bar-Shalom, Yaakov; Li, X.-Rong; Kirubarajan, Thiagalingam (2001). 追跡とナビゲーションへの応用を伴う推定 。米国ニューヨーク: John Wiley & Sons, Inc. pp. 319 ff. doi :10.1002/0471221279. ISBN 0-471-41655-X 。
^ 数値例による 3 つの最適性テストについては、 Peter, Matisko (2012)「最適性テストと適応型カルマン フィルタ」に記載されています。 第 16 回 IFAC システム識別シンポジウム 。第 45 巻。pp. 1523–1528。doi : 10.3182 /20120711-3-BE- 2027.00011。ISBN 978-3-902823-06-9 。
^ Spall, James C. (1995). 「未知のノイズ分布を持つカルマンフィルタの誤差解析のためのカントロビッチ不等式」. Automatica . 31 (10): 1513–1517. doi :10.1016/0005-1098(95)00069-9.
^ Maryak, JL; Spall, JC; Heydon, BD (2004). 「未知のノイズ分布を持つ状態空間モデルでの推論におけるカルマンフィルタの使用」 IEEE Transactions on Automatic Control . 49 : 87–90. doi :10.1109/TAC.2003.821415. S2CID 21143516.
^ ab Walrand, Jean; Dimakis, Antonis (2006年8月). Random processes in Systems -- Lecture Notes (PDF) . pp. 69–70. 2019年5月7日時点の オリジナル (PDF)からアーカイブ。 2019年5月7日 閲覧 。
^ サント、ドナルド T.「時間変動パラメータモデルに適用された一般化最小二乗法」経済社会測定年報、第 6 巻、第 3 号。NBER、1977 年。301-314。オンライン PDF
^ アンダーソン、ブライアン・DO; ムーア、ジョン・B. (1979)。 最適フィルタリング 。ニューヨーク: プレンティス・ホール 。pp . 129–133。ISBN 978-0-13-638122-8 。
^ Jingyang Lu. 「マルチセンサーシステムにおける動的状態推定に対する偽情報注入攻撃」、Fusion 2014
^ ab Thornton, Catherine L. (1976 年 10 月 15 日). カルマンフィルタリングのための三角共分散因数分解 (PhD). NASA . NASA 技術メモ 33-798.
^ abc Bierman, GJ (1977). 「離散逐次推定のための因数分解法」. 離散逐次推定のための因数分解法 . Bibcode :1977fmds.book.....B.
^ ab Bar-Shalom, Yaakov; Li, X. Rong; Kirubarajan, Thiagalingam (2001 年 7 月)。 追跡とナビゲーションへの応用を伴う推定 。ニューヨーク: John Wiley & Sons。pp. 308–317。ISBN 978-0-471-41655-5 。
^ Golub, Gene H.; Van Loan, Charles F. (1996). 行列計算 . ジョンズホプキンス数学科学研究 (第3版). メリーランド州ボルチモア: ジョンズホプキンス大学 . p. 139. ISBN 978-0-8018-5414-9 。
^ Higham, Nicholas J. (2002). 数値アルゴリズムの精度と安定性 (第 2 版). フィラデルフィア、ペンシルバニア州: Society for Industrial and Applied Mathematics . p. 680. ISBN 978-0-89871-521-7 。
^ Särkkä, S.; Ángel F. García-Fernández (2021). 「ベイズスムーザーの時間的並列化」. IEEE Transactions on Automatic Control . 66 (1): 299–306. arXiv : 1905.13002 . doi :10.1109/TAC.2020.2976316. S2CID 213695560.
^ 「CUDA による並列プレフィックス合計 (スキャン)」。 developer.nvidia.com/。2020 年 2 月 21 日 閲覧 。 スキャン操作は、幅広い用途に使用できるシンプルで強力な並列プリミティブです。この章では、CUDA を使用したスキャンの効率的な実装について説明しました。これにより、高速 CPU でのシーケンシャル実装や、同じ GPU での OpenGL の並列実装と比較して、大幅な高速化が実現します。GPU などのコモディティ並列プロセッサの性能が向上しているため、今後数年間でスキャンなどのデータ並列アルゴリズムの重要性が高まると予想されます。
^ Masreliez, C. Johan; Martin, RD (1977). 「線形モデルの堅牢なベイズ推定とカルマンフィルタの堅牢化」. IEEE Transactions on Automatic Control . 22 (3): 361–371. doi :10.1109/TAC.1977.1101538.
^ Lütkepohl, Helmut (1991). 多重時系列分析入門 . ハイデルベルク: Springer-Verlag Berlin. p. 435.
^ フレドリック・グスタフソン (2018). 統計センサーフュージョン (第 3 版)。ルンド: 学生文学者。 160–162ページ。 ISBN 978-91-44-12724-8 。
^ ab Gabriel T. Terejanu (2012-08-04). 「離散カルマンフィルタチュートリアル」 (PDF) 。2020-08-17に オリジナル (PDF)からアーカイブ 。2016-04-13 に取得 。
^ アンダーソン、ブライアン・DO; ムーア、ジョン・B. (1979)。 最適フィルタリング 。ニュージャージー州エングルウッドクリフス:プレンティスホール社。pp. 176–190。ISBN 978-0-13-638122-8 。
^ Rauch, HE; Tung, F.; Striebel , CT (1965 年 8 月)。「線形動的システムの最大尤度推定」。AIAA ジャーナル 。3 ( 8): 1445–1450。Bibcode :1965AIAAJ...3.1445R。doi : 10.2514/3.3166。
^ Einicke, GA (2006 年 3 月)。「最適で堅牢な非因果的フィルタ定式化」。IEEE Transactions on Signal Processing。54 ( 3): 1069–1077。Bibcode : 2006ITSP ...54.1069E。doi : 10.1109 /TSP.2005.863042。S2CID 15376718 。
^ Einicke, GA (2007 年 4 月)。「最小分散固定間隔スムーザーの漸近最適性」。IEEE Transactions on Signal Processing。55 ( 4): 1543–1547。Bibcode : 2007ITSP ...55.1543E。doi : 10.1109 /TSP.2006.889402。S2CID 16218530 。
^ Einicke, GA; Ralston, JC; Hargrave, CO; Reid, DC; Hainsworth, DW (2008 年 12 月)。「長壁採掘自動化。最小分散スムージングのアプリケーション」 IEEE Control Systems Magazine。28 ( 6): 28–37。doi :10.1109/ MCS.2008.929281。S2CID 36072082 。
^ Einicke, GA (2009 年 12 月)。「最小分散固定間隔スムーザーの漸近最適性」。IEEE Transactions on Automatic Control。54 ( 12): 2904–2908。Bibcode : 2007ITSP ...55.1543E。doi : 10.1109 /TSP.2006.889402。S2CID 16218530。
^ Einicke, GA (2014 年 12 月). 「反復周波数加重フィルタリングおよびスムージング手順」. IEEE 信号処理レター . 21 (12): 1467–1470. Bibcode :2014ISPL...21.1467E. doi :10.1109/LSP.2014.2341641. S2CID 13569109.
^ Biswas, Sanat K.; Qiao, Li; Dempster, Andrew G. (2020-12-01). 「非線形アプリケーションでのアンセンテッドカルマンフィルタの使用の適合性を予測する定量化されたアプローチ」. Automatica . 122 :109241 . doi :10.1016/j.automatica.2020.109241. ISSN 0005-1098. S2CID 225028760.
^ ab Julier, Simon J.; Uhlmann, Jeffrey K. (2004). 「無香料フィルタリングと非線形推定」. Proceedings of the IEEE . 92 (3): 401–422. doi :10.1109/JPROC.2003.823141. S2CID 9614092.
^ Julier, Simon J.; Uhlmann, Jeffrey K. (1997). 「非線形システムへのカルマンフィルタの新しい拡張」 (PDF) 。Kadar , Ivan (編) 著。 信号処理、センサーフュージョン、ターゲット認識 VI 。SPIE の議事録。第 3 巻。pp. 182–193。Bibcode : 1997SPIE.3068..182J。CiteSeerX 10.1.1.5.2891 。doi : 10.1117/12.280797。S2CID 7937456 。2008 年 5 月 3 日 閲覧。
^ メネガズ、HMT;石原、JY。ジョージア州ボルヘス。アナ州バルガス(2015 年 10 月)。 「無香料カルマンフィルター理論の体系化」。 自動制御に関する IEEE トランザクション 。 60 (10): 2583–2598。 土井 :10.1109/tac.2015.2404511。 hdl : 20.500.11824/251 。 ISSN 0018-9286。 S2CID 12606055。
^ Gustafsson, Fredrik; Hendeby, Gustaf (2012). 「拡張カルマンフィルタと無香料カルマンフィルタの関係」. IEEE Transactions on Signal Processing . 60 (2): 545–555. Bibcode :2012ITSP...60..545G. doi :10.1109/tsp.2011.2172431. S2CID 17876531.
^ Van der Merwe, R.; Wan, EA (2001). 「状態およびパラメータ推定のための平方根無香料カルマンフィルタ」 2001 IEEE 国際音響、音声、信号処理会議。議事録 (カタログ番号 01CH37221) 。 第 6 巻。pp. 3461–3464。doi :10.1109 / ICASSP.2001.940586。ISBN 0-7803-7041-4 . S2CID 7290857。
^ Bitzer, S. (2016). 「UKF の実態: 仕組み、機能するタイミング、そしてサンプリングしたほうがよいタイミング」 doi :10.5281/zenodo.44386.
^ Wan, EA; Van Der Merwe, R. (2000). 「非線形推定のための無香料カルマンフィルタ」 (PDF) . IEEE 2000 信号処理、通信、制御のための適応型システムシンポジウムの議事録 (カタログ番号 00EX373) . p. 153. CiteSeerX 10.1.1.361.9373 . doi :10.1109/ASSPCC.2000.882463. ISBN 978-0-7803-5800-3 . S2CID 13992571. 2012年3月3日に オリジナル (PDF)からアーカイブ 。 2010年1月31日 に取得。
^ Sarkka, Simo (2007 年 9 月)。「連続時間非線形システムの状態推定のためのアンセンテッド カルマン フィルタリングについて」。IEEE Transactions on Automatic Control 。52 (9): 1631–1641。doi :10.1109/TAC.2007.904453。
^ ab Burkhart, Michael C.; Brandman, David M.; Franco, Brian; Hochberg, Leigh; Harrison, Matthew T. (2020). 「非線形および非ガウス観測モデルによるベイズフィルタリングのための識別カルマンフィルタ」。 ニューラル コンピューテ ィング 。32 ( 5 ): 969–1017。doi :10.1162/neco_a_01275。PMC 8259355。PMID 32187000。S2CID 212748230。 2021 年3 月 26日 閲覧 。
^ ab Burkhart, Michael C. (2019). ベイジアンフィルタリングへの識別的アプローチと人間の神経デコーディングへの応用 (論文). プロビデンス、ロードアイランド州、米国: ブラウン大学. doi :10.26300/nhfp-xv22.
^ ab Brandman, David M.; Burkhart, Michael C.; Kelemen, Jessica; Franco, Brian; Harrison, Matthew T.; Hochberg, Leigh R. (2018). 「ガウス過程回帰を用いた四肢麻痺患者のカーソルの堅牢な閉ループ制御」。Neural Computation。30 ( 11 ) : 2986–3008。doi :10.1162/neco_a_01129。PMC 6685768。PMID 30216140。 2021 年 3月 26 日 閲覧 。
^ Bar-Shalom, Yaakov; Li, X.-Rong; Kirubarajan, Thiagalingam (2001). 追跡とナビゲーションへの応用を伴う推定 。ニューヨーク、米国: John Wiley & Sons, Inc. pp. 421 ff. doi :10.1002/0471221279. ISBN 0-471-41655-X 。
^ Bucy, RS および Joseph, PD, 確率過程のフィルタリングとガイダンスへの応用、 John Wiley & Sons、1968 年; 第 2 版、AMS Chelsea Publ.、2005 年 。ISBN 0-8218-3782-6
^ ジャズウィンスキー、アンドリュー H.、 確率過程とフィルタリング理論、 アカデミック プレス、ニューヨーク、1970 年 。ISBN 0-12-381550-9
^ Kailath, T. (1968). 「最小二乗推定への革新的なアプローチ - パート I: 加法性ホワイトノイズにおける線形フィルタリング」. IEEE Transactions on Automatic Control . 13 (6): 646–655. doi :10.1109/TAC.1968.1099025.
^ Vaswani, Namrata (2008). 「カルマンフィルタ圧縮センシング」 2008 第 15 回 IEEE 国際画像処理会議 pp. 893–896. arXiv : 0804.0819 . doi :10.1109/ICIP.2008.4711899. ISBN 978-1-4244-1765-0 . S2CID 9282476。
^ Carmi, Avishy; Gurfil, Pini; Kanevsky, Dimitri (2010). 「埋め込み疑似測定ノルムと準ノルムを使用したカルマンフィルタリングによるスパース信号回復法」. IEEE Transactions on Signal Processing . 58 (4): 2405–2409. Bibcode :2010ITSP...58.2405C. doi :10.1109/TSP.2009.2038959. S2CID 10569233.
^ Zachariah, Dave; Chatterjee, Saikat; Jansson, Magnus (2012). 「Dynamic Iterative Pursuit」. IEEE Transactions on Signal Processing . 60 (9): 4967–4972. arXiv : 1206.2496 . Bibcode :2012ITSP...60.4967Z. doi :10.1109/TSP.2012.2203813. S2CID 18467024.
^ サルッカ、シモ;ハルティカイネン、ジョウニ。スヴェンソン、レナート。サンドブロム、フレドリック (2015-04-22)。 「ガウス過程求積法とシグマポイント法の関係について」。 arXiv : 1504.05994 [stat.ME]。
^ Vasebi, Amir; Partovibakhsh, Maral; Bathaee, S. Mohammad Taghi (2007). 「ハイブリッド電気自動車アプリケーション向け拡張カルマンフィルタに基づく鉛蓄電池の充電状態推定のための新しい複合バッテリモデル」 Journal of Power Sources . 174 (1): 30–40. Bibcode :2007JPS...174...30V. doi :10.1016/j.jpowsour.2007.04.011.
^ Vasebi, A.; Bathaee, SMT; Partovibakhsh, M. (2008). 「拡張カルマンフィルタによるハイブリッド電気自動車用鉛蓄電池の充電状態の予測」. エネルギー変換と管理 . 49 (1): 75–82. Bibcode :2008ECM....49...75V. doi :10.1016/j.enconman.2007.05.017.
^ Fruhwirth, R. (1987). 「トラックと頂点のフィッティングへのカルマンフィルタリングの適用」. 核物理学研究セクションAにおける計測と方法 . 262 (2–3): 444–450. Bibcode :1987NIMPA.262..444F. doi :10.1016/0168-9002(87)90887-4.
^ Harvey, Andrew C. (1994)。「計量経済学におけるカルマンフィルタの応用」。Bewley , Truman (編)。 計量経済学の進歩 。ニューヨーク: Cambridge University Press。285 ページ以降 。ISBN 978-0-521-46726-1 。
^ Boulfelfel, D.; Rangayyan, RM; Hahn, LJ; Kloiber, R.; Kuduvalli, GR (1994). 「カルマンフィルタを使用した単一光子放出コンピュータ断層撮影画像の2次元復元」. IEEE Transactions on Medical Imaging . 13 (1): 102–109. doi :10.1109/42.276148. PMID 18218487.
^ Bock, Y.; Crowell, B.; Webb, F.; Kedar, S.; Clayton, R.; Miyahara, B. (2008). 「高レート GPS と地震データの融合: 地質災害軽減のための早期警報システムへの応用」 AGU 秋季会議要旨 . 43 : G43B–01. Bibcode :2008AGUFM.G43B..01B.
^ Wolpert, DM; Miall, RC (1996). 「生理学的運動制御のためのフォワードモデル」. ニューラルネットワーク . 9 (8): 1265–1279. doi :10.1016/S0893-6080(96)00035-4. PMID 12662535.
さらに読む
Einicke, GA (2019)。 スムージング、フィルタリング、予測:過去、現在、未来の推定(第2版) 。Amazon Prime Publishing。ISBN 978-0-6485115-0-2 。
Jinya Su、Baibing Li、Wen-Hua Chen (2015)。「部分的に観測され た入力を持つカルマンフィルタの存在、最適性、漸近安定性について」。Automatica。53 : 149–154。doi : 10.1016 / j.automatica.2014.12.044 。
ゲルブ、A. (1974)。 応用最適推定 。MIT プレス。
Kalman, RE (1960). 「線形フィルタリングと予測問題への新しいアプローチ」 (PDF) . Journal of Basic Engineering . 82 (1): 35–45. doi :10.1115/1.3662552. S2CID 1242324. 2008-05-29 に オリジナル (PDF)からアーカイブ 。2008-05-03 に取得 。
Kalman, RE; Bucy, RS (1961). 「線形フィルタリングと予測理論における新しい結果」. Journal of Basic Engineering . 83 : 95–108. CiteSeerX 10.1.1.361.6851 . doi :10.1115/1.3658902. S2CID 8141345.
ハーヴェイ、AC(1990)。予測、構造時系列モデル、カルマンフィルタ。ケンブリッジ大学出版局 。ISBN 978-0-521-40573-7 。
Roweis, S.; Ghahramani, Z. (1999). 「線形ガウスモデルの統一レビュー」 (PDF) . ニューラルコンピューティング . 11 (2): 305–345. doi :10.1162/089976699300016674. PMID 9950734. S2CID 2590898.
Simon, D. (2006). 最適状態推定: カルマン、H 無限大、および非線形アプローチ。Wiley-Interscience。2010-12-30 にオリジナルからアーカイブ。2006-07-05 に 取得 。
Warwick, K. (1987). 「ARMA モデルの最適オブザーバー」 International Journal of Control . 46 (5): 1493–1503. doi :10.1080/00207178708933989.
Bierman, GJ (1977)。 離散逐次推定のための因数分解法 。第 128 巻。ニューヨーク州ミネオラ: Dover Publications。ISBN 978-0-486-44981-4 。
Bozic, SM (1994). デジタルフィルタリングとカルマンフィルタリング . Butterworth–Heinemann.
Haykin, S. (2002). 適応フィルタ理論 . Prentice Hall.
Liu, W.; Principe, JC および Haykin, S. (2010)。 カーネル適応フィルタリング: 包括的な入門 。John Wiley。 {{cite book}}: CS1 maint: multiple names: authors list (link)
Manolakis, DG (1999). 統計的および適応型信号処理 . Artech House.
ウェルチ、グレッグ、ビショップ、ゲイリー (1997)。「SCAAT: 不完全な情報による増分トラッキング」 (PDF) 。SIGGRAPH '97 コンピュータグラフィックスとインタラクティブ技術に関する第 24 回年次会議の議事録 。ACM Press/Addison-Wesley Publishing Co. pp. 333–344。doi : 10.1145 / 258734.258876。ISBN 978-0-89791-896-1 . S2CID 1512754。
Jazwinski, Andrew H. (1970)。 確率過程とフィルタリング 。科学と工学における数学。ニューヨーク: Academic Press。p . 376。ISBN 978-0-12-381550-7 。
Maybeck, Peter S. (1979)。「第 1 章」 (PDF) 。 確率モデル、推定、制御。科学と工学における数学 。 第 141 巻から第 141 巻。ニューヨーク: Academic Press。ISBN 978-0-12-480701-3 。
守屋 暢 (2011)。 カルマンフィルタリング入門:物理学者の視点 。ニューヨーク: Nova Science Publishers、Inc. ISBN 978-1-61668-311-5 。
Dunik, J.; Simandl M.; Straka O. (2009)。「状態および測定ノイズ共分散行列の推定方法: 側面と比較」。 第 15 回 IFAC システム識別シンポジウム、2009 年 。フランス。pp. 372–377。doi :10.3182/20090706-3-FR- 2004.00061。ISBN 978-3-902661-47-0 。 {{cite book}}: CS1 maint: location missing publisher (link)
Chui, Charles K.; Chen, Guanrong (2009)。 リアルタイムアプリケーションでのカルマンフィルタリング 。Springer Series in Information Sciences。第 17 巻 (第 4 版)。ニューヨーク: Springer。p . 229。ISBN 978-3-540-87848-3 。
Spivey, Ben; Hedengren , JD および Edgar, TF (2010)。「工業プロセス汚れの制約付き非線形推定」。Industrial & Engineering Chemistry Research。49 ( 17): 7824–7831。doi :10.1021/ie9018116。 {{cite journal}}: CS1 maint: multiple names: authors list (link)
Thomas Kailath 、 Ali H. Sayed 、 Babak Hassibi (2000)。 線形推定 。NJ: Prentice– Hall。ISBN 978-0-13-022464-4 。
Ali H. Sayed (2008). 適応フィルタ . NJ: Wiley. ISBN 978-0-470-25388-5 。
外部リンク
線形フィルタリングと予測問題への新しいアプローチ、RE カルマン著、1960 年
Python でのカルマン フィルターとベイジアン フィルター。オープンソースのカルマン フィルタリングの教科書。
カルマンフィルタの仕組みを写真で解説。カルマンフィルタを写真と色でわかりやすく解説します。
カルマン・ビューシー・フィルタ、カルマン・ビューシー・フィルタの派生
YouTube のカルマン フィルタに関する MIT ビデオ講義
Javascript のカルマン フィルター。Node.js および Web ブラウザー用のオープン ソース カルマン フィルター ライブラリ。
カルマンフィルタ入門 2021-02-24に Wayback Machine でアーカイブ、SIGGRAPH 2001コース、Greg WelchとGary Bishop
カルマンフィルタのウェブページ(多数のリンクあり)
カルマン フィルタを簡単に説明、方程式を使ったカルマン フィルタのステップバイステップのチュートリアル
「気象モデルで使用されるカルマンフィルタ」 (PDF) 。SIAM News。36 ( 8)。2003年10月。2011年 5 月17日時点の オリジナル (PDF)からアーカイブ。 2007年1月27日 閲覧 。
Haseltine, Eric L.; Rawlings, James B. (2005). 「拡張カルマンフィルタリングと移動ホライズン推定の批判的評価」. Industrial & Engineering Chemistry Research . 44 (8): 2451. doi :10.1021/ie034308l.
Gerald J. Bierman の推定サブルーチン ライブラリ: 1977 年に Academic Press によって最初に出版された研究モノグラフ「Factorization Methods for Discrete Sequential Estimation」のコードに対応しています。Dover によって再出版されました。
Gerald J. Bierman の推定サブルーチン ライブラリの一部を実装する Matlab Toolbox: UD / UDU' および LD / LDL' 因数分解と、関連する時間と測定の更新によりカルマン フィルターを構成します。
同時位置推定とマッピングに適用されたカルマン フィルタリングの Matlab ツールボックス: 1D、2D、3D で移動する車両
再生カーネルヒルベルト空間におけるカルマン フィルターの包括的な紹介。
カルマン フィルターを使用して Cox–Ingersoll–Ross 金利モデルを推定する Matlab コード。Wayback Machine に 2014-02-09 にアーカイブされています。これは、1999 年に Review of Quantitative Finance and Accounting で公開された論文「カルマン フィルターによる指数アフィン期間構造モデルの推定とテスト」に対応しています。
カルマン フィルターのオンライン デモ。双子実験を使用したカルマン フィルター (およびその他のデータ同化方法) のデモンストレーション。
kalman-filter.com。さまざまなドメインにおけるカルマン フィルターの使用に関する洞察。
Botella, Guillermo; Martín h., José Antonio; Santos, Matilde; Meyer-Baese, Uwe (2011). 「低レベルおよび中レベルビジョンを統合した FPGA ベースのマルチモーダル組み込みセンサーシステム」. センサー . 11 (12): 1251–1259. Bibcode :2011Senso..11.8164B. doi : 10.3390/s110808164 . PMC 3231703. PMID 22164069 .
MATLAB でカルマン フィルタを使用する例と方法 フィルタリングと推定に関するチュートリアル
フィルタリング(推定)を 1 時間、10 分、1 分、1 文で説明する (Yu-Chi Ho 著)
Simo Särkkä (2013)。「ベイジアンフィルタリングとスムージング」。 ケンブリッジ大学出版局。 全文は著者のウェブページ https://users.aalto.fi/~ssarkka/ でご覧いただけます。