9.1Kochrezept der Singulärwertzerlegung

9.1.1 Was ist eine Singulärwertzerlegung?

Stell dir vor, jede Matrix wäre nichts weiter als ein Hintereinander von drehen, dann strecken, dann nochmal drehen. Genau das sagt die Singulärwertzerlegung (kurz SVD, von englisch singular value decomposition): Wir schreiben eine beliebige Matrix AA als Produkt von drei besonders einfachen Bausteinen UU, SS und VV.

Wenn AA einen Vektor x\mathbf{x} transformiert, lässt sich das in drei Etappen lesen: erst dreht VTV^{\mathsf{T}} den Vektor in ein neues Koordinatensystem, dann staucht oder streckt SS die einzelnen Achsen, und zum Schluss dreht UU das Ergebnis wieder zurück in den Zielraum. Die Streckfaktoren auf der Diagonalen von SS heißen Singulärwerte, und sie sind der eigentliche Kern dieses Kapitels.

Ein anschauliches Bild dazu: nimm den Einheitskreis (alle Vektoren der Länge 1) und schau, wohin AA ihn schickt. Heraus kommt immer eine Ellipse. Die Längen ihrer Halbachsen sind genau die Singulärwerte σ1,σ2,\sigma_1, \sigma_2, \ldots Die SVD zerlegt die Wirkung von AA also in „in welche Richtungen wird wie stark gestreckt“, und das ist eine der nützlichsten Sichtweisen der ganzen linearen Algebra.

!!!
Singulärwertzerlegung einer Matrix
A=USVTA = U\,S\,V^{\mathsf{T}}
Jede Matrix A lässt sich so zerlegen: Drehung, Streckung, Drehung.
Dimensionen der drei Faktoren
URm×m,SRm×n,VRn×nU \in \mathbb{R}^{m\times m}, \qquad S \in \mathbb{R}^{m\times n}, \qquad V \in \mathbb{R}^{n\times n}
U und V sind quadratisch, S hat dieselbe m×n-Gestalt wie A.

Zwei Eigenschaften machen diese Bausteine so brauchbar. Erstens sind UU und VV orthogonal. Das heißt: ihre Spalten stehen paarweise senkrecht aufeinander und haben alle die Länge 1 (man nennt das orthonormiert). Eine orthogonale Matrix dreht und spiegelt nur, sie verzerrt nichts und ändert keine Längen. In Formeln ausgedrückt gilt UTU=IU^{\mathsf{T}}U = I und VTV=IV^{\mathsf{T}}V = I, wobei II die Einheitsmatrix ist.

Zweitens ist SS eine Diagonalmatrix: außerhalb der Hauptdiagonalen stehen nur Nullen, und auf der Diagonalen sitzen die Singulärwerte. Genau diese Diagonalgestalt macht die mittlere Etappe zu einer reinen Streckung Achse für Achse. Achtung: SS ist nur dann quadratisch, wenn AA quadratisch ist. Bei einer nicht-quadratischen Matrix (mnm \neq n) erbt SS deren Rechteckform m×nm \times n und bekommt zusätzlich Nullzeilen oder Nullspalten (mehr dazu im Kochrezept).

Definition Singulärwertzerlegung
Zerlegung A=USVTA = U\,S\,V^{\mathsf{T}} einer beliebigen Matrix ARm×nA \in \mathbb{R}^{m\times n} in zwei orthogonale Matrizen UU, VV und eine Diagonalmatrix SS. Geometrisch: Drehung, dann Streckung, dann Drehung.
Notation Notation: ATA^{\mathsf{T}}
Gesprochen „AA transponiert“: die an der Hauptdiagonalen gespiegelte Matrix (Zeilen werden Spalten). Manche Texte schreiben AtA^t oder AA'; wir schreiben durchgehend ATA^{\mathsf{T}}.
Notation Notation: orthogonale Matrix
Matrix, deren Spalten paarweise senkrecht und auf Länge 1 normiert sind. Es gilt UTU=IU^{\mathsf{T}}U = I, also U1=UTU^{-1} = U^{\mathsf{T}}. Sie dreht und spiegelt nur, ändert keine Längen.
Notation Notation: Diagonalmatrix SS
Matrix mit den Singulärwerten σ1,σ2,\sigma_1, \sigma_2, \ldots auf der Hauptdiagonalen und sonst nur Nullen. SS hat dieselbe Form m×nm\times n wie AA.
Querverweis Verweise
→ Kap. 6 Eigenwertproblem

