タグ付けされた質問 「matrix-factorization」

10
SVDの堅牢なアルゴリズム
行列のSVDを計算するための簡単なアルゴリズムは何ですか?2×22×22 \times 2 理想的には、数値的に堅牢なアルゴリズムが欲しいのですが、単純な実装とそれほど単純ではない実装の両方を見てみたいと思います。Cコードが受け入れられました。 論文やコードへの参照はありますか?

4
密行列が低ランクかどうかを迅速に判断する
私が取り組んでいるソフトウェアプロジェクトでは、特定の計算は、高密度の低ランクマトリックスに対して非常に簡単です。いくつかの問題の例には、高密度の低ランクマトリックスが含まれていますが、それらは要因としてではなく、完全に与えられているので、低ランク構造を利用したい場合は、ランクをチェックしてマトリックスを分解する必要があります。 問題のマトリックスは通常、完全にまたはほぼ完全に高密度で、nは100から数千までの範囲です。行列のランクが低い場合(5〜10未満など)、SVDを計算し、それを使用して低ランクの因数分解を行うことは労力に値します。ただし、マトリックスのランクが低い場合、労力は無駄になります。 したがって、完全なSVD分解を行うための労力を投資する前に、ランクが低いかどうかを判断するための高速で合理的に信頼できる方法を見つけたいと思います。ランクがカットオフを超えていることが明らかになった場合、プロセスはすぐに停止できます。手順が誤って低ランクであるとマトリックスを宣言した場合、これは大きな問題ではありません。低ランクを確認して低ランクの因数分解を見つけるために完全なSVDを実行しているからです。 私が検討したオプションには、LU分解またはQR分解を示すランクの後にチェックとして完全なSVDが含まれます。他に考慮すべきアプローチはありますか?

1
高速で、後方安定(左)
非常に少数の退化したケース(&lt; 0.1 %)で、多くの3×33×33\times3行列逆行列(ニュートン反復極分解の場合)を計算する必要があります。&lt;0.1%&lt;0.1%<0.1\% 明示的な逆行列(行列のマイナーを行列式で割ったもの)は機能しているようで、約32〜40の融合フロップです(行列式の逆数の計算方法によって異なります)。detスケールファクターを考慮しない場合、18のフューズフロップのみです(9つの要素はそれぞれab-cd、2のフューズフロップの形式です)。 質問: 18(任意のスケール)未満または32(1の逆数を考慮した適切なスケール)の融合フロップを使用して逆を計算する方法はあり3×33×33\times 3ますか? 3×33×33\times 3行列の逆安定左逆行列を計算するための経済的な方法(〜50 fフロップを使用)はありますか? 単精度のフロート(iOSゲーム)を使用しています。後方安定性は私にとって興味深い新しい概念であり、実験してみたいと思います。ここだ記事の考えを引き起こしました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.