本文主要讲解奇异值分解的相关内容。
奇异值分解(SVD)是一种矩阵因子分解方法,常用于矩阵数据压缩。
任意一个 $m\times n$ 的矩阵都可以表示为三个矩阵的乘积(因子分解)形式,分别是 m 阶正交矩阵、由降序排列的非负的对角线元素组成的 $m\times n$ 矩形对角矩阵和 n 阶正交矩阵,这就是该矩阵的奇异值分解。矩阵的奇异值分解一定存在,但不唯一。
用公式表示就是:
$$
A=U\Sigma V^T
$$
其中 $\Sigma=diag(\sigma_1,\sigma_2,…,\sigma_p)$ ,且 $\sigma_1\geq\sigma_2\geq…\geq\sigma_p\geq0$,$p=\min(m,n)$,其中 $\sigma_i$ 被称作矩阵 A 的奇异值。
以上的奇异值分解又称完全奇异值分解,实际常用的是紧奇异值分解和截断奇异值分解,紧奇异值分解是和原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。
紧奇异值分解
$$
A=U_r\Sigma_rV_r^T
$$
其中 r 是矩阵 A 的秩, $U_r$ 是 $m\times r$ 矩阵,$V_r$ 是 $n\times r$ 矩阵,$\Sigma_r$ 是 r 阶对角矩阵。紧奇异值分解的对角矩阵 $\Sigma_r$ 的秩与原始矩阵 A 的秩相等。
截断奇异值分解
在矩阵的奇异值分解中,只取最大的 k 个奇异值(k<r,r 是矩阵的秩)对应的部分,就得到了矩阵的截断奇异值分解。在实际使用时,通常指的就是这种情况。
$$
A\approx U_k\Sigma_kV_k^T
$$
其中 $U_k$ 是 $m\times k$ 矩阵,$V_k$ 是 $n\times k$ 矩阵,$\Sigma_k$ 是 k 阶对角矩阵。紧奇异值分解的对角矩阵 $\Sigma_k$ 的秩比原始矩阵 A 的秩低。
紧奇异值分解对应着无损压缩,截断奇异值分解对应着有损压缩。矩阵的奇异值分解中,奇异值是唯一的,但是矩阵 U 和 V 不是唯一的。
- 本文作者: 俎志昂
- 本文链接: zuzhiang.cn/2020/01/27/SVD/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!