Singular Value Decomposition

A general matrix with rank can be decomposed as

where and are square orthonormal matrices whose columns are known respectively as the left singular vectors and right singular vectors of , whereas is a block matrix with having positive ordered diagonal entries known as the singular values of , such that for and , .

The SVD of can also be rewritten in compact-form, such that

where and .

Intuition

We can geometrically interpret SVD by considering what each component of the decomposition does when considering as a linear transformation. Take a look at this illustration:

\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, shapes.geometric, decorations.markings, calc}
 
\begin{document}
\begin{tikzpicture}[scale=1.2, transform shape]
 
% Matrix V^T
\begin{scope}[shift={(1,0)}]
	\draw[thick] (-1.5, 0) -- (1.5, 0);
	\draw[thick] (0, 1.5) -- (0, -1.5);
	\draw[thick, fill=none] (0,0) circle (1) node[scale=1.75, teal, yshift=1.5cm, xshift=-1cm]{$V^T$};
	\draw[->, thick] (0, 0) -- (0.3, 0.95) node[above]{$\vec{v}_2$};
	\draw[->, thick] (0, 0) -- (0.95, -0.3) node[right]{$\vec{v}_1$};
	\node (vt) at (0, -1.5){};
\end{scope}
 
% Matrix Sigma
\begin{scope}[shift={(-3,0)}]
	\draw[thick] (-1.5, 0) -- (1.5, 0);
	\draw[thick] (0, -1.5) -- (0, 1.5);
	\draw[thick, fill=none] (0,0) circle (1) node[scale=1.75, purple, yshift=1.5cm, xshift=-1cm]{$\Sigma$};
	\draw[->, thick, teal] (0, 0) -- (0, 1) node[above right]{$\vec{e}_2$};
	\draw[->, thick, teal] (0, 0) -- (1, 0) node[above right]{$\vec{e}_1$};
	\node (s) at (0, -1.5){};
\end{scope}
 
% Matrix U
\begin{scope}[shift={(-7,0)}]
	\draw[thick] (-1.5, 0) -- (1.5, 0);
	\draw[thick] (0, -1.5) -- (0, 1.5);
	\draw[thick, fill=none] (0,0) ellipse (1 and 0.65) node[scale=1.75, green, yshift=1.5cm, xshift=-1cm]{$U$};
	\draw[->, thick, purple] (0, 0) -- (0, 0.65) node[above right]{$\sigma_2\vec{e}_2$};
	\draw[->, thick, purple] (0, 0) -- (1, 0) node[above right]{$\sigma_1\vec{e}_1$};
	\node (u) at (0, -1.5){};
\end{scope}
 
\begin{scope}[shift={(-11,0)}]
	\draw[thick] (-1.5, 0) -- (1.5, 0);
	\draw[thick] (0, -1.5) -- (0, 1.5);
	\draw[thick, fill=none, rotate=45] (0,0) ellipse (1 and 0.65) node[scale=1.75, yshift=1.5cm, xshift=0.65cm, rotate=-45]{$A=$};
	\draw[->, thick, green, rotate=45] (0, 0) -- (0, 0.65) node[above left, rotate=-45]{$\sigma_2\vec{u}_2$};
	\draw[->, thick, green, rotate=45] (0, 0) -- (1, 0) node[above right, rotate=-45]{$\sigma_1\vec{u}_1$};
	\node (a) at (0, -1.5){};
\end{scope}
 
% Arrows
\draw[->, thick, teal] (vt.south west) to [out=-150,in=-30] (s.south east);
\draw[->, thick, purple] (s.south west) to [out=-150,in=-30] (u.south east);
\draw[->, thick, green] (u.south west) to [out=-150,in=-30] (a.south east);
 
\end{tikzpicture}
\end{document}

We can see from the figure above that there are 3 transformations that take place:

  1. Here, transforms each vector such that they return to standard basis (since we are performing an operation on the eigenvectors of A). The singular vector with the largest lands on the x-axis, the vector with the second-largest lands on the y-axis, and so on.
  2. Then, stretches or compresses the vectors by factors corresponding to the roots of their eigenvalues. Additionally, may also add or remove dimensionality.
  3. Finally, rotates the standard basis vectors to align with the left singular vectors.

Additionally, the full SVD is connected to the compact SVD (and therefore outer product SVD) as follows:

Moreover, the full SVD requires running Gram-Schmidt twice to compute and , and is non-square. However, and are invertible, and there is characterization of null spaces.

Properties

(Condition Number) For ,

(Squared Frobenius Norm) .

(Spectral Norm) .

(Nuclear Norm)

Since

for any