奇异值分解(singular value decomposition,SVD),已经成为矩阵计算中最有用和最有效的工具之一,并且在最小二乘问题、最优化、统计分析、信号与图像处理、系统理论与控制等领域得到广泛应用。
基本原理
按定义来,任何一个矩阵都可以分解成下面的形式:
A = U Σ V T A=U \Sigma V^T A=UΣVT
那SVD要求的就是
U
U
U、
Σ
\Sigma
Σ、
V
T
V^T
VT,其中
U
U
U、
V
V
V是标准正交基(orthonormal),也即
U
T
U
=
I
,
V
T
V
=
I
U^T U=I, V^T V=I
UTU=I,VTV=I
他们的求法如下:
- U U U 是 A A T AA^T AAT的特征向量张成的一个矩阵
- V V V 是 A T A A^TA ATA的特征向量张成的一个矩阵
- Σ \Sigma Σ 是 A A T AA^T AAT或者 A T A A^TA ATA的特征值的平方根
其证明如下:
手算例子
所以从上面看下来,SVD分解就两步:
- 求 A A T AA^T AAT的特征向量(构成的矩阵就是 U U U)和特征值(默认由大到小排列,然后要求根号,得到的就是 Σ \Sigma Σ )
- 求 A T A A^TA ATA的特征向量(构成的矩阵就是 V V V )
举个例子: