Math 什么是SVD(奇异值分解)

Math 什么是SVD(奇异值分解),math,matrix,linear-algebra,svd,Math,Matrix,Linear Algebra,Svd,它实际上是如何减少噪音的。你能推荐一些不错的教程吗?使用SVD减少噪音的一种方法是进行分解,将接近零的组件设置为零,然后重新组合 这里有一个关于SVD的报道 你可能想看看 奇异值分解可以从几何意义上理解为方阵在向量上的变换 考虑一个平方n x n矩阵M乘以一个向量v得到一个输出向量w: w = M*v 奇异值分解M是三个矩阵的乘积M=U*S*V,因此w=U*S*V*V。U和V是正交矩阵。从几何变换的角度来看(通过乘以向量作用于向量),它们是旋转和反射的组合,不会改变它们所乘向量的长度。S是一个

它实际上是如何减少噪音的。你能推荐一些不错的教程吗?

使用SVD减少噪音的一种方法是进行分解,将接近零的组件设置为零,然后重新组合

这里有一个关于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是可取的一个原因是正交矩阵的乘法是可逆的and运算(条件数为1)。SVD捕捉到对角缩放矩阵S中的病态性。

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

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

对于M=USV,我们仍然有原始矩阵M,其所有噪声保持不变。然而,如果我们只保留k个最大奇异值(这很容易,因为许多SVD算法计算的分解中S的条目是按非递增顺序排序的),那么我们就得到了原始矩阵的近似值。这是因为我们假设较小的值是噪声,数据中更重要的模式将通过与较大奇异值相关的向量来表示


事实上,得到的近似值是原始矩阵的最精确的秩k近似值(具有最小平方误差)。

SVD还可以用于大大简化任意模型(以公式表示)对数据(关于两个变量并以矩阵表示)的全局(即同时对所有观测值)拟合.
例如,数据矩阵A=D*MT,其中D表示系统的可能状态,M表示系统在某个变量(如时间)下的演变情况。
通过SVD,A(x,y)=U(x)*S*VT(y),因此D*MT=U*S*VT
然后D=U*S*VT*MT+,其中“+”表示伪逆。
然后,我们可以为进化建立一个数学模型,并将其拟合到V列中,每个列都是模型组件的线性组合(这很容易,因为每个列都是1D曲线)。这将获得生成M的模型参数?(表示它基于配件)。
M*M?+*V=V?允许残差R*S2=V-V?最小化,从而确定DM

很酷吧

还可以检查UV列,以收集有关数据的信息;例如,V列中的每个拐点通常表示模型的不同组成部分


最后,实际解决您的问题时,需要注意的是,尽管每个连续奇异值(对角矩阵的元素S)及其伴随向量UV的信噪比较低,但这些“不太重要”的模型组件分离向量实际上更明显。换句话说,如果数据是由一系列状态变化描述的,这些状态变化遵循指数或其他任何形式的总和,则每个指数的相对权重在较小的奇异值中更接近。换言之,后面的奇异值具有不太平滑(噪声更大)的向量,但每个分量所表示的变化更为明显。

这是一个离题的问题,如果你想了解理论,请访问维基百科-它们有基本的描述和参考。如果您需要有关特定编程主题的帮助,请重申问题(即如何使用Lapack获得hermitian矩阵的奇异值分解等)。请不要关闭。这远比这个网站上的一些敏感问题更与编程相关。经过一些思考,我不得不同意,并删除-1:)这也是LSA/LSI(潜在语义索引)的基础。理论上,“小值”向量实际上是