线性代数 Cheat Sheet 7-4:奇异值分解

  对角化定理有很多重要的应用,但并不是所有矩阵都有分解式 $A = PDP^{-1}$,且 $D$ 是对角的。但分解 $A = QDP^{-1}$ 对任意 $m \times n$ 矩阵 $A$ 都有可能。这类特殊的分解称为奇异值分解。

  奇异值分解基于一般的矩阵对角化性质,可以被长方形矩阵模仿:一个对称矩阵 $A$ 的特征值的绝对值表示度量 $A$ 拉长或压缩一个向量(特征向量)的成都。如果 $A \boldsymbol x = \lambda \boldsymbol x$,且 $\lVert \boldsymbol x \rVert = 1$,那么

\begin{equation}
\lVert A \boldsymbol x \rVert = \lVert \lambda \boldsymbol x \rVert = |\lambda| \lVert \boldsymbol x \rVert = |\lambda| \tag{1}
\end{equation}

如果 $\lambda_1$ 是具有最大数值的特征值,那么对应的单位向量 $\boldsymbol v_1$ 确定一个由 $A$ 拉长影响最大的方向,也就是说,$(1)$ 式表示 $\boldsymbol x = \boldsymbol v_1$ 时,$A \boldsymbol x$ 的长度最大化,且 $\lVert A \boldsymbol v_1 \rVert = |\lambda_1|$。这个对 $\boldsymbol v_1$ 和 $|\lambda_1|$ 的概述对长方形的矩阵来说也是类似地,这将导致奇异值分解。

1. 一个 $m \times n$ 矩阵的奇异值

  令 $A$ 是 $m \times n$ 矩阵,那么 $A^\mathsf{T}A$ 是对称矩阵且可以正交对角化。令 $\{\boldsymbol v_1, \cdots, \boldsymbol v_n\}$ 是 $\mathbb{R}^n$ 的单位正交基且构成 $A^\mathsf{T}A$ 的特征向量,$\lambda_1, \cdots, \lambda_n$ 是 $A^\mathsf{T}A$ 对应的特征值,那么对 $1 \leq i \leq n$,

\begin{equation}
\lVert A \boldsymbol v_1 \rVert^2 = (A \boldsymbol v_1)^\mathsf{T} A \boldsymbol v_1 = \boldsymbol v_1^\mathsf{T} A^\mathsf{T} A \boldsymbol v_1 = \boldsymbol v_1^\mathsf{T} (\lambda_1 \boldsymbol v_1) = \lambda_1 \tag{2}
\end{equation}

所以,$A^\mathsf{T}A$ 的所有特征值都非负。如果必要,通过重新编号,可以假设特征值的重新排列满足

\begin{equation}
\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_n \geq 0
\end{equation}

$A$ 的奇异值是 $A^\mathsf{T}A$ 的特征值的平方根,记为 $\sigma_1, \cdots, \sigma_n$,且它们用递减顺序排列,也就是对 $1 \leq i \leq n$,$\sigma_i = \sqrt{\lambda_i}$。由 $(2)$ 可知,$A$ 的奇异值是向量 $A \boldsymbol v_1, \cdots A \boldsymbol v_n$ 的长度。

  定理 9 假若 $\{\boldsymbol v_1, \cdots, \boldsymbol v_n\}$ 是包含 $A^\mathsf{T}A$ 的特征向量的 $\mathbb{R}^n$ 上的单位正交基,重新整理使得对应的 $A^\mathsf{T}A$ 的特征值满足 $\lambda_1 \geq \lambda_2 \geq \cdots \geq \lambda_n \geq 0$。假若 $A$ 有 $r$ 个非零奇异值,那么 $\{A\boldsymbol v_1, \cdots, A\boldsymbol v_r\}$ 是 $\mathrm{Col}\; A$ 的一个正交基,且 $\mathrm{rank}\; A = r$。

