50x50マトリックスの最大固有値を見つけるためのSVD —かなりの時間を無駄にしていますか?


13

すべての特異値分解を実行することにより、多くの実対称50x50行列の最大固有値を計算するプログラムがあります。SVDはプログラムのボトルネックです。

最大の固有値を見つけるのにはるかに速いアルゴリズムがありますか、またはこの部分を最適化しても投資収益率があまり高くないでしょうか?


マトリックスについて、たとえば構造、固有値の範囲、相互の類似性について何かわかっている場合、さらに情報を提供できますか?
ペドロ

これは共分散行列()です。テストでは、5個ほどの固有値を除くすべての固有値がゼロに近く、最大の固有値が2番目に大きい固有値より少なくとも20%以上大きいことが示されています。ゼロに近い固有値がたくさんあるので、範囲は重要ではないと思いますか?任意の範囲に再スケーリングできます。現在使用しているスケールは、150〜200の範囲です。XXT
アンナ

また、マトリックスは非常に特異ではないため、SVD問題は適切に条件付けられています。
アンナ

以来対称かつ正である(半)明確なあなたの代わりにSVDのコレスキー分解を使用することができます。コレスキー分解は、SVDよりも計算に要するフロップの数がはるかに少なくなりますが、正確な方法であるため、O n 3フロップが必要です。XXTO(n3)
ケン

@アンナ:ここで提案されている多くのアプローチのいずれかを試しましたか?あなたにとって実際に最も効果的なものを知りたいと思います
ペドロ

回答:


12

最大固有値に必要な精度に応じて、Power Iterationを使用してみてください。

特定の例では、明示的に形成しない限り、各反復でx X X T x を計算します。Aの計算にはOn 3演算が必要ですが、マトリックスとベクトルの積にはOn 2しか必要ありません。A=XXTバツバツバツTバツAOn3On2

収束率は、最大の2つの固有値の分離に依存するため、これはすべての場合に適したソリューションではない可能性があります。


1
。最大の固有値は、次の20%よりも大きい場合、べき乗法を使用すると、すべての13回の反復のための一桁を取得するように、(他のすべての固有値は、各反復で5/6倍に減衰を受けるかなり急速に収束しなければならない
ヴォルフガングBangerth

2
Krylov部分空間法は、同じ反復回数の累乗反復からのベクトルを含むため、厳密に累乗法よりも優れています。
ジャックポールソン

1
@JackPoulson:はい、しかし、各反復は計算するのにより高価です...このような小さな問題にとって本当に価値があるでしょうか?
ペドロ

@Pedro:もちろん、matvecsには2次の作業が必要であり、Rayleighの商固有値解法とそれに続く展開は、比較すると簡単です。
ジャックポールソン

1
コード費用?@JackPoulsonが問題を解決したので、B。Parlett et al(1982)(「Lanczosアルゴリズムによる最大固有値の推定について」)は、電力法、電力法+ Aitken加速、および実数の最大固有値をターゲットとするLanczosの適用を比較します対称(またはエルミート)pos。def。マトリックス。ランチョス法は、(2番目に比べて最初の固有値の)適度な精度が必要な場合により効率的であり、ミスコンバージェンスの回避に優れていると結論付けています。
ハードマス

5

5つの固有値のみが非常に重要である場合、行列ベクトル乗算としてを使用するLanczsosアルゴリズムは、5つの初期ステップの後に高速線形収束を提供する必要があります。バツバツTバツ


あなたは(@ArnoldNeumaier)このようなことを考えていますか、適切に単純化されています()?同じクリロフ部分空間上で3番目のベクトルが保持される場合、ランチョスとは異なる近似が得られるのは興味深いことです。B=T=I
ハードマス

番号; 私は標準のLanczsosアルゴリズムを意味していましたが、急いで書かれたCGを持っていました。修正されました。
アーノルドノイマイアー

4

ような正の半正定行列の場合、スペクトルシフトを使用収束を加速する価値があります。すなわち、適切なスカラμが選択され、電源方法が印加されるA - μ Iの代わりにAA=XXTμAμIA

基本的なべき乗法のいくつかの反復により、大まかな見積もりが得られます最大固有値のλ 1。支配的な固有値が多数1を有し、他のすべてがであると仮定すると[ 0 5||Ax||/||x||λ1次に、A-5[0,56λ1]最大の固有値だろう7A512λ1Iとで残り[-5712λ1[512λ1,512λ1]

つまり、最大の固有値の優位性を、次の最大の固有値の20%から次の最大の固有値の40%に増やします。それに応じて、累乗法の幾何学的収束が加速します。最大固有値一度、十分な精度で発見されたλ 1は、バックシフト加えることによって推定されるμ連れ去られていました。AμIλ1μ

AμI(AμI)x=X(XTx)μxO(n2)


これには、2番目に大きい固有値の大きさをよく理解する必要があります。そのような場合、どのように近似しますか?
ペドロ

λ1|λ2|/|λ1|(手元の半確定的な場合に不要な絶対値で投げる)。次に、観測された収束率を使用して推定することができます|λ2|/|λ1|、したがってサイズ λ2 に関連して λ1必要に応じて。アンナが質問の下のコメントで説明しているような場合に、あなたがどのような利益を得るかを提案していました。
ハードマス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.