📝笔记:SLAM常见问题(五):Singular Value Decomposition(SVD)分解
SVD分解就是一种矩阵拆解术,它能够把任意矩阵
其中,left single vectors
,right single vectors
;
MIT Gilbert Strang
教授对 SVD 讲解得很清晰,如下:
此外,Barry讲解的SVD也很精彩。
刚才说了矩阵
形式: skinny SVD 与 full SVD
一张图可以解释了,上面介绍的SVD形式为skinny SVD
或者
thin SVD
,即仅保留了奇异值矩阵 full SVD
保留了奇异值矩阵的非零部分,对应的
通常情况下,skinny SVD
使用较多。
此外,还有向量表示形式,如上图最后一行的表示形式,此处不做赘述。
计算
计算
所以
降维
其中
实战
数字例子
有矩阵A,对其进行SVD分解,已知:
对以上两式做特征值分解得到:
1 | V = |
奇异值:
这与直接调用svd(A)
结果是一致的(可能差个正负号)。
最小二乘 least square问题
MIT Gilbert Strang
教授介绍了4种方式来求解最小二乘问题。
问题:
通常的解法如下:
其中
我们对A进行SVD分解,即
其中
所以以上最小二乘的解为:
我们看一下最小二乘的error,
定义
所以
就是 在 上的正交投影
再看一下error
由于所奇异矩阵
所以:
进而最小二乘的误差为
参考视频《Solving the Least-Squares Problem Using Geometry》
矩阵近似
祭上亲爱的Battle Angel Alita。
原始图像尺寸
下图是保留的奇异值数量与图像质量的关系图,保留的奇异值越多,图像质量越高,图像压缩效果越不明显;反之,奇异值越少,图像质量越差,图像压缩效果越明显。这只是一种非常简单的图像压缩算法,仅作原理验证使用,在实际中用到的概率不是很大。
代码
1 | %% simple test of using SVD decomposistion |
参考
- A Singularly Valuable Decomposition The SVD of a Matrix
- Singular Value Decomposition (SVD) video1,video2
- 李宏毅关于SVD的介绍,PPT,课程列表