奇异值分解(Singular Value Decomposition, SVD)——快速教程

时间:2024-04-10 20:06:38

原文作者:Dr. Edel Garcia

原文地址:https://fenix.tecnico.ulisboa.pt/downloadFile/3779576344458/singular-value-decomposition-fast-track-tutorial.pdf

  • 摘要:本快速教程提供了使用奇异值分解(SVD)算法分解矩阵的说明。教程涵盖奇异值、左右特征向量以及计算矩阵的full SVD的快捷方式。
  • 关键词:奇异值分解,SVD,奇异值,特征向量,full SVD,矩阵分解
  • 问题:计算下列矩阵的full SVD:

奇异值分解(Singular Value Decomposition, SVD)——快速教程

解释一下full SVD

假设A是一个M*N的矩阵,那么得到的U是一个M*M的方阵(里面的向量是正交的,U里面的向量称为左奇异向量),奇异值分解(Singular Value Decomposition, SVD)——快速教程是一个M*N的矩阵(除了对角线的元素都是0,对角线上的元素称为奇异值),奇异值分解(Singular Value Decomposition, SVD)——快速教程(V的转置)是一个N*N的矩阵(里面的向量也是正交的,V里面的向量称为右奇异向量)。

1.将A的转置和A做矩阵乘法,得到N*N的一个方阵奇异值分解(Singular Value Decomposition, SVD)——快速教程,进行特征分解,得到的特征值和特征向量满足下式:

奇异值分解(Singular Value Decomposition, SVD)——快速教程

得到矩阵奇异值分解(Singular Value Decomposition, SVD)——快速教程的n个特征值和对应的n个特征向量v,将所有奇异值分解(Singular Value Decomposition, SVD)——快速教程的特征向量张成一个N*N的矩阵V,就是SVD公式里面的V。一般将V中的每个特征向量叫做A的右奇异向量,其可以用来降低数据的维度。

2.将A和A的转置做矩阵乘法,得到M*M的一个方阵奇异值分解(Singular Value Decomposition, SVD)——快速教程,进行特征分解,得到的特征值和特征向量满足下式:

奇异值分解(Singular Value Decomposition, SVD)——快速教程

得到矩阵奇异值分解(Singular Value Decomposition, SVD)——快速教程的m个特征值和对应的m个特征向量u,将所有奇异值分解(Singular Value Decomposition, SVD)——快速教程的特征向量张成一个M*M的矩阵U,就是SVD公式里面的U。一般将U中的每个特征向量叫做A的左奇异向量,其可以用来降低数据的数量级。

奇异值分解(Singular Value Decomposition, SVD)——快速教程

full SVD的full在于 U 和 V 都是方阵,而 U 中被虚线框出的部分的重要性都为0,对 A 其实是没有贡献的。

而Reduced SVD就是把多余的bottom去掉,对应的 V 仍然是方阵。

奇异值分解(Singular Value Decomposition, SVD)——快速教程

  • 解决步骤:

1.计算转置矩阵奇异值分解(Singular Value Decomposition, SVD)——快速教程奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

2.确定奇异值分解(Singular Value Decomposition, SVD)——快速教程的特征值并以绝对值按降序排序,对其开方得到A的奇异值。

奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

特征方程奇异值分解(Singular Value Decomposition, SVD)——快速教程

二次方程得到两个值,按降序排序奇异值分解(Singular Value Decomposition, SVD)——快速教程

特征值奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值奇异值分解(Singular Value Decomposition, SVD)——快速教程

3.通过沿对角线降序放置奇异值来构造对角矩阵S,计算它的逆矩阵奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

4.使用步骤2中的有序特征值计算奇异值分解(Singular Value Decomposition, SVD)——快速教程的特征向量,将这些特征向量沿列放置得到V,计算它的转置矩阵奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程对应的特征向量为奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程对应的特征向量为奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

5.计算奇异值分解(Singular Value Decomposition, SVD)——快速教程,为了完成证明,利用奇异值分解(Singular Value Decomposition, SVD)——快速教程计算full SVD。

奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

奇异值分解(Singular Value Decomposition, SVD)——快速教程

通过检验V和U的特征向量,可以看出它们的正交性。这可以通过计算列向量之间的点积来证明,所有点积都等于零。或者,我们可以绘制下图,并看到它们都是正交的。

奇异值分解(Singular Value Decomposition, SVD)——快速教程