カルマンフィルターのスパース行列の実装?


8

カルマンフィルターベースのモデリングコードを使用して、ほぼリアルタイムの地域電離層マッピングアプリケーション用に開発しました。このコードは、カルマンフィルターを使用して、さまざまなセンサーからのデータを(基本関数のセットで記述された)マップに同化します。

私はこれをより大きな領域とより多くのセンサーに拡大しようとしていますが、カルマンフィルターの行列代数部分は、関与する大きな行列(数千の行/列)のために非常に遅くなります。ランタイムの問題を攻撃する最善の方法は、これらの行列が通常、総要素の80%以上が非常にスパースであるという事実を使用することだと思います。これは、各センサーにマップ係数と一緒に推定されるバイアスパラメーターがあるためです。これは、カルマンHマトリックスのそのセンサーの列に1として表示され、他のすべてのセンサーおよびマップ係数の列には0が表示されます。数百のセンサーがあり、それぞれが各エポックで8〜10の観測値を提供しているため、多くのゼロがあります。

スパースアルゴリズム、特に乗算と反転*を使用してカルマンフィルターのコンポーネントを実装することを検討することもできますが、マトリックスがまばら?アンサンブルカルマンフィルターなどを使用できることはわかっていますが、可能であれば、純粋な線形カルマンフィルターの最適性を維持したいと思います。総データ量は禁止されていません。線形モデルから生じる大きなスパース行列だけです。

実装に関しては、これはIDLで行われますが、コア行列代数は、外部の最適化されたLAライブラリ(具体的にはATLAS)の呼び出しを介して行われます。

*最適なカルマンフィルターの実装では反転が回避され、代わりにUD分解が使用されます。私はこのようなものを実装することを検討しているので、それが答えになるかもしれませんが、マトリックスのスパース性を考慮してより良い解決策があるかどうかを探しています。


1
問題を説明するために最小限の数学を含めれば、この質問の方が良いと思います。ここの多くの人々は線形代数に精通していますが、基礎となるカルマンフィルタリングプロセスには精通していません。H行列(それが何であれ)を記述し、それを含む方程式を解こうとすると、より良い答えが得られます。
Bill Barth

あなたはおそらく正しいです。ただし、カルマンフィルタリングスキームは、それ自体が大きなトピックです。カルマンフィルターがどのように機能するかを私の質問とその答えから考案することを誰かに尋ねるのは多すぎるでしょう。これは研究論文レベルの作業です(とにかくそう思います)。質問に答える立場にある人は誰でも、追加の詳細は必要ないと思います。
ボグダノヴィスト

回答:


7

スパース行列では、行列はスパースですが、は密であることがよくあります。このような場合、コレスキー分解または分解はスパースになる可能性が高くなります(特に、行/列がスパースパターンを改善するために並べ替えられている場合)。を含むシステムを解くために反復アルゴリズムを使用する場合は、明示的に計算ではなく、行列の因数分解を使用する方がよいでしょう。 1LU1

計算ではなく、特にカルマンフィルタリングの場合

Sk=HkPk1kHkT+Rk1

通常、因数分解で作業するほうがよいでしょう。以来対称で正定である必要があり、あなたはコレスキー分解または使用することができこれを行うには因数分解を。あなたはあなたのことを私たちに言った行列はまばらであるが、あなたは私たちかどうかについては何も語らなかったまばらであるか、そうでない構造を、そしてもちろん非常に密である可能性があります。 Sk1SkLDLTHkRkP

Ensembleカルマンフィルター(EnKF)とさまざまな粒子フィルター手法が非常に人気がある理由の1つは、非常に大きな状態ベクトルを持つシステムでは、従来のカルマンフィルターが非常に困難になるためです。En_Kは、が対角またはほぼ対角の場合、非常に大きな状態ベクトルに対して効率的に実装できます。これらの質問は、データ同化の分野で働いている人々によって非常に深く扱われてきたので、これらの問題への対処方法について読むことからあなたの研究を始めることをお勧めします。 Rk


もし私があなただったら、この問題についてEnKFを調べ始めました。
ブライアンボーチャーズ2013

2

アンサンブルカルマン(および通常のカルマン)フィルター用の堅牢なアルゴリズムがあります。直交行列に基づいており、平方根またはUDアルゴリズムに関連しているため、スパース行列および並列計算に適しています。

論文を送っていただけませんか

Thomas、SJ、J。HackerおよびJ. Anderson、(2009): アンサンブルカルマンフィルターの堅牢な定式化 Quart J. Royal Met。Soc、vol 135、507-521、

(出版社からのPDFは無料です。)


2
こんにちは、スティーブン。scicompにご参加いただきありがとうございます。質問はかなり一般的だったので、具体的な答えを出すのは不可能です。ただし、他の訪問者の利益を考慮して、アルゴリズムの実際の動作に関する詳細情報を提供し、安定したリンクを提供することもできます。ドイを介して、参照してください。
2013年

ここに要約を投稿するだけでも、Stack Exchange標準へのリンクを「説明」する良い方法になります。
dmckee ---元モデレーターの子猫2013

Janに同意する一方で、KFを扱うEE(私のように!)は通常、気象に関する出版物を読みません。紙が悪名高い微妙な問題への回答として推奨されているという事実は、私がそれを追い出すのに十分な動機です。
ダミアン

アンサンブルカルマンフィルター(EnKF)は、線形回帰理論のコンテキストで解釈できます。フィルター方程式は、2次汎関数を最小化する重み付き最小二乗推定の正規方程式と同等です。正規方程式の解法は数値的に信頼できず、問題が悪条件の場合に大きなエラーが発生しやすくなります。代替汎関数の最小化に基づいて、数値的に信頼できる効率的なアルゴリズムが提示されます。この方法は直交回転に依存し、高度に平行であり、分析の更新を計算するために行列を「二乗」しません。
スティーブントーマス

0

昔、私は、大きなセットに含まれるデータの処理を扱う次元削減に取り組む機会がありました。その背後にある基本的な考え方は、ほとんどの情報を計算できるように、データをいくつかのステップで処理して方向付けることです。

マトリックスに対してもかなりうまく機能し、主に使用されます。最良の部分は、すでに利用可能な標準ライブラリがあるので、プログラムする必要さえないということです。MatlabやMathematicaなどの主要な数学ツールも、この機能を直接サポートしています

これを実現する2つの主要なアルゴリズムがあります-主成分分析と特異値分解です。

これらのアルゴリズムが実際に達成するのは、読み取りに大きな影響を与えるデータを見つけることです。インターネットはこれらのアルゴリズムに関する情報でいっぱいです。これは、Apacheがどのように実行しているかを示します。


-1

しばらくディスカッションに追加しなかったことをお詫びします-しかし、私は論文の要約を投稿して喜んでいます-しかし、計算がEnKFアプローチの標準KFとは異なる方法で構成されている理由にも喜んで入ります


抽象的である:
スティーブン・トーマス

これはコメントであるという意味ですか、それとも他の回答に対する編集ですか?
Jed Brown
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.