9.1.2 Kochrezept der Singulärwertzerlegung

Schön und gut, A=USVTA = U S V^{\mathsf{T}}. Aber wie kommt man bei einer konkreten Matrix an die drei Faktoren? Die gute Nachricht: es gibt ein festes Rezept mit sechs Schritten, und alles baut auf einer einzigen Hilfsmatrix auf, nämlich ATAA^{\mathsf{T}}A.

Warum gerade ATAA^{\mathsf{T}}A? Diese Matrix ist quadratisch und symmetrisch, ganz egal wie AA aussah. Und symmetrische Matrizen können wir laut Kapitel 6 immer reell diagonalisieren, also ihre Eigenwerte und eine orthonormierte Basis aus Eigenvektoren finden. Genau diese beiden Zutaten brauchen wir. Die Singulärwerte sind die Wurzeln der Eigenwerte von ATAA^{\mathsf{T}}A, und die Eigenvektoren liefern die Spalten von VV. Folge dem Rezept einfach Schritt für Schritt.

Kochrezept in 6 Schritten

  1. Schritt 1: Eigenwerte und Eigenvektoren von ATAA^{\mathsf{T}}A bestimmen
    ATAA^{\mathsf{T}}A ist quadratisch und symmetrisch, also reell diagonalisierbar (Kapitel 6). Darum dieser Umweg: über diese Hilfsmatrix bekommen wir alles, was wir brauchen.
    Bilde ATARn×nA^{\mathsf{T}}A \in \mathbb{R}^{n\times n} und berechne ihre Eigenwerte. Ordne sie absteigend; die ersten rr sind positiv, der Rest ist null:
    λ1λ2λr>λr+1==λn=0\lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_r > \lambda_{r+1} = \dots = \lambda_n = 0
  2. Schritt 2: Orthonormalbasis aus den Eigenvektoren bilden (V\to V)
    VV muss orthogonal sein, deshalb brauchen wir die Eigenvektoren orthonormiert (mit Gram-Schmidt, falls sie es nicht schon sind).
    Schreibe die orthonormierten Eigenvektoren v1,,vn\mathbf{v}_1, \ldots, \mathbf{v}_n als Spalten in eine Matrix:
    V=(v1    vn)Rn×nV = (\mathbf{v}_1 \;\cdots\; \mathbf{v}_n) \in \mathbb{R}^{n\times n}
  3. Schritt 3: Singulärwerte ausrechnen und SS aufbauen
    Die Streckfaktoren der Abbildung stecken in den Eigenwerten von ATAA^{\mathsf{T}}A; die Wurzel daraus ergibt die Singulärwerte.
    Die Singulärwerte sind die Wurzeln der Eigenwerte, für i=1,,min{m,n}i = 1, \ldots, \min\{m, n\}:
    σi=λi\sigma_i = \sqrt{\lambda_i}
  4. Schritt 3 (Forts.): Gestalt von SS je nach Form von AA
    SS erbt die Form m×nm\times n von AA. Ist AA breiter als hoch (m<nm < n), bekommt SS Nullspalten rechts; ist AA höher als breit (m>nm > n), bekommt SS Nullzeilen unten.
    Fall m<nm < n (breit, Nullspalten rechts) und Fall m>nm > n (hoch, Nullzeilen unten):
    S=(σ100σm00)(m<n),S=(σ1σn0000)(m>n)\begin{aligned} S &= \begin{pmatrix} \sigma_1 & & & 0 & \cdots & 0 \\ & \ddots & & \vdots & & \vdots \\ & & \sigma_m & 0 & \cdots & 0 \end{pmatrix} \quad (m<n), \\[8pt] S &= \begin{pmatrix} \sigma_1 & & \\ & \ddots & \\ & & \sigma_n \\ 0 & \cdots & 0 \\ \vdots & & \vdots \\ 0 & \cdots & 0 \end{pmatrix} \quad (m>n) \end{aligned}
  5. Schritt 4: Linke Singulärvektoren ui\mathbf{u}_i berechnen
    Aus den vi\mathbf{v}_i und den Singulärwerten ergeben sich die ersten rr Spalten von UU. Definiert ist das nur für σi0\sigma_i \neq 0, also für i=1,,ri = 1, \ldots, r.
    Für jeden positiven Singulärwert:
    ui=1σiAvi(i=1,,r)\mathbf{u}_i = \frac{1}{\sigma_i}\,A\,\mathbf{v}_i \qquad (i = 1, \ldots, r)
  6. Schritt 5: UU zu einer Orthonormalbasis ergänzen, falls r<mr < m
    UU muss quadratisch und orthogonal sein. Liefert Schritt 4 weniger Spalten als mm, fehlen also welche, fülle sie zu einer Orthonormalbasis (ONB) auf.
    Ergänze u1,,ur\mathbf{u}_1, \ldots, \mathbf{u}_r zu einer vollständigen ONB, sodass:
    U=(u1    um)Rm×mU = (\mathbf{u}_1 \;\cdots\; \mathbf{u}_m) \in \mathbb{R}^{m\times m}
  7. Schritt 6: Endresultat zusammensetzen
    Jetzt sind alle drei Faktoren da. Mehr ist nicht zu tun.
    Schreibe das Ergebnis einfach hin:
    A=USVTA = U\,S\,V^{\mathsf{T}}
