加重SVD問題?


12

2つの行列とBが与えられた場合、 min ∑ i j(A i j − x i y j B i j)2のようなベクトルxとyを見つけたいと思います。 行列形式では、Iは、のフロベニウスノルム最小化しようとしているA - DIAG(X )⋅ B ⋅ DIAG(Y )= A - B ∘ (XがYを⊤ABxy

min∑ij(Aij−xiyjBij)2.
。A−diag(x)⋅B⋅diag(y)=A−B∘(xy⊤)

一般に、min ∑ i j(A i j − n ∑ k = 1 s i x (k ) i y (k ) j B i j)の形式で 複数の単位ベクトルおよびyを見つけたい2。 ここで、は正の実係数です。xy

min∑ij(Aij−∑k=1nsixi(k)yj(k)Bij)2.
si

これは、場合の特異値分解(SVD)と同等です。(B)ij=1

誰もこの問題が何と呼ばれているのか知っていますか?このような問題を解決するためのSVDのような有名なアルゴリズムはありますか?

(math.SEから移行)


これは一般化SVDだと思います。ウィキペディアのエントリはあまり詳細ではないため、おそらくリンクされたソースを確認する必要があります。特に、このGoogleブックスのリンクの 466ページが役立つ場合があります。
— エリー

1
私には、これは一般化されたSVDのようには見えません。特に、Bは必ずしも対角線または対称ではないため、各またはは合計で何度も現れる可能性があります。yxy
— ビクター

一般化SVDでは、Bは対角線である必要も対称である必要もありません。私が提供したリンクの両方は、AとBがそれぞれM行N列とP行N列の次元の一般的な複素数値行列になることを示しています。
— エリー

@EMSの提案に感謝します。接続を詳しく説明していただければ幸いです。
— Memming

回答:


8

これは、一般化されたSVDとはほど遠いものです。

Bが正行列の場合、私のパッケージBIRSVD http://www.mat.univie.ac.at/~neum/software/birsvd/を使用でき ます

http://www.mat.univie.ac.at/~neum/software/birsvd/svd_incomplete_data.pdfで その方法を説明している論文には、文献検索を検討する可能性のある参考文献も記載されています。


ああ、問題を重み付き低ランク近似に変換します!どうもありがとう!
— Memming

||C−∑sixiyi⊤||W2||C||W=||C∘W||F∘

はい。これにより、問題の名前がわかりやすくなります。それを解決する方法は別の問題です。これは標準的な問題ではなく、高速で信頼性の高いアルゴリズムを見つけるのは非常に困難でした。
— アーノルドノイマイアー

@ArnoldNeumaierこれは素晴らしいです、ありがとう。あなたのコードでライセンスと著作権表示を取得することは可能でしょうか?現在はプロプライエタリなソフトウェアです。GPLv3または互換性のある環境でリリースすると、GNU Octaveの線形代数パッケージに移行する可能性があります。
— JuanPi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.