当前位置:  开发笔记 > 人工智能 > 正文

什么是SVD(奇异值分解)

如何解决《什么是SVD(奇异值分解)》经验,为你挑选了4个好方法。

它是如何真正减少噪音的..你能建议一些不错的教程吗?



1> Jason S..:

SVD可以从方形矩阵的几何意义理解为矢量上的变换.

考虑方形nxn矩阵M乘以向量v以产生输出向量w:

w = M*v

奇异值分解M是三个矩阵的乘积M=U*S*V,因此w=U*S*V*v.U和V是正交矩阵.从几何变换的角度来看(通过乘以它对矢量起作用),它们是旋转和反射的组合,它们不会改变它们相乘的矢量的长度.S是对角矩阵,其表示沿着n个轴中的每一个的不同缩放因子(对角线项)的缩放或挤压.

因此,将矢量v乘以矩阵M的效果是通过M的正交因子V旋转/反射v,然后将结果缩放/压缩对角因子S,然后通过M的正交因子U旋转/反映结果.

从数值观点来看,SVD是理想的一个原因是正交矩阵的乘法是可逆且极其稳定的操作(条件数是1).SVD捕获对角缩放矩阵S中的任何病态条件.



2> John D. Cook..:

使用SVD降低噪声的一种方法是进行分解,将接近零的分量设置为恰好为零,然后重新组合.

这是一个关于SVD 的在线教程.

您可能想看一下Numerical Recipes.


这也是LSA/LSI(潜在语义索引)的基础.理论是"小值"矢量实际上只是矢量的"噪声"扰动.

3> Michael Ekst..:

奇异值分解是一种获取nxm矩阵M并将其"分解"为三个矩阵的方法,使得M = U S V. S是对角线方形(唯一的非零条目在从左上角到右下角的对角线上) )包含M. U和V的"奇异值"的矩阵是正交的,这导致对SVD的几何理解,但这对于降噪不是必需的.

当M = U S V时,我们仍然具有原始矩阵M,其所有噪声都是完整的.但是,如果我们只保留k个最大奇异值(这很容易,因为许多SVD算法计算分解,其中S的条目按非递增顺序排序),那么我们有一个原始矩阵的近似值.这是有效的,因为我们假设小值是噪声,并且数据中更重要的模式将通过与较大奇异值相关联的向量来表示.

实际上,得到的近似是原始矩阵的最准确的秩k近似(具有最小的平方误差).



4> vak..:

回答这个问题:SVD是特征值/特征向量到非平方矩阵的推广.比如说,$ X\in N\times p $,则X的SVD分解产生X = UDV ^ T,其中D是对角线,U和V是正交矩阵.现在X ^ TX是一个平方矩阵,并且X ^ TX = VD ^ 2V的SVD分解,其中V等于X ^ TX和D ^ 2的特征向量,其包含X ^ TX的特征值.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有