什么是SVD(奇异值分解)

问题描述 投票:33回答:5

它实际上如何减少噪音..您能建议一些不错的教程吗?

math matrix linear-algebra svd
5个回答
49
投票

SVD可以从平方矩阵的几何意义上理解为向量的变换。

考虑一个正方形n x n矩阵M乘以向量v以产生输出向量w:

w = M*v

奇异值分解M是三个矩阵M=U*S*V的乘积,所以w=U*S*V*v。 U和V是正交矩阵。从几何变换的角度(通过乘以向量作用于向量),它们是旋转和反射的组合,不会改变它们正乘的向量的长度。 S是对角矩阵,代表沿n轴中的每个轴以不同的缩放因子(对角项)进行缩放或压缩。

因此,将向量v与矩阵M左乘的效果是将v旋转/反射M的正交系数V,然后将结果缩放/压缩对角线因子S,然后旋转/反射结果的M正交系数。 U。

从数值的角度来看,SVD是理想的一个原因是与正交矩阵的乘法是可逆的extremely stable运算(条件数为1)。 SVD捕获对角缩放矩阵S中的任何病态。


18
投票

使用SVD减少噪声的一种方法是进行分解,将接近零的分量设置为正好为零,然后重新组成。

这是SVD上的online tutorial

您可能想看看Numerical Recipes


8
投票

奇异值分解是一种方法,用于获取nxm矩阵M并将其“分解”为三个矩阵,使得M = U V。 S是对角线正方形(从左上角到右下角的对角线上只有非零项)矩阵包含M的“奇异值”。U和V是正交的,这导致了对SVD的几何理解。降噪不是必需的。当M = U

S

V时,我们仍然具有原始矩阵M及其所有噪声。但是,如果仅保留k个最大的奇异值(这很容易,因为许多SVD算法都会计算分解,其中S的项以非递增顺序排序),那么我们就可以近似原始矩阵。之所以可行,是因为我们假设较小的值是噪声,并且数据中更重要的模式将通过与较大的奇异值关联的矢量来表示。实际上,所得的近似值是原始矩阵的最精确的k阶近似值(具有最小的平方误差)。


6
投票
要回答标题问题:SVD是特征值/特征向量到非平方矩阵的概括。说,$ X \ in N \ x p $,则X的SVD分解得出X = UDV ^ T,其中D为对角线,U和V为正交矩阵。现在X ^ TX是平方矩阵,并且X ^ TX = VD ^ 2V的SVD分解,其中V等效于X ^ TX的特征向量,D ^ 2包含X ^ TX的特征值。

4
投票
SVD还可以用于极大地简化将任意模型(用公式表示)对数据(相对于两个变量并以矩阵表示)的全局(即,同时观察所有观测值)。例如,数据矩阵

A

© www.soinside.com 2019 - 2024. All rights reserved.