Formel Schlüsselformel
σi=λi\sigma_i = \sqrt{\lambda_i}
Die Singulärwerte von AA sind die Wurzeln der Eigenwerte von ATAA^{\mathsf{T}}A. Genau diese Brücke verbindet die SVD mit dem Eigenwertproblem aus Kapitel 6.
Formel Linke Singulärvektoren
ui=1σiAvi\mathbf{u}_i = \frac{1}{\sigma_i}\,A\,\mathbf{v}_i
Spalten von UU, nur für σi0\sigma_i \neq 0 definiert.
Definition Singulärwert
Streckfaktor der Abbildung AA, also die Länge einer Halbachse der Bild-Ellipse. Definiert als σi=λi\sigma_i = \sqrt{\lambda_i} mit den Eigenwerten λi\lambda_i von ATAA^{\mathsf{T}}A.
Notation Notation: rr
Anzahl der von null verschiedenen (positiven) Singulärwerte. Das ist zugleich der Rang von AA. In der Vorlesung nicht eigens benannt; diese Lesart ist unsere Anschauungshilfe.
Prüfungstipp Reihenfolge merken: immer σ1σ2σr>0\sigma_1 \ge \sigma_2 \ge \ldots \ge \sigma_r > 0.
Querverweis Verweise
→ Kap. 6 Eigenwertproblem

9.1.3 Beispiel: SVD einer 2×2-Diagonalmatrix

Genug Theorie, wir laufen das Rezept einmal an der einfachsten denkbaren Matrix durch: einer 2×22 \times 2-Diagonalmatrix. Gesucht ist ihre vollständige Singulärwertzerlegung M=USVTM = U S V^{\mathsf{T}}.

