美文网首页
SVD(奇异值分解)(转)

SVD(奇异值分解)(转)

作者: zelda2333 | 来源:发表于2021-10-25 20:32 被阅读0次

原链接:SVD(奇异值分解)小结--静哥哥

1、特征值分解(EVD)

实对称矩阵

在理角奇异值分解之前,需要先回顾一下特征值分解,如果矩阵A是一个m×m实对称矩阵(即A=A^T),那么它可以被分解成如下的形式

A = Q\Sigma Q^T=Q\left[ \begin{matrix} \lambda_1 & \cdots & \cdots & \cdots\\ \cdots & \lambda_2 & \cdots & \cdots\\ \cdots & \cdots & \ddots & \cdots\\ \cdots & \cdots & \cdots & \lambda_m\\ \end{matrix} \right]Q^T \tag{1-1}

其中Q为标准正交阵,即有QQ^T=IΣ为对角矩阵,且上面的矩阵的维度均为m×mλ_i称为特征值,q_iQ(特征矩阵)中的列向量,称为特征向量。

注:I在这里表示单位阵,有时候也用E表示单位阵。式(1-1)的具体求解过程就不多叙述了,可以回忆一下大学时的线性代数。简单地有如下关系:Aq_i=λ_iq_i,q^T_iq_j=0(i≠j)

一般矩阵

上面的特征值分解,对矩阵有着较高的要求,它需要被分解的矩阵A为实对称矩阵,但是现实中,我们所遇到的问题一般不是实对称矩阵。那么当我们碰到一般性的矩阵,即有一个m×n的矩阵A,它是否能被分解成上面的式(1-1)的形式呢?当然是可以的,这就是我们下面要讨论的内容。

2、奇异值分解(SVD)

2.1 奇异值分解定义

有一个m×n的实数矩阵A,我们想要把它分解成如下的形式
A=UΣV^T \tag{2-1}

其中UV均为单位正交阵,即有UU^T=IVV^T=IU称为左奇异矩阵V称为右奇异矩阵Σ仅在主对角线上有值,我们称它为奇异值,其它元素均为0。上面矩阵的维度分别为U∈R^{m×m}, Σ∈R^{m×n}, V∈R^{n×n}

一般地Σ有如下形式
\Sigma = \left[ \begin{matrix} \sigma_1 & 0 & 0 & 0 & 0\\ 0 & \sigma_2 & 0 & 0 & 0\\ 0 & 0 & \ddots & 0 & 0\\ 0 & 0 & 0 & \ddots & 0\\ \end{matrix} \right] _{m\times n}

图1-1 奇异值分解

对于奇异值分解,我们可以利用上面的图形象表示,图中方块的颜色表示值的大小,颜色越浅,值越大。对于奇异值矩阵Σ,只有其主对角线有奇异值,其余均为0。

2.2 奇异值求解

正常求上面的U,V,Σ不便于求,我们可以利用如下性质
AA^T=UΣV^TVΣ^TU^T=UΣΣ^TU^T \tag{2-2}
ATA=VΣ^TU^TUΣV^T=VΣ^TΣV^T \tag{2-3}

注:需要指出的是,这里ΣΣ^TΣ^TΣ在矩阵的角度上来讲,它们是不相等的,因为它们的维数不同ΣΣ^T∈R^{m×m},而Σ^TΣ∈R^{n×n},但是它们在主对角线的奇异值是相等的,即有
\Sigma\Sigma^T = \left[ \begin{matrix} \sigma_1^2 & 0 & 0 & 0\\ 0 & \sigma_2^2 & 0 & 0\\ 0 & 0 & \ddots & 0 \\ 0 & 0 & 0 & \ddots \\ \end{matrix} \right]_{m\times m}\quad\Sigma^T\Sigma = \left[ \begin{matrix} \sigma_1^2 & 0 & 0 & 0\\ 0 & \sigma_2^2 & 0 & 0\\ 0 & 0 & \ddots & 0\\ 0 & 0 & 0 & \ddots\\ \end{matrix} \right]_{n\times n}

可以看到式(2-2)与式(1-1)的形式非常相同,进一步分析,我们可以发现AAT和ATA也是对称矩阵,那么可以利用式(1-1),做特征值分解。利用式(2-2)特征值分解,得到的特征矩阵即为U;利用式(2-3)特征值分解,得到的特征矩阵即为V;对ΣΣ^TΣ^TΣ中的特征值开方,可以得到所有的奇异值。

3、奇异值分解应用

3.1 纯数学例子

假设我们现在有矩阵A,需要对其做奇异值分解,已知
A = \left[ \begin{matrix} 1 & 5 & 7 & 6 & 1 \cr 2 & 1 & {10} & 4 & 4 \cr 3 & 6 & 7 & 5 & 2 \cr \end{matrix} \right]

那么可以求出AA^TA^TA,如下

AA^T = \left[ \begin{matrix} 112 & 105 & 114 \cr 105 & 137 & 110 \cr 114 & 110 & 123 \cr \end{matrix} \right] \quad A^TA = \left[ \begin{matrix} 14 & 25 & 48 & 29 & 15 \\ 25 & 62 & 87 & 64 & 21 \\ 48 & 87 & 198 & 117 & 61 \\ 29&64&117&77&32\\ 15&21&61&32&21 \end{matrix} \right]

分别对上面做特征值分解,得到如下结果

U = 
[[-0.55572489, -0.72577856,  0.40548161],
 [-0.59283199,  0.00401031, -0.80531618],
 [-0.58285511,  0.68791671,  0.43249337]]

V = 
[[-0.18828164, -0.01844501,  0.73354812,  0.65257661,  0.06782815],
 [-0.37055755, -0.76254787,  0.27392013, -0.43299171, -0.17061957],
 [-0.74981208,  0.4369731 , -0.12258381, -0.05435401, -0.48119142],
 [-0.46504304, -0.27450785, -0.48996859,  0.39500307,  0.58837805],
 [-0.22080294,  0.38971845,  0.36301365, -0.47715843,  0.62334131]]

奇异值 Σ=Diag(18.54,1.83,5.01)

相关文章

网友评论

      本文标题:SVD(奇异值分解)(转)

      本文链接:https://www.haomeiwen.com/subject/uzxsaltx.html