2. 奇异值分解

  矩阵 $A$ 的分解涉及一个 $m \times n$ “对角”矩阵 $\Sigma$,其形式是

\begin{equation}
\Sigma = \begin{bmatrix} D & 0 \\ 0 & 0\end{bmatrix} \tag{3}
\end{equation}

其中,$D$ 是一个 $r \times r$ 对角矩阵,且 $r$ 不超过 $m$ 和 $n$ 中较小的那个。

  定理 10(奇异值分解)设 $A$ 是秩为 $r$ 的 $m \times n$ 矩阵,那么存在一个类似 $(3)$ 中的 $m \times n$ 矩阵 $\Sigma$,其中 $D$ 的对角线元素是 $A$ 的前 $r$ 个奇异值,$\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0$,并且存在一个 $m \times m$ 正交矩阵 $U$ 和一个 $n \times n$ 正交矩阵 $V$ 使得 $A = U \Sigma V^\mathsf{T}$。

  任何分解 $A = U \Sigma V^\mathsf{T}$ 称为 $A$ 的一个奇异值分解(或 SVD),其中 $U$ 和 $V$ 是正交矩阵,$\Sigma$ 形如 $(3)$ 式,$D$ 具有正的对角线元素。矩阵 $U$ 和 $V$ 不是 $A$ 惟一确定的,但 $\Sigma$ 的对角线元素必须是 $A$ 的奇异值。这样的一个分解中,$U$ 的列称为 $A$ 的左奇异向量,$V$ 的列称为 $A$ 的右奇异向量

  一个奇异值分解可分为三步进行。下面以 $A = \begin{bmatrix} 4 & 11 & 14 \\ 8 & 7 & -2\end{bmatrix}$ 为例,求 $A$ 的一个奇异值分解。

  第一步,将 $A^\mathsf{T} A$ 正交对角化。即求矩阵 $A^\mathsf{T} A$ 的特征值及其对应的特征向量的单位正交集。这里

\begin{equation}
A^\mathsf{T} A =
\begin{bmatrix}
80 & 100 & 40 \\
100 & 170 & 140 \\
40 & 140 & 200
\end{bmatrix} \\
\lambda_1 = 360, \; \boldsymbol v_1 = \begin{bmatrix} 1/3 \\ 2/3 \\ 2/3 \end{bmatrix} \\
\lambda_2 = 90, \; \boldsymbol v_2 = \begin{bmatrix} -2/3 \\ -1/3 \\ 2/3 \end{bmatrix} \\
\lambda_3 = 0, \; \boldsymbol v_3 = \begin{bmatrix} 2/3 \\ -2/3 \\ 1/3 \end{bmatrix}
\end{equation}

  第二步,计算 $V$ 和 $\Sigma$。将 $A^\mathsf{T} A$ 的特征值按降序排列,使用对应特征向量的排列构造 $P$。在上面的结果中,$\lambda_1 > \lambda_2 > \lambda_3$,构造

\begin{equation}
P = \begin{bmatrix} \boldsymbol v_1 & \boldsymbol v_2 & \boldsymbol v_3\end{bmatrix} =
\begin{bmatrix}1/3 & -2/3 & 2/3 \\2/3 & -1/3 & -2/3 \\2/3 & 2/3 & 1/3\end{bmatrix}
\end{equation}

特征值的平方根就是奇异值:$\sigma_1 = \sqrt{360} = 6 \sqrt{10}$,$\sigma_2 = \sqrt{90} = 3 \sqrt{10}$,$\sigma_3 = 0$。其中非零奇异值是矩阵 $D$ 的对角线元素。矩阵 $\Sigma$ 与矩阵 $A$ 的行列数相同,以矩阵 $D$ 为其左上角,其他元素为 $0$。

