奇异值分解(Singular Value Decomposition)是线性代数中一种重要的矩阵分解,其在图形学、统计学、推荐系统、信号处理等领域有重要应用。本讲我们将介绍奇异值分解在图形压缩中的运用,并将简单介绍下Matlab对于图形和视频的处理。
文章目录
线性代数基础知识回顾
奇异值分解
奇异值分解的例子
利用SVD对数据进行"降维"
保留原矩阵的特征比例
Matlab进行奇异值分解:[U,S,V] = svd(A)
定义我们自己的mysvd函数
Matlab图形的处理
图片压缩的函数
SVD压缩后的效果
将视频分离为图片
批量处理文件夹内的所有图片
SVD的评价和应用
SVD(奇异值分解):
1.优点:简化数据,去除噪声点,对数据降维(减少秩);
2.缺点:数据的转换可能难以理解;
3.适用于数据类型:数值型。
通过SVD对数据的处理,我们可以对原始数据进行精简,这样做实际上是去除了噪声和冗余信息,以此达到了优化数据的目的。
SVD的另外两个重要应用:
潜在语义索引:最早的SVD应用之一就是信息检索,我们称利用SVD的方法为潜在语义检(LSI)或隐形语义分析(LSA),有兴趣可以去阅读吴
军老师的《数学之美》。
推荐系统:SVD的另一个应用就是推荐系统,较为先进的推荐系统先利用SVD从数据中构建一个主题空间,然后再在该空间下计算相似度,以此提
高推荐的效果。