正文共:1324 字 76 图 预计阅读时间: 4 分钟
前文推送
30. 奇异值分解
■ 奇异值分解SVD的定义
奇异值分解(SVD,singular value decomposition),也是对矩阵进行分解,但是和特征分解不同,SVD 并不要求要分解的矩阵为方阵。假设我们的矩阵
是一个
的矩阵,那么我们定义矩阵的SVD为
SVD分解
其中,
,
为正交矩阵,
为对角矩阵(sigma, 是标准差符号
的大写形式)
SVD 的矩阵空间的含义,实际上就是在行空间中找到一组正交的向量,通过矩阵
映射到列空间中的正交向量,而如果希望在行空间和列空间中都得到单位正交向量,就会存在一个比例系数,来使得映射后的正交向量为单位正交向量,即
■ 奇异值分解SVD的求解
那么对于
的矩阵
的SVD 分解如何求解
,
,
呢?
我们知道
和
都是方阵,而对于方阵我们有对角化公式,这就与 SVD 对应了起来。
也就是说求得
的特征值和特征向量,利用特征向量构建单位正交基,得到正交矩阵,也就得到了
, 将特征值矩阵开方就得到了伸缩系数构成的对角阵
。同样地求得
的特征值和特征向量即得到
。就得到了
的 SVD 分解。
举个
满秩的列子,
求解得到特征值和特征向量为
即得到
继续求解
的特征值和特征向量
求解得到特征值和特征向量为
即得到
即最终的结果为
【结论】
即便是对于
为奇异矩阵的情况,我们也可以进行 SVD 分解,只是这时候对 4 个子空间都有涉及。
设矩阵的秩为
,则
中
为行空间的单位正交基向量,
为零空间中的单位正交基向量,
为列空间的单位正交基向量,
为左零空间的单位正交基向量。
举个奇异矩阵的例子
求解得到特征值和特征向量为
即得到
继续求解
的特征值和特征向量
求解得到特征值和特征向量为
即得到
即最终的结果为
【结论】
实际上这也是 SVD 分解特别有用的地方,如果
为奇异矩阵,原分解的计算量显著降低。
如果只考虑特征值绝对值比较大的 k 个显著特征(奇异值),则可以继续减小
的矩阵描述,使用更小的矩阵描述出最接近的
SVD降维
这就是降维(PCA)的本质。 (https://www.cnblogs.com/pinard/p/6251584.htm)
2011年奇异值分解的运算习题课
(http://open.163.com/movie/2016/4/D/4/MBKJ0DQ52_MBQUMH1D4.html)
对矩阵
进行 SVD 分解
首先计算
,计算其特征值和特征向量,得到
和
计算其特征值和特征向量
由此得到
对角阵为
分别将
值代入求解
,即得到特征向量分别为
由此得到
再根据 SVD 基变换
,即得到
综上,即为
的SVD 分解