\begin{equation}
D = \begin{bmatrix} 6 \sqrt{10} & 0 \\ 0 & 3 \sqrt{10} \end{bmatrix} \\
\Sigma = \begin{bmatrix} D & 0 \end{bmatrix} = \begin{bmatrix} 6 \sqrt{10} & 0 & 0 \\ 0 & 3 \sqrt{10} & 0 \end{bmatrix}
\end{equation}

  第三步,构造 $U$。当矩阵 $A$ 的秩为 $r$ 时,矩阵 $U$ 的前 $r$ 列是从 $A \boldsymbol v_1 \cdots A \boldsymbol v_r$ 计算得到的单位向量。这里 $A$ 有两个非零奇异值,因此 $\mathrm{rank}\; A = 2$。根据式 $(2)$,有 $\lVert A \boldsymbol v_1 \rVert = \sigma_1$,$\lVert A \boldsymbol v_2 \rVert = \sigma_2$,于是

\begin{equation}
\boldsymbol u_1 = \frac{1}{\sigma_1} A \boldsymbol v_1 = \frac{1}{6\sqrt{10}} \begin{bmatrix} 18 \\ 6 \end{bmatrix} = \begin{bmatrix} 3/\sqrt{10} \\ 1/\sqrt{10} \end{bmatrix} \\
\boldsymbol u_2 = \frac{1}{\sigma_2} A \boldsymbol v_2 = \frac{1}{3\sqrt{10}} \begin{bmatrix} 3 \\ -9 \end{bmatrix} = \begin{bmatrix} 1/\sqrt{10} \\ -3/\sqrt{10} \end{bmatrix} \\
\end{equation}

留意到 $\{\boldsymbol u_1, \boldsymbol u_2 \}$ 已经是 $\mathbb{R}^2$ 的一个基,因此构造 $U$ 不需要另外的向量,$U = \begin{bmatrix} \boldsymbol u_1 & \boldsymbol u_2 \end{bmatrix}$。$A$ 的奇异值分解是

\begin{equation}
A = \begin{bmatrix} 3\sqrt{10} & 1\sqrt{10} \\ 1\sqrt{10} & -3\sqrt{10} \end{bmatrix}
\begin{bmatrix} 6 \sqrt{10} & 0 & 0 \\ 0 & 3 \sqrt{10} & 0 \end{bmatrix}
\begin{bmatrix}1/3 & -2/3 & 2/3 \\2/3 & -1/3 & -2/3 \\2/3 & 2/3 & 1/3\end{bmatrix}
\end{equation}

3. 奇异值分解的应用

  奇异值分解常用于估计矩阵的秩。

  当应用矩阵 $A$ 的奇异值分解时,多数涉及方程 $A \boldsymbol x = \boldsymbol b$ 的数值计算要尽可能地可靠。两个正交矩阵 $U$ 和 $V$ 不影响向量的长度和两个向量的夹角(定理 7)。数值计算中的任何不稳定因素都与 $\Sigma$ 有关。如果 $A$ 的奇异值非常大或非常小,则舍入误差几乎不可避免,此时,知道 $\Sigma$ 和 $V$ 中的元素对分析误差特别有用。

  如果 $A$ 是一个 $n \times n$ 可逆矩阵,那么最大奇异值和最小奇异值的比率 $\sigma_1 / \sigma_n$ 给出了矩阵 $A$ 的条件数。条件数影响 $A \boldsymbol x = \boldsymbol b$ 的解对 $A$ 元素变化(或误差)的敏感程度。

  给定 $m \times n$ 矩阵 $A$ 的一个奇异值分解,取 $\boldsymbol u_1, \cdots, \boldsymbol u_m$ 是左奇异向量,$\boldsymbol v_1, \cdots, \boldsymbol v_m$ 是右奇异向量,且 $\sigma_1, \cdots, \sigma_n$ 是奇异值,$r$ 为 $A$ 的秩。由定理 9,

\begin{equation}
\{\boldsymbol u_1, \cdots, \boldsymbol u_m\} \tag{4}
\end{equation}

