原文作者:Dr. Edel Garcia
- 摘要:本快速教程提供了使用奇异值分解(SVD)算法分解矩阵的说明。教程涵盖奇异值、左右特征向量以及计算矩阵的full SVD的快捷方式。
- 关键词:奇异值分解,SVD,奇异值,特征向量,full SVD,矩阵分解
- 问题:计算下列矩阵的full SVD:
解释一下full SVD:
假设A是一个M*N的矩阵,那么得到的U是一个M*M的方阵(里面的向量是正交的,U里面的向量称为左奇异向量),是一个M*N的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),(V的转置)是一个N*N的矩阵(里面的向量也是正交的,V里面的向量称为右奇异向量)。
1.将A的转置和A做矩阵乘法,得到N*N的一个方阵,进行特征分解,得到的特征值和特征向量满足下式:
得到矩阵的n个特征值和对应的n个特征向量v,将所有的特征向量张成一个N*N的矩阵V,就是SVD公式里面的V。一般将V中的每个特征向量叫做A的右奇异向量,其可以用来降低数据的维度。
2.将A和A的转置做矩阵乘法,得到M*M的一个方阵,进行特征分解,得到的特征值和特征向量满足下式:
得到矩阵的m个特征值和对应的m个特征向量u,将所有的特征向量张成一个M*M的矩阵U,就是SVD公式里面的U。一般将U中的每个特征向量叫做A的左奇异向量,其可以用来降低数据的数量级。
full SVD的full在于 U 和 V 都是方阵,而 U 中被虚线框出的部分的重要性都为0,对 A 其实是没有贡献的。
而Reduced SVD就是把多余的bottom去掉,对应的 V 仍然是方阵。
- 解决步骤:
1.计算转置矩阵和。
2.确定的特征值并以绝对值按降序排序,对其开方得到A的奇异值。
特征方程
二次方程得到两个值,按降序排序
特征值
奇异值
3.通过沿对角线降序放置奇异值来构造对角矩阵S,计算它的逆矩阵。
4.使用步骤2中的有序特征值计算的特征向量,将这些特征向量沿列放置得到V,计算它的转置矩阵。
对应的特征向量为
对应的特征向量为
5.计算,为了完成证明,利用计算full SVD。
通过检验V和U的特征向量,可以看出它们的正交性。这可以通过计算列向量之间的点积来证明,所有点积都等于零。或者,我们可以绘制下图,并看到它们都是正交的。