奇异值分解svd

目前所有的文章都是直接给出了svd的应用比如图压缩的例子,然后就告诉你奇异值分解就是这个意思可以做数据的压缩等等,但是为什么?为什么可以做图片的压缩?换句话说我们这么干了之后为什么图片会在最大程度上代表原图?以下是纯系个人形象理解 难等大雅之堂!

奇异值分解的公式 X=UEV'

实际工程中遇到的数据大多数为M*N 且m>n 所以此处不再讨论其他乱七八糟的情形

矩阵本身代表了对空间的一种线性变化,我们知道一个图片其实就是一矩阵,我们并不是说图片代表了一种变换只不过我们可以按照矩阵的特性去对图片进行研究,这也是图像处理的一个前提.

 线性变化都包括了什么?其实所有的线性变化形式可以总结为旋转和拉伸(这个没有查到相关书籍,我只能想到这两种基本变换(如果你知道其他的变化形式请留言告知我 万分感谢!)

回到咱们的数据矩阵X  我们知道所有满秩方阵没有改变原有空间的维数,但是m*n矩阵一定是对空间的维数进行了改变,所以我们就可以把矩阵x对应的空间变换 看成4部分来说 :

    第一部分 对原有空间的旋转

    第二部分 对原有空间不同纬度的拉伸 此处包含了对维度的删减或者增加 (把某个维护的数据全部压缩为零 这个维度不就没了吗)

    第三部分 对新的变换了维度的空间进行拉伸 其实这一部分完全可以和上一部分组合在一起.

    第四部分 对新的空间的旋转变化

其实这样一系列变化如果用公式来表达的话就是我们的奇异值分解公式也就是 U代表了纯粹的在原有维数空间的旋转,U的列向量分别表示了不同纬度的旋转方向,E是一个对角阵表示了不同纬度拉伸的比例(很显然拉伸比例越大的维度的变换越能代表整个变换,这个点我认为对svd的直观理解至关重要)V代表了对新维度空间的变换,V''的列向量分别表示了各个维护的旋转方向.

应用解析:

    1 图片压缩 我们选取E比较大的那几个维度的U E V 重新组成变换 ,这个时候我们认为新生成的变换能够较大程度的代表原有变换,实际上svd进行图片的压缩效果 也告诉了我们这样一个事实.

    2 pca的计算 这里是一个十分取巧的做法 我们知道在正常的做pca的过程中我们需要计算数据协方差矩阵的特征值和特征向量 然后用原有数据降维 我们知道去中心化后的数据的协方差矩阵可以用XX''(本文"代表数据的转置)来代替,关于这一点其实在吴恩达老师的机器学习视频中有所体现.svd 公式告诉我们 XX' = vE^2v''  而协方差矩阵的形式为 qvq''  形式上的高度一致性告诉我们  svd中的 v就是我们协方差矩阵的q  e^2就是协方差矩阵特征矩阵的平方

    3 推荐系统的应用

    连接地址:https://yanyiwu.com/work/2012/09/10/SVD-application-in-recsys.html

    因为例子中给了一个完全不明白怎么回事的公式 所以就不在细说了还需要琢磨

    奇异值分解svd_第1张图片

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