是 $\mathrm{Col}\; A$ 的一个单位正交基。由 6-1 定理 3,$(\mathrm{Col}\; A)^\perp = \mathrm{Nul}\; A^\mathsf{T}$,因此

\begin{equation}
\{\boldsymbol u_{r+1}, \cdots, \boldsymbol u_m\} \tag{5}
\end{equation}

是 $\mathrm{Nul}\; A$ 的一个正交基。

  由于当 $1 \leq i \leq n$ 时 $\lVert A \boldsymbol v_i \rVert = \sigma_i$,且 $\sigma_i$ 是零的充分必要条件是 $i > r$,因此向量 $\boldsymbol v_{r+1}, \cdots, \boldsymbol v_n$ 生成一个维数为 $n – r$ 的子空间 $\mathrm{Nul}\; A$。由秩定理可知,$\dim \mathrm{Nul}\; A = n – \mathrm{rank}\; $,从而说明

\begin{equation}
\{\boldsymbol v_{r+1}, \cdots, \boldsymbol v_n\} \tag{6}
\end{equation}

是 $\mathrm{Nul}\; A$ 的一个单位正交基。

  由 $(4)$ 和 $(5)$ 可知,空间 $\mathrm{Nul}\; A^\mathsf{T}$ 的正交补是 $\mathrm{Col}\; A$。将 $A$ 和 $A^\mathsf{T}$ 交换,有

\begin{equation}
(\mathrm{Nul}\; A)^\perp = \mathrm{Col}\; A^\mathsf{T} = \mathrm{Row}\; A
\end{equation}

因此,右 $(6)$ 得

\begin{equation}
\{\boldsymbol v_1, \cdots, \boldsymbol v_r\} \tag{7}
\end{equation}

是 $\mathrm{Row}\; A$ 的一个单位正交基。

  定理(可逆矩阵定理)设 $A$ 为 $m \times n$ 矩阵,那么下述命题中的每一个都与 $A$ 是可逆矩阵的命题等价。
u. $(\mathrm{Col}\; A)^\perp = \{\boldsymbol 0 \}$
v. $(\mathrm{Nul}\; A)^\perp = \mathbb{R}^n$
w. $\mathrm{Row}\; A = \mathbb{R}^n$
x. $A$ 有 $n$ 个非零的特征值。

  当 $\Sigma$ 包含零元素的行或列时,矩阵 $A$ 具有更简洁的分解。利用上面建立的符号,取 $r = \mathrm{rank}\; A$,将 $U$ 和 $V$ 矩阵分块称为第一块包含 $r$ 列的子矩阵:

\begin{equation}
U = \begin{bmatrix} U_r & U_{m-r} \end{bmatrix}, \; 其中 U_r = \begin{bmatrix} \boldsymbol u_1 & \cdots & \boldsymbol u_r \end{bmatrix} \\
V = \begin{bmatrix} V_r & V_{n-r} \end{bmatrix}, \; 其中 V_r = \begin{bmatrix} \boldsymbol v_1 & \cdots & \boldsymbol v_r \end{bmatrix}
\end{equation}

那么 $U_r$ 是 $m \times r$,$V_r$ 是 $n \times r$。分块矩阵的乘法表明

\begin{equation}
A = \begin{bmatrix} U_r & U_{m-r} \end{bmatrix}
\begin{bmatrix} D & 0 \\ 0 & 0 \end{bmatrix}
\begin{bmatrix} V_r^\mathsf{T} \\ V_{n-r}^\mathsf{T} \end{bmatrix} =
U_r D V_r^\mathsf{T}
\end{equation}

矩阵 $A$ 的这个分解称为 $A$ 的简化的奇异值分解。由于 $D$ 的对角线元素非零,因此 $D$ 是可逆矩阵。下面的矩阵称为 $A$ 的伪逆(也称穆尔-彭罗斯逆):

\begin{equation}
A^+ = V_r D^{-1} U_r^\mathsf{T}
\end{equation}