今天,来学习一种很重要的矩阵分解,叫做奇异值分解(Sigular Value Decomposition),简称SVD。
Contents
1. 认识SVD
2. SVD与广义逆矩阵
3. SVD与最小二乘法
4. SVD与数据压缩
5. SVD与潜在语义分析
6. SVD与低阶近似
1. 认识SVD
在认识SVD之前,先来学习两个相关的概念:正交矩阵和酉矩阵。
如果,则阶实矩阵称为正交矩阵。而酉矩阵是正交矩阵往复数域上的推广。
判断正交矩阵和酉矩阵的充分必要条件是:。或者说正交矩阵和酉矩阵的共轭转置和它的
逆矩阵相等。
对任意矩阵,都能被奇异值分解为
其中是的正交矩阵,是的正交矩阵,是由个沿对角线从大到小排列的奇异值
组成的方阵,就是矩阵的秩。奇异值分解是一种正交矩阵分解法。
2. SVD与广义逆矩阵
在认识矩阵的广义逆之前,先来回顾一下方阵的逆。
对于一个的方阵,如果存在一个矩阵,使得,那么方阵的逆为。
那么对于非方阵来说情况又是怎样的? 比如对于的矩阵,它的逆是怎样计算的?这就是我将要
讨论的广义逆矩阵。
矩阵的广义逆由Moore在1920年提出,后来在1955年经过Penrose发展得到如下定义
对任意复数矩阵,如果存在的矩阵,满足
则称为的一个Moore-Penrose逆,简称广义逆,记为。并把上面四个方程叫做Moore-Penrose
方程,简称M-P方程。
由于M-P的四个方程都各有一定的解释,并且应用起来各有方便之处,所以出于不同的目的,常常考虑满足
部分方程的,叫做弱逆,弱逆不唯一。为了引用方便,下面给出广义逆矩阵的定义
对于的矩阵,若存在的矩阵,满足M-P方程中的全部或者其中的一部分,则称为
的广义逆矩阵。
实际上有结论:如果满足M-P方程中的全部四个条件,那么得到的矩阵是唯一的,如果只满足部分条件,
那么得到的矩阵不唯一。也就是说一个矩阵的Moore-Penrose逆是唯一的。
而广义逆的计算可以利用的SVD分解得到,假设矩阵的SVD分解为
那么,不难验证
有了广义逆矩阵,那么就可以用来求解线性方程组,假设现在已经知道了矩阵的广义逆,
如果矩阵的秩是,则其唯一解是,如果秩小于,则有无穷多组解,其中最小范数解仍然是
,通常我们关心的也就是这个解。
3. SVD与最小二乘法
最常见的最小二乘问题是线性最小二乘问题。比如在三维空间有如下四个点
现在用一个方程来拟合这四个点,这就是典型的线性最小二乘问题。
接下来可以列出超定方程组,如下
那么,进一步得到
接下来用一个定理求最小二乘解,定理内容如下
如上述超定系数方程组,一般情况下它是没有解的,但是我们可以让尽可能地小。解下面的方程
可以求得方程的最小二乘解。
这样最小二乘解又变成了解线性方程组问题,可以先用SVD来求出广义逆矩阵,然后解出。最终求得解为
4. SVD与数据压缩
SVD在数据压缩方面有广泛的应用,比如图片压缩。我们知道电脑上的图像都是由一个一个像素点构成的,
所以存储一张1000*622的图片,实际上是存储一个1000*622的矩阵,即一共622000个元素,这是一个
很大的矩阵,实际上可以用奇异值分解并通过低阶近似的思想对图片进行压缩,但这是一种有损压缩,不
过不影响图片的大致效果,链接:http://cos.name/2014/02/svd-and-image-compression/
又比如在自然语言处理中,最常见的两个问题是将文本按主题归类和将词汇表中的字词按近义词归类,这
两个问题都可以用SVD完美一次性地解决。首先,用一个大矩阵来描述成千上万篇文章和上百万词的关
联性,在这个矩阵中,每一行代表一篇文章,每一列对应一个词。如果有个词,篇文章,那么就是如
下的矩阵
其中第行第列的元素,是字典中第个词在第篇文章中出现的加权词频,比如用词的TF-IDF值。
这个矩阵可能会很大,如果进行奇异值分解后,上述的两种分类也就完成了,而且存储空间也会减少很多。
5. SVD与潜在语义分析
潜在语义分析(Latent Semantic Analysis),简称LSA,是一种用于自动地实现知识提取和表示的
理论和方法,它通过对大量文本集进行统计分析,从中提取出词语的上下文使用含义。在技术上,它同向
量空间模型类似,都是采用空间向量表示文本,但通过SVD分解等处理消除了同义词,多义词的影响,提
高了后续处理的精度。
关于潜在语义分析的论文,可以百度:潜在语义分析理论及其应用。
6. SVD与低阶近似
关于SVD的低阶近似参考:http://m.blog.csdn.net/blog/wangran51/7408414
更多关于SVD的文章参考
http://www.cnblogs.com/zhangchaoyang/articles/2575948.html
http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html
http://www.cnblogs.com/FengYan/archive/2012/05/06/2480664.html