SVD einer Datenmatrix nach einer orthogonalen Projektion in einen Unterraum


8

Angenommen, ich kann die SVD einer Matrix :X = U S V T.X

X=USVT

Wenn ich eine orthogonale Matrix haben ( das heißt, ist quadratisch und orthonormal Spalten), dann wird der SVD von istA X A.AAXA

XA=USWT
wobei .W=ATV

Aber kann etwas über die SVD von gesagt werden, wenn orthonormale Säulen hat, aber nicht unbedingt quadratisch ist? Mit anderen Worten, wenn der SVD von ist kann die Matrizen , oder in Bezug auf die SVD geschrieben werden und ?B X B X B = D E F T D E F X B.XBBXBXB=DEFTDEFXB


Update: @whuber schlägt vor, dass ich orthogonal erweitern kann, indem ich orthonormale Spalten hinzufüge, bis quadratisch ist. Rufen Sie diese orthogonale Matrix .B ˜ B.BBB~

B~=[B;B]

Ich kenne den SVD von ist (siehe oben). Aber jetzt kämpfe ich darum, ob es eine Möglichkeit gibt, die SVD von XB in Bezug auf die SVD von X \ tilde B zu schreiben . U S ( ˜ B T V ) T X B X ˜ B.XB~US(B~TV)TXBXB~


Zum Beispiel ist es nicht der Fall, dass die SVD von ist, was wir haben, wenn wir wissen, dass quadratisch ist. Dies liegt daran, dass keine quadratische Matrix ist, was für die SVD zutreffen müsste. jedoch immer noch orthonormale Säulen. B B T V B T V.XB=US(BTV)TBBTVBTV
Mobeets

3
B kann verlängert werden, indem zusätzliche orthonormale Spalten in eine orthogonale Matrix eingefügt werden (verwenden Sie beispielsweise das Gram-Schmidt-Verfahren), wodurch Ihre Frage auf den ersten Fall reduziert wird.
whuber

1
Cool, danke @whuber. So sagen ist die orthogonalisierten Version von . Wird mir die Kenntnis der SVD von etwas über die SVD von sagen ? B X B ' X B.BBXBXB
Mobeets

Schreiben Sie es aus und Sie werden sehen, wie einfach und klar die Beziehung ist.
whuber

@whuber Ich kann es nicht ganz sehen ... Folgendes habe ich versucht: Let . Dann ist . X B.B=[B;B]XB=[XB;XB]=US(BTV)T=US([BTBT]V)T=US[BTVBTV]T
Mobeets

Antworten:


3

In der SVD , wobei eine Matrix ist, ist eine orthogonale Matrix. X n × p V p × pX=USVXn×pVp×p

Angenommen, ist eine orthogonale Matrix, . Lassenp × q B ' B = 1 qBp×qBB=1q

(1)SVB=TDW

ein SVD sein . Somit ist per Definition eine Matrix, ist eine diagonale Matrix der Dimension und ist eine orthogonale Matrix.T p × q D q W q × qSVBTp×qDqWq×q

Berechnen

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

Da , hat orthonormale Spalten. Da und Teil einer SVD sind, ist per Definition diagonal mit nicht negativen Einträgen und ist eine orthogonale Matrix. Folglich ergibt Gleichung eine SVD von . Gleichung zeigt, wie diese SVD mit der von und . U T D W ' D W q × q(UT)(UT)=T(UU)T=TT=1qUTDWDWq×qX B(2)XBX B.(1)XB


1
Danke für die Antwort. Dies scheint jedoch eine Möglichkeit zu sein, die SVD von über die Berechnung der SVD von , nur die SVD von . Ich hatte gehofft zu wissen, ob es eine Möglichkeit gibt, die SVD von zu finden, ohne zusätzliche SVDs berechnen zu müssen, wie es möglich ist, wenn quadratisch ist. S V ' B X X B B.XBSVBXXBB
Mobeets

3

Für eine Matrix mit orthonormalen Spalten (aber nicht quadratisch) möchte ich einen Weg finden, eine SVD von in Bezug auf die SVD von .X B X = U S V T.BXBX=USVT

Wie von @whuber vorgeschlagen, besteht ein erster Schritt zum Finden der SVD von darin, Spalten zu hinzuzufügen , um sie quadratisch (und damit orthogonal) zu machen. Nennen Sie diese Matrix und sei die Anzahl der Spalten von . Dann , da orthogonal ist, wenn ein SVD ist , dann ist ein SVD von .B ˜ B = [ B ; B ] k B ˜ B X = U S V T X X ˜ B = U.XBBB~=[B;B]kBB~X=USVTX X ~ BXB~=US(B~TV)TXB~

Da durch Löschen der letzten Spalten von werden kann, reduziert sich mein ursprüngliches Problem jetzt auf Folgendes: Gibt es angesichts der SVD einer Matrix eine Möglichkeit, die SVD von , wobei die Matrix ist, die sich aus dem der letzten Spalten von ergibt ? (Hier habe ich und .)X ˜ B k Y = D E F T Y ' = D ' E ' F ' T Y ' k Y Y = X ˜ B Y ' = X B.XBXB~kY=DEFTY=DEFTYkYY=XB~Y=XB

Dieses Problem wird als "Downdating der SVD" bezeichnet, und im Allgemeinen scheint es dafür viele Ansätze zu geben. Ein relevanter Ansatz gefunden werden hier , und mehr Diskussion hier .

Angesichts der Tatsache, dass Algorithmen zum Herunterdatieren der SVD ein Bereich aktiver Forschung zu sein scheinen, komme ich im Allgemeinen zu dem Schluss, dass es keinen einfachen Weg gibt, die SVD von wenn nur die SVD von .X.XBX


1
+1. Ich denke, Sie identifizieren das Problem richtig: Es gibt keinen "einfachen" Weg. Ich finde es ziemlich intuitiv, wenn Sie ein einfaches Spielzeugbeispiel betrachten: zB eine in diagonaler Richtung verlängerte 2D-Datenwolke. Die beiden ursprünglichen Singularvektoren sind diagonal. Durch Multiplizieren der Datenmatrix mit einer quadratischen orthogonalen Matrix wird einfach die gesamte Wolke gedreht, sodass die singulären Vektoren bis zur Drehung gleich bleiben. Wenn Sie die Datenwolke jedoch beispielsweise auf die horizontale Linie (1D-Unterräume) projizieren, ändert sich ihre Form vollständig. Jetzt ist der einzige singuläre Vektor horizontal. Neue singuläre Vektoren haben nichts mit den alten zu tun.
Amöbe

Das ist eine großartige intuitive Erklärung für den Unterschied. Zuerst fand ich es ziemlich ärgerlich, dass es eine so einfache Beziehung für orthogonale Matrizen geben könnte, aber dann nicht mehr, wenn Sie nur eine einzelne Spalte dieser Matrix entfernen. Aber jetzt macht alles Sinn. Vielen Dank!
Mobeets

Genau. Als ich Ihren Beitrag zum ersten Mal las, dachte ich: Was für eine naive Frage! :-) klar muss man einfach die singulären Vektoren drehen (mit einer Matrix "erweitert", um eine Rotationsmatrix zu sein, wie whuber schrieb) und dann einige von ihnen fallen lassen (entsprechend dem "erweiterten" Teil). Aber das ist natürlich falsch.
Amöbe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.