奇异值分解(SVD)

一些基础

关于正交矩阵

正交矩阵是指各行所形成的多个向量间任意拿出两个,都能正交关系式,正交矩阵的重要性质是AT=A-1,向量正交是指两个向量的内积为0,也就是三维空间上两个向量是垂直的,任意一组基都可以使用施密特正交化方法得到正交基,施密特正交化的公式很复杂,这篇文章写的很好http://blog.csdn.net/newworld123made/article/details/51449739
不再赘述。

关于对称矩阵

对称矩阵的特征值均为实数,特征向量均正交,最重要的性质是AT=A,特征向量组成正交矩阵Q对于正定的对称阵来说,可以分解为A=QΛQT,Q是正交的。Λ是对称的,里面是特征值。

SVD

奇异值分解是矩阵分解最完美的分解方法,对于任意的矩阵都可以分为以下形式:


其中μ是一个正交阵,Σ是对称阵,V是一个正交阵,而SVD其实就是从一组正交基到另一组正交基的改变,一组正交基就是μ,另一组就是V,而反映变化的矩阵就是A我们假设μ是单位正交的,那么我们从V经过A的变化变到μ可以表示为:


而σ是对称的,改写为Σ就有了我们所说的SVD,为啥是对称的,σ表示的是每一组基变化的系数,所以是这个样子的:


所以对称了。

怎么求SVD

我们先求V那么就先消去μ我们从上面的正定对称矩阵分解的良好性质得到启发,可以先求ATA,推导一下:

很明显,因为μ是正交的,所以μTμ=E,而Σ上面表示了,所以ΣTΣ就是原式对角的平方,仍然对称,此时就变成了:

此时的ATA是正定对称阵,所以V就是ATA的特征向量组成的矩阵,Σ2就是ATA的特征值组成的对角阵。求完V可以直接求μ,或者同理对于AAT 求一边,就有了SVD。 ,Σ里的值就是奇异值

SVD有什么用?

机器学习中的PCA也可以用SVD来解释,具体详见PCA,会给出特征值以及SVD两种解释。
奇异值分解可以将一个很大的矩阵分解为三个较为简单的矩阵,而且这三个矩阵都有很好的性质。可以加快其他算法计算大规模矩阵的速度。SVD是有并行算法的,非并行时间复杂度是n3,并行计算速度提高 下面这篇文章就是并行的:
http://cdmd.cnki.com.cn/Article/CDMD-10285-1012286387.htm

你可能感兴趣的:(奇异值分解(SVD))