カルマンフィルターのプロセスノイズを調整する良い方法は何ですか?


17

ほとんどの場合、カルマンフィルターのノイズマトリックスの調整は、試行錯誤またはドメインの知識によって行われます。すべてのカルマンフィルターパラメーターを調整するためのより原則的な方法はありますか?

回答:


10

実験データを取得し、統計分析を実行して、プロセスノイズ(タイムステップ間のノイズ)およびセンサーノイズ(グランドトゥルースと比較)を決定できます。

センサーノイズのグランドトゥルースを取得するには、より正確なセンサーが必要です。または、対象の状態を既知の(通常は固定された)値に保ちながら実験的にテストします。

実験データがない場合は、各センサーのデータシートまたは仕様を使用して、そのノイズを特定できます。この場合、プロセスノイズはより困難になりますが、アクチュエータがプロセスノイズの主な原因である場合、アクチュエータなどに起因する一定量のノイズを想定することで、その値を推測できる場合があります。


別の方法は、推定に許容される最大整定時間を考慮することです。これにより、プロセスノイズとセンサーノイズの比率が決まります。これにより、整定時間の要件を満たしながら、最大限のフィルタリング効果を得ることができます。

これは、異なるセンサー間、または異なる状態間の比率を調整する良い方法を提供しないため、完全ではないことに注意してください。


基本的に、実験データがある場合、最適なパフォーマンスを得ることができます。そうでない場合は、プロセスノイズの主な原因となる可能性のあるノイズを想定するか、必要な最小パフォーマンスを決定する(最適ではありませんが、少なくとも必要なものを取得する)だけで、プロセスノイズを計算できます。


1

機械学習の分野では、潜在変数モデルの推論アルゴリズムとしてカルマンフィルターを検討します。測定値は表示されますが、実際の状態は隠されています。ここで、真の状態を推測する必要があります。

いつものように、この方法は一連のパラメーターに依存しており、原則として、パラメーターの最適なポイント推定値を取得する方法は、データ(パラメーターが与えられた場合)の尤度を調べ、取得するパラメーターを最適化することです最大値。これにより、最尤推定値が得られます。

残念なことに、カルマンフィルターの場合、このアプローチは閉じた形で行うのはそれほど簡単で扱いにくいものではありません。これは、隠れた状態を観察しないためです。したがって、いくつかのトリックを適用する必要があります。その1つは、反復アプローチである期待値最大化(EM)アルゴリズムを使用することです。最初のステップでは、現在のパラメーターの下で隠れ状態の最も可能性の高い値(期待値)を計算します。2番目のステップでは、非表示の状態を固定し、パラメーターを最適化して、最も可能性の高い解を取得します。これらの手順は、収束するまで繰り返されます。

機械学習に関する多くのテキストブックで、EMの一般的な概念を読むことができます(1つの例のみ:David Barberによる「Bayesian Reasoning and Machine Learning」)。線形動的システムのパラメーターを推定するプロセス(カルマンフィルタータイプのモデルを提供します)は、Zoubin GhahramaniとGeoffrey Hintonによる技術レポートで詳しく説明されています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.