在本章中,我们将考虑 m 行 n 矩阵 A 的奇异值分解(SVD)。我们假设不失一般性,m \geq n;如果 m < n,则考虑 A^*。如第§2.4节所述,这种分解可以写成
A = U \Sigma V^*, \tag{6.1}
其中
U = [u_1,\ldots,u_m] 是一个 m 行 m 列的酉矩阵,
V = [v_1,\ldots,v_n] 是一个 n 行 n 列的酉矩阵,
而 \Sigma 是一个 m 行 n 列的对角矩阵,其对角线元素为
\Sigma_{ii} = \sigma_i,i=1,\ldots,n。
u_i 是左奇异向量,
v_i 是右奇异向量,
\sigma_i 是奇异值。
奇异值是非负的,并按降序排列,即
\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_n \geq 0。
非零奇异值的数量 r 是 A 的秩。
如果 A 是实数矩阵,U 和 V 也是实的且正交的。
A = U \Sigma V^* 也可以写成 AV = U \Sigma 或
Av_i = u_i \sigma_i,i=1,\ldots,n。
A = U \Sigma V^* 也可以写成
A^* U= V \Sigma^* 或
A^*u_i = v_i \sigma_i,i=1,\ldots,n
以及 A^*u_i = 0,i=n+1,\ldots,m。
有几种“较小”版本的SVD经常被计算。
设
U_t = [u_1,\ldots,u_t] 是一个 m 行 t 列的矩阵,包含前 t 个左奇异向量,
V_t = [v_1,\ldots,v_t] 是一个 n 行 t 列的矩阵,包含前 t 个右奇异向量,
以及
\Sigma_t = {\rm diag}(\sigma_1 ,\ldots, \sigma_t) 是一个 t 行 t 列的矩阵,包含前 t 个奇异值。
那么我们有以下几种SVD类型。
瘦SVD。
A = U_n \Sigma_n V_n^* 是 A 的瘦(或经济型)SVD。
当 n \ll m 时,瘦SVD比全SVD存储更小且计算更快。
紧凑SVD。
A = U_{r} \Sigma_{r} V_{r}^* 是 A 的紧凑SVD。
当 r \ll n 时,紧凑SVD比瘦SVD存储更小且计算更快。
截断SVD。
A_t = U_{t} \Sigma_{t} V_{t}^*
是 A 的秩-t 截断(或部分)SVD,
其中 t < r。
在所有秩-t 矩阵 B 中,B=A_t 是唯一的最小化
\Vert A - B \Vert _F 的矩阵,并且也最小化(可能不唯一)
\Vert A - B \Vert _2。
当 t \ll r 时,截断SVD比紧凑SVD存储更小且计算成本更低,是应用中最常见的SVD形式。
考虑 A^* A,这是一个 n 行 n 列的厄米矩阵。
那么 A^*A = V (\Sigma^*\Sigma) V^* 的特征分解,
其中
A = U \Sigma V^* 是 A 的SVD。
注意
\Sigma^*\Sigma = {\rm diag}(\sigma_1^2 , \ldots , \sigma_n^2)。
换句话说,A^* A 的特征向量是 A 的右奇异向量,
A^* A 的特征值是 A 的奇异值的平方。