Singulärwertzerlegung
Einfache Sprache
Die Singulärwertzerlegung ist die Verallgemeinerung der Spektralzerlegung auf rechteckige Matrizen. Wichtig ist das Zeilen einen Beobachtung bilden und Spalten eine Feature. Es gibt die vollständige Singulärwertzerlegung und die kompakte Singulärwertzerlegung.
Vollständige Singulärwertzerlegung
Def. (Vollständige) Singulärwertzerlegung
Sei $\mathfrak A\in K^{n\times d}$ eine rechteckige Matrix. Dann ist vollständige Singulärwertzerlegung gegeben durch
$$\mathfrak A = \mathfrak{USV}^T\;.$$Dabei setzen sich sich $\mathfrak{U,S,V}$ wie folgt zusammen:
- $\mathfrak U\in K^{n\times n}$ ist eine Matrix spaltenweise zusammengesetzt aus den Eigenvektoren von $\mathfrak{AA}^T$
- $\mathfrak V\in K^{d\times d}$ ist eine Matrix spaltenweise zusammengesetzt aus den Eigenvektoren von $\mathfrak A^T\mathfrak A$.
- $\mathfrak S\in K^{n\times d}$ hat auf der Hauptdiagonale die Wurzel der Eigenwerte von $\mathfrak A^T\mathfrak A$ absteigend sortiert. Diese Werten auch Singulärwerte genannt.
Wie berechne ich eine vollständige Singulärwertzerlegung?
- Sei $i\in[1,d]$.
- Zuerst werden die Eigenwerte $\lambda_i$ und orthonomale Eigenvektoren $\mathfrak v_i$ von $\mathfrak A^T\mathfrak A$ bestimmt.
- $\mathfrak V = [\mathfrak v_1, \ldots,\mathfrak v_d]\in K^{d\times d}$
- $\sigma_i = \sqrt{\lambda_i}$
- Dann werden die $\sigma_i$ absteigend sortiert.
- $r = \text{rang}(\mathfrak A)$
- $\mathfrak u_i =\frac{1}{\sigma_i}\mathfrak {Av}_i$ für $i\in[1,r]$
- Wähle $\mathfrak u_i$ für alle $i\in(r,n]$ so, dass $\mathfrak U$ eine Orthogonale Matrix ist.
- $\mathfrak U = [\mathfrak u_1, \ldots,\mathfrak u_r,\mathfrak u_{r+}, \ldots,\mathfrak u_d]\in K^{n\times n}$
- $\mathfrak S\in K^{n\times d}$ mit $\mathfrak S_{ii} = \sigma_i$ für alle $i\in[1,r]$ sonst $0$.
Kompakte Singulärwertzerlegung
Def. (Kompakte) Singulärwertzerlegung
Sei $\mathfrak A\in K^{n\times d}$ eine rechteckige Matrix. Sei $r= \text{rang}(\mathfrak A)$ der Rang von $\mathfrak A$. Dann ist kompakte Singulärwertzerlegung gegeben durch
$$\mathfrak A = \mathfrak{USV}^T\;.$$Dabei setzen sich sich $\mathfrak{U,S,V}$ wie folgt zusammen:
- $\mathfrak U\in K^{n\times r}$ ist eine Matrix spaltenweise zusammengesetzt aus den Eigenvektoren von $\mathfrak{AA}^T$
- $\mathfrak V\in K^{r\times r}$ ist eine Matrix spaltenweise zusammengesetzt aus den Eigenvektoren von $\mathfrak A^T\mathfrak A$.
- $\mathfrak S\in K^{d\times r}$ hat auf der Hauptdiagonale die Wurzel der Eigenwerte von $A^T\mathfrak A$ absteigend sortiert.
Wie berechne ich eine kompakte Singulärwertzerlegung?
- $r = \text{rang}(\mathfrak A)$
- Sei $i\in[1,r]$.
- Bestimme die Eigenwerte $\lambda_i$ und Eigenvektoren $\mathfrak v_i$ von $\mathfrak A^T\mathfrak A$.
- $\mathfrak V = [\mathfrak v_1, \ldots,\mathfrak v_r]\in K^{d\times r}$
- $\sigma_i = \sqrt{\lambda_i}$
- Dann werden die $\sigma_i$ absteigend sortiert.
- $\mathfrak u_i =\frac{1}{\sigma_i}\mathfrak {Av}_i$ für $i\in[1,r]$
- $\mathfrak U = [\mathfrak u_1, \ldots,\mathfrak u_r]\in K^{n\times r}$
- $\mathfrak S\in K^{r\times r}$ mit $\sigma_i$ auf der Hauptdiagonale.