SVD von M=diag(2,12)M = \mathrm{diag}(2, \tfrac12)

  1. Gegeben
    Die Ausgangsmatrix:
    M=(20012)M = \begin{pmatrix} 2 & 0 \\ 0 & \tfrac12 \end{pmatrix}
  2. Schritt 1: MTMM^{\mathsf{T}}M berechnen
    Erster Schritt des Rezepts: die symmetrische Hilfsmatrix bilden.
    Da MM diagonal ist, ist MT=MM^{\mathsf{T}} = M, und das Produkt quadriert einfach die Diagonaleinträge:
    MTM=(40014)M^{\mathsf{T}}M = \begin{pmatrix} 4 & 0 \\ 0 & \tfrac14 \end{pmatrix}
  3. Schritt 2: Eigenwerte ablesen
    MTMM^{\mathsf{T}}M ist diagonal, deshalb sind die Eigenwerte direkt die Diagonaleinträge, nichts zu rechnen.
    Geordnet (λ1λ2\lambda_1 \ge \lambda_2):
    λ1=4,λ2=14\lambda_1 = 4, \qquad \lambda_2 = \tfrac14
  4. Schritt 3: Singulärwerte
    Singulärwerte sind die Wurzeln der Eigenwerte.
    Also:
    σ1=4=2,σ2=14=12\sigma_1 = \sqrt{4} = 2, \qquad \sigma_2 = \sqrt{\tfrac14} = \tfrac12
  5. Schritt 4: Eigenvektoren vi\mathbf{v}_i
    Die Eigenvektoren einer Diagonalmatrix sind die Standard-Einheitsvektoren, schon orthonormiert.
    Damit ist VV die Einheitsmatrix:
    v1=(10),v2=(01)\mathbf{v}_1 = \begin{pmatrix} 1 \\ 0 \end{pmatrix}, \qquad \mathbf{v}_2 = \begin{pmatrix} 0 \\ 1 \end{pmatrix}
  6. Schritt 5: linke Singulärvektoren ui\mathbf{u}_i berechnen
    Mit ui=1σiMvi\mathbf{u}_i = \tfrac{1}{\sigma_i} M \mathbf{v}_i ergeben sich die Spalten von UU.
    Für u1\mathbf{u}_1 (Faktor 1σ1=12\tfrac{1}{\sigma_1} = \tfrac12) und u2\mathbf{u}_2 (Faktor 1σ2=2\tfrac{1}{\sigma_2} = 2):
    u1=1σ1Mv1=12(20012)(10)=(10)u2=1σ2Mv2=11/2(20012)(01)=(01)\begin{aligned} \mathbf{u}_1 &= \frac{1}{\sigma_1}\,M\,\mathbf{v}_1 = \frac12 \begin{pmatrix} 2 & 0 \\ 0 & \tfrac12 \end{pmatrix}\begin{pmatrix} 1 \\ 0 \end{pmatrix} = \begin{pmatrix} 1 \\ 0 \end{pmatrix} \\[4pt] \mathbf{u}_2 &= \frac{1}{\sigma_2}\,M\,\mathbf{v}_2 = \frac{1}{1/2} \begin{pmatrix} 2 & 0 \\ 0 & \tfrac12 \end{pmatrix}\begin{pmatrix} 0 \\ 1 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \end{pmatrix} \end{aligned}
  7. Resultat
    Alle drei Faktoren stehen. SS trägt die Singulärwerte, UU und VV sind hier beide die Einheitsmatrix.
    Die vollständige Zerlegung lautet:
    S=(20012),V=VT=(1001),U=(1001)\begin{aligned} S &= \begin{pmatrix} 2 & 0 \\ 0 & \tfrac12 \end{pmatrix}, \\[4pt] V = V^{\mathsf{T}} &= \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}, \\[4pt] U &= \begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix} \end{aligned}
Merke Merke
Bei einer Diagonalmatrix lassen sich die Eigenwerte direkt von der Diagonalen ablesen; man muss kein charakteristisches Polynom lösen.
Querverweis Verweise
→ 9.1.2 Kochrezept

9.1.4 Beispiel: nur die Singulärwerte einer 3×2-Matrix

