奇异值分解
线性代数知识回顾
对于一个n阶对称矩阵A,如果我们求出了矩阵A的n个特征值,并且求出了这n个特征值对应的特征向量,如果这n个特征向量线性无关,那么矩阵A可被特征分解为:
其中Q为n个特征向量组成的矩阵,Q = (q1,q2,….,qn) 其中qi为特征向量,Σ为n个特征值组成的对角矩阵
上式也称为相似对角化。
然后我们把Q中的特征向量给它单位化并正交化,即满足||qi|| = 1,qi*qj = 0,此时的Q矩阵为正交矩阵,也叫酉(you)矩阵,即满足,这个时候A又可被特征分解为
上式也称为正交对角化。
但是,上面所述的特征分解要满足A矩阵为n阶方阵,要正交对角化还要满足A矩阵为对称矩阵,那么对于任意一个n*m阶的矩阵我们是否可以对它进行特征分解呢,这就引出了SVD。因此SVD的作用也就是解决了对于任意n*m阶矩阵的特征分解。
SVD分解证明
SVD分解(Singular Value Decompositionm,简称SVD),又称奇异值分解,
先上结论:对于任意一个矩阵A,我们都可以将它分解为,其中U,V是正交矩阵,∑是对角矩阵,其主对角线上的每个值我们称为奇异值。
前提知识:
对于任意一个m×n的矩阵A,可知(n阶)和(m阶)都是对称矩阵,由实对称矩阵必可相似对角化可知,必有,,并且Σ中是对称矩阵的特征值,Q的列向量是对称矩阵n或m个正交的特征向量。
我们设的一组正交的单位特征向量为v(v1,v2,v3,...,vN),那么有
两边同时左乘A得
所以可知Avi为矩阵的特征向量,λi也为矩阵的特征值,因此和特征值相同,但是特征向量不同。
并且,所以即为矩阵的单位正交向量(后文用到)。
证明三步法:
- 先构造V和矩阵
- 再构造U矩阵
- 证明
(为了方便下面用在word中推导)
第一步:
第二步:
第三步:
具体SVD分解的例子
这里我们用一个简单的例子来说明矩阵是如何进行奇异值分解的。我们的矩阵A定义为:
首先求出和
进而求出 的特征值和特征向量:
再求出的特征值和特征向量:
SVD分解的应用
- 图片压缩:在图像处理中,SVD分解常被用于图像压缩。通过对图像矩阵进行SVD分解,可以得到较低秩的近似矩阵,从而减少存储空间和传输带宽。这种方法在JPEG2000等图像压缩算法中得到广泛应用。
- 对极几何分解本质矩阵求R,t
- 推荐系统:SVD分解在推荐系统中也有重要的应用。通过对用户评分矩阵进行SVD分解,可以将用户和物品映射到一个隐空间中,并预测用户对未评分物品的喜好程度。基于SVD的协同过滤算法在Netflix Prize竞赛中取得了很大成功。
- 数据降维:SVD分解可以将高维数据降维到低维,保留数据的主要特征。这在机器学习和数据挖掘任务中非常有用,可以提高计算效率并减少存储需求。例如,在主成分分析(PCA)中,SVD分解被广泛用于实现数据降维。