【转载】奇异值分解(SVD)计算过程示例

原文连接:奇异值分解(SVD)的计算方法spa

奇异值分解是线性代数中一种重要的矩阵分解方法,这篇文章经过一个具体的例子来讲明如何对一个矩阵A进行奇异值分解。get

首先,对于一个m*n的矩阵,若是存在正交矩阵U(m*m阶)和V(n*n阶),使得(1)式成立:
\[A=U \Sigma V^T \tag{1}\]it

则将式(1)的过程称为奇异值分解,其中\(\Sigma_{mn}=\begin{bmatrix}\Sigma_1 & 0 \\ 0 & 0\end{bmatrix}\),且
\(\Sigma_1=diag(\sigma_1,\sigma_1,\dots,\sigma_r)\),U和V分别称为A的左奇异向量矩阵和右奇异向量矩阵。 下面用一个具体的例子来讲明如何获得上述的分解。class

假设咱们有一个矩阵\(A=\begin{bmatrix} 1&1\\1&1\\0&0\end{bmatrix}\)方法

第一步计算U

计算矩阵\(AA^T=\begin{bmatrix} 2&2&0\\2&2&0\\0&0&0\end{bmatrix}\)di

对其进行特征分解,分别获得特征值4,0,0和对应的特征向量\([\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0]^T,[-\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}},0]^T,[0,0,1]^T\),能够获得
\[U=\begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}&0 \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}&0 \\ 0&0&1 \end{bmatrix}\]co

第二步计算V

计算矩阵\(A^TA=\begin{bmatrix} 2&2 \\ 2&2 \end{bmatrix}\)display

对其进行特征分解,分别获得特征值4,0和对应的特征向量\([\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}]^T,[-\frac{1}{\sqrt{2}},\frac{1}{\sqrt{2}}]^T\),能够获得
\[V=\begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}\]block

第三步计算\(\Sigma^{m×n}\)

\(\Sigma_{mn}=\begin{bmatrix}\Sigma_1 & 0 \\ 0 & 0\end{bmatrix}\),其中\(\Sigma_1=diag(\sigma_1,\sigma_1,\dots,\sigma_r)\)是将第一或第二步求出的非零特征值从大到小排列后开根号的值,这里\(\Sigma=\begin{bmatrix} 2&0 \\ 0&0 \\ 0&0 \end{bmatrix}\)background

最终,咱们能够获得A的奇异值分解
\[A=U \Sigma V^T= \begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}}&0 \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}&0 \\ 0&0&1 \end{bmatrix} \begin{bmatrix} 2&0 \\ 0&0 \\ 0&0 \end{bmatrix} {\begin{bmatrix} \frac{1}{\sqrt{2}}&-\frac{1}{\sqrt{2}} \\ \frac{1}{\sqrt{2}}&\frac{1}{\sqrt{2}}\end{bmatrix}}^T=\begin{bmatrix} 1&1\\1&1\\0&0\end{bmatrix}\]

矩阵的特征值分解和奇异值分解有什么区别?

首先,特征值只能做用在一个mm的正方矩阵上,而奇异值分解则能够做用在一个mn的长方矩阵上。其次,奇异值分解同时包含了旋转、缩放和投影三种做用,(1)式中,U和V都起到了对A旋转的做用,而Σ起到了对A缩放的做用。特征值分解只有缩放的效果。



MARSGGBO原创




2018-12-21

相关文章
相关标签/搜索