部分空間への正射影後のデータ行列のSVD


8

いくつかの行列 SVDを知ることができるとしましょう:X = U S V TX

X=USVT

直交行列がある場合(つまり、Aは正方であり、正規直交列がある場合)、X Aの SVD はAAXA

ここで、 W = A T Vです。

XA=USWT
W=ATV

しかし、Bに正規直交列があるが必ずしも正方形ではない場合、のSVDについて何か言えるでしょうか。言い換えれば、X BのSVD がX B = D E F Tである場合、行列D、E、またはFは、XおよびBの SVDに関して記述できますか?XBBXBXB=DEFTDEFXB


更新: @whuberは、Bが正方形になるまで正規直交列を追加することで、を直交に拡張できることを示唆しています。この直交行列コール〜Bを。BBB~

B~=[B;B⊥]

Iは、のSVD知るあるU S (〜B T V )T(上記参照します)。しかし、今、私は私がのSVD書き込むことができる方法があるかどうかを確認するために苦労してるX BをのSVDの面でX 〜Bは。XB~US(B~TV)TXBXB~


たとえば、のSVDはそうではありません。これは、Bが正方形であることがわかっている場合に得られるものです。これは、B T Vが正方行列ではないためです。これは、SVDに当てはまる必要があります。B T Vには正規直交列がまだあります。XB=US(BTV)TBBTVBTV
— mobeets

3
は、追加の正規直交列を直交行列に隣接させることで延長できます(たとえば、グラムシュミットプロセスを使用)。これにより、質問を最初のケースに減らすことができます。B
— whuber

1
@whuberさん、ありがとうございます。そう言うの直交化バージョンであるB。SVD知ってますX Bを"私のSVDについて何か教えX Bを?B′BXB′XB
— mobeets

それを書き出すと、関係がいかにシンプルで明確であるかがわかります。
— whuber

@whuber私はそれを完全に見ることができません...これが私が試したものです:。次に、X B ′ = [ X B ; X B ⊥ ] = U S (B ' T V )T = U S ([ B T B T ⊥ ] V )T = U S [ B T V B TB′=[B;B⊥]。XB′=[XB;XB⊥]=US(B′TV)T=US([BTB⊥T]V)T=US[BTVB⊥TV]T
— mobeets

回答:


3

SVD では、Xはn × p行列、Vは直交するp × p行列です。X=USV′Xn×pVp×p

仮定直交するP × Qが、である:行列B ' B = 1 、Q。しましょうBp×qB′B=1q

(1)SV′B=TDW′

SVDである。したがって、定義により、Tはp × q行列、Dは次元qの対角行列、Wは直交q × q行列です。SV′BTp×qDqWq×q

計算する

(2)XB=(USV′)B=U(SV′B)=U(TDW′)=(UT)D(W′).

(UT)′(UT)=T′(U′U)T=T′T=1qUTDW′DWq×q(2)XB(1)XB


1
XBSV′BXXBB

3

BXBX=USVT

XBBB~=[B;B⊥]kB⊥B~X=USVTXXB~=US(B~TV)TXB~

XBXB~kY=DEFTY′=D′E′F′TY′kYY=XB~Y′=XB

この問題は「SVDのダウンデート」と呼ばれ、一般に、これを行うための多くのアプローチがあるようです。一つの関連するアプローチが発見され、ここで、そしてより多くの議論こちら。

XBX


1
+1。私はあなたが問題を正しく識別していると思います:「簡単な」方法はありません。単純なおもちゃの例を考えると、かなり直感的です。たとえば、対角線方向に伸びた2Dデータクラウドです。2つの元の特異ベクトルは対角です。データ行列に正方直交行列を乗算すると、雲全体が回転するだけなので、特異ベクトルは回転まで同じままです。しかし、データクラウドをたとえば水平線(1Dサブスペース)に投影すると、その形状が完全に変化します。現在、唯一の特異ベクトルは水平です。新しい特異ベクトルは古いものとは無関係です。
— amoeba

これは、違いについての直感的な説明です。最初は、直交行列に対してこのような単純な関係が存在する可能性があることをかなり気が動転していましたが、その行列の1つの列だけを削除すると、もうそうではなくなりました。しかし、今ではすべてが理にかなっています。ありがとう!
— mobeets

同意する。私が最初にあなたの投稿を読んだとき、私は考えました:なんて素朴な質問でしょう!:-)明らかに、特異ベクトルを回転させ(whuberが書いているように、回転行列になるように「拡張された」行列を使用して)、それらの一部(「拡張された」部分に対応する)をドロップする必要があります。しかし、これはもちろん間違っています。
— amoeba 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.