1.SVD分解的介绍
任意矩阵都可以进行奇异值分解,对 的矩阵
进行奇异值分解可得:
其中:
:
的正交矩阵,列向量为
的特征向量。
:
的对角矩阵(奇异值矩阵),对角线上的值为奇异值(从大到小排列),其余元素为0。
:
的正交矩阵,列向量为
的特征向量。
和
都表示旋转,均为正交矩阵,即满足
奇异值矩阵 对角线上的奇异值按照从大到小的顺序排列,并且奇异值减少的特别快,在很多情况下前 10% 甚至 1% 的奇异值的和就占了全部的奇异值之和的 99% 以上。也就是说,我们可以通过保留前 k 个最大的奇异值和对应的特征向量,将矩阵近似表示为低维形式。即:
SVD分解的本质就是将一个线性变换 分解为旋转
左乘拉伸
再左乘旋转
。
的性质如下图中所示:
② 部分内容放大如下:
求矩阵 的SVD分解的步骤如下:
2.SVD分解法求解 Ax=0
问题描述:给定 的矩阵
,求解
。最小二乘解是指找到一个非零向量
,使得
能够最小化。即:
- 我们不想得到
这样的平凡解,所以加上约束
。
- 如果
乘上非 0 常数 k ,那么
也会被放大 k 倍。因此我们不考虑
的长度,只关注其方向,即令
。
结论: 的最小二乘解是
最小特征值对应的特征向量
推导过程:
其中 为正交矩阵,其列向量为
每一维特征值对应的特征向量,记为
,它们构成了一组单位正交基。而任意的
总是可以被这组单位正交基线性表示为:
即:
可得:
即:
前面约束的 意味着
,奇异值部分的
又是降序排列的,所以当取如下值时
取得最小值,此时
,
因此得到结论: 的最小二乘解是
最小特征值对应的特征向量。
参考:
【学长小课堂】什么是奇异值分解SVD--SVD如何分解时空矩阵
奇异值分解(Singular Values Decomposition,SVD)
SLAM--三角测量SVD分解法、最小二乘法及R t矩阵的判断