SVD — 奇异向量分解
SVD, 奇异向量分解 (Singular Vector Decomposition). 对于 ( 不一定是方阵),都可以写成: 。 即:
其中:
- U, V 是正定矩阵,即 , .
- , 是 的特征值,当然也是 的特征值。 的排列顺序是按特征值的大小降序排列的。
- 是 的特征向量,是 A 列子空间上的向量。
- 是 的特征向量,是 A 行子空间上的向量。
要求 A 是非方阵,而组成 对称矩阵。
对称矩阵
为什么要是对称矩阵那?因为对称矩阵有以下性质:
- 对称矩阵的特征值都是实数,即:.
- 若特征值 , 则分别对应的特征向量是正交的。
- 其特征值组成的特征向量矩阵 Q 是正交的,即
根据上面的两个性质,则可以证明对称矩阵一定可以对角化。
为什么要对角化?
对角化需要矩阵是方阵。当方阵矩阵 A 有 n 个不相关的特征向量时 组成 S , 则有
- S 是特性向量矩阵。
- 是特征值矩阵。
使用对角化的矩阵可以来计算矩阵的变化率,和观察矩阵的状态。因为 , 利用这个式子我们可以计算如 Fibonacci 数列, Markov 矩阵等。
- Fibonacii 数列的增长率就是
[1 1; 1 0]
矩阵的特征值,约等于 1.618 - Markov 矩阵为 1 的特征值对就的特征向量是稳态特征向量 (steady state), 多次增长后所以列都会趋向于这稳定状态。
关于特征值和特征向量
特征向量是最能表示出矩阵特征的向量。
向量 乘上A 不会改变向量的方向,就是 A 的特征向量。即 。 基中上 是特征值, 是特征向量。
对于特征值和特征向量的求解方法是:
- 求解 求出特征值。
- 求解 求出特征向量。
下面特征值的两个性质可以作为验证所示的特征值是否正确。
- 和等于迹
- 积等于行列式的值
两个定义:
- 当 时,A 称为正定矩阵。
- 当 时,A 称为半正定矩阵。
LU 分解
顺便回顾下 LU 分解 (LU Decomposition, LU Factorization)。求解线性方程时,可以把 A 写成 A = LU 的形式。 其中 U 是上三角矩阵,而 L 是下三角矩阵。上面的矩阵通过高斯消元,矩阵的初等变换求得。
- U 第一行的第一个非零元素称为
pivot
。 - L 第一行的最后一个非零元素者是 1.
, L 是初等变换矩阵的逆。
SVD 的应用
SVD 可以应用在图像压缩和数据压缩中。 压缩一个图像 (256 x 512) 一个 Naive 的方法的是将相邻的 4 个像素合成一个象素,即压缩比例是 4:1。这种 Naive 的没有经过分析而进行的粗暴压缩方法容易造成很严重的图像失真。
通过 SVD 我们可以将 (256 x 512) 压缩成 (256 + 512) 即压缩比例是 170 : 1。我们可以用 5 个秩为 1 的矩阵来表示。用 SVD 表示出来就是前 5 个最大的特征值。