Manchmal will man gar nicht die ganze Zerlegung, sondern nur die Singulärwerte selbst, etwa um die Kondition oder die Norm einer Matrix abzuschätzen. Dann hört man nach Schritt 3 einfach auf, sobald SS steht. Dieses Beispiel zeigt das und gleichzeitig den Fall m>nm > n, bei dem SS eine Nullzeile bekommt.

Die Matrix AA ist 3×23 \times 2, also höher als breit (m=3>n=2m = 3 > n = 2). Die Hilfsmatrix ATAA^{\mathsf{T}}A ist trotzdem nur 2×22 \times 2, denn ihre Größe richtet sich nach der Spaltenzahl nn, nicht nach mm.

Singulärwerte von AR3×2A \in \mathbb{R}^{3\times 2}

  1. Gegeben
    Die Ausgangsmatrix (drei Zeilen, zwei Spalten):
    A=(300332)A = \begin{pmatrix} -3 & 0 \\ 0 & 3 \\ \sqrt{3} & 2 \end{pmatrix}
  2. Schritt 1: ATAA^{\mathsf{T}}A berechnen
    Wieder die symmetrische Hilfsmatrix bilden. ATA^{\mathsf{T}} ist 2×32\times 3, also wird das Produkt 2×22\times 2.
    Zeile mal Spalte ausmultiplizieren:
    ATA=(303032)(300332)=(12232313)\begin{aligned} A^{\mathsf{T}}A &= \begin{pmatrix} -3 & 0 & \sqrt{3} \\ 0 & 3 & 2 \end{pmatrix} \begin{pmatrix} -3 & 0 \\ 0 & 3 \\ \sqrt{3} & 2 \end{pmatrix} \\[4pt] &= \begin{pmatrix} 12 & 2\sqrt{3} \\ 2\sqrt{3} & 13 \end{pmatrix} \end{aligned}
  3. Schritt 2: Eigenwerte bestimmen
    Bei einer 2×22\times 2-Matrix über das charakteristische Polynom det(ATAλI)=0\det(A^{\mathsf{T}}A - \lambda I) = 0. Hier liefert das eine quadratische Gleichung in λ\lambda.
    Geordnet (λ1λ2\lambda_1 \ge \lambda_2):
    λ1=16,λ2=9\lambda_1 = 16, \qquad \lambda_2 = 9
  4. Schritt 3: Singulärwerte
    Wurzeln der Eigenwerte ziehen.
    Also:
    σ1=16=4,σ2=9=3\sigma_1 = \sqrt{16} = 4, \qquad \sigma_2 = \sqrt{9} = 3
  5. Schritt 4: SS aufbauen (Fall m>nm > n)
    Weil m=3>n=2m = 3 > n = 2, hat SS die Form 3×23\times 2: die Singulärwerte oben auf der Diagonalen, darunter eine Nullzeile (vgl. den Fall m>nm>n aus dem Kochrezept).
    Damit sind die Singulärwerte gefunden und SS steht:
    S=(400300)S = \begin{pmatrix} 4 & 0 \\ 0 & 3 \\ 0 & 0 \end{pmatrix}
Notation Notation: 3\sqrt{3}
Wurzelausdrücke bleiben exakt stehen, nicht als Dezimalzahl runden. So bleibt etwa ATAA^{\mathsf{T}}A exakt und die Eigenwerte 1616 und 99 kommen sauber heraus.
Merke Merke
m>nm > n: SS erbt Nullzeilen unten. m<nm < n: SS erbt Nullspalten rechts. Die Größe von ATAA^{\mathsf{T}}A richtet sich nach nn, nicht nach mm.
Querverweis Verweise
→ 9.1.2 Kochrezept, Schritt 3

Aufgaben mit Musterlösungen

Eigene Übungsaufgaben zur Singulärwertzerlegung folgen. Bis dahin sind die beiden durchgerechneten Beispiele in 9.1.3 und 9.1.4 die beste Vorlage, um das Kochrezept selbst zu üben.

Die Aufgaben für dieses Kapitel werden in einer zukünftigen Version ergänzt.

MerkeErst selbst rechnen, dann Lösung prüfen!