奇異值分解 (SVD)

FROM奇異值分解 (SVD)


奇異值分解 (SVD)

本文的閱讀等級:中級

奇異值分解 (singular value decomposition,以下簡稱 SVD) 被譽為矩陣分解的「瑞士刀」和「勞斯萊斯」[1],前者說明它的用途非常廣泛,後者意味它是值得珍藏的精品。在“線性代數基本定理 (四)”一文,我們介紹了 SVD 的推導,並於矩陣的四個子空間分析平台解釋其幾何涵義,本文簡述 SVD 重點並舉一例說明分解式的計算步驟。

美國史丹佛大學教授格魯布 (Gene Golub) 於矩陣運算的貢獻造就 SVD 成為今日最重要的線性代數應用 From https://i-blog.csdnimg.cn/blog_migrate/376b806328993264d6a71f2547e548f1.jpeg

 
A 為一 m\times n 階實矩陣,r=\mathrm{rank}A,SVD 具有以下形式:

A=U\Sigma V^T

其中 Um\times m 階,Vn\times n 階,\Sigmam\times n 階。方陣 UV 都是實正交矩陣 (orthogonal matrix),也就是說,U^{-1}=U^TV^{-1}=V^T\Sigma 是主對角矩陣,如下:

\Sigma=\begin{bmatrix}    \sigma_{1} & 0 & 0 & 0 &\cdots &0\\    0 & \ddots & 0 & \vdots & \cdots & 0\\    0 & 0 & \sigma_{r} & 0 &\cdots & 0\\    0 & \cdots & 0 & 0 & \ddots &0\\    0 & \cdots & 0 & 0 & \cdots & 0    \end{bmatrix}

主對角元 \sigma_i>0i=1,2,\ldots,r\sigma_i=0i>r,稱為奇異值 (singular values)。注意,SVD 的分解結果並非唯一的。為了方便應用,我們習慣將奇異值由大至小排序:\sigma_1\ge\sigma_2\ge\cdots\ge\sigma_r>0

 
利用圖示可以幫助我們了解 SVD 的矩陣結構,SVD 最特別的地方是 \Sigma 的多數元為零,下圖的白色區塊以及黃色區塊的非對角元皆為零。


奇異值分解結構

U 的行向量為 \mathbf{u}_jV 的行向量為 \mathbf{v}_jA=U\Sigma V^T 可以表示為 r 個秩-1(rank-one)矩陣之和:

A=\sigma_1\mathbf{u}_1\mathbf{v}_1^T+\sigma_2\mathbf{u}_2\mathbf{v}_2^T+\cdots+\sigma_r\mathbf{u}_r\mathbf{v}_r^T

這指出 A 僅由 U 的前 r 個行向量 (以 U_r 表示),V^T 的前 r 個列向量 (以 V_r^T 表示),以及 \Sigma 的左上 r\times r 分塊決定 (以 \Sigma_r 表示),稱為「瘦」奇異值分解,如下圖所示。這個結果看似不起眼,其實它有重大的意義。矩陣 A 總共有 m\times n 個元,U_rm\times r 個元,V_r^Tr\times n 個元,\Sigma_r 則只需儲存主對角的 r 個非零元,若以 SVD 形式儲存,總計有 (m+n+1)\times r 個元。當 r 遠小於 mn 時,利用矩陣的 SVD 可以大幅減少儲存量。


瘦奇異值分解

 
我們可以將 SVD 想成把變換矩陣 A 分解為旋轉 V^T,伸縮 \Sigma,再旋轉 U 三個步驟,下圖為 2\times 2 階矩陣的分解變換。另一方面,\Sigma 也可以視為變換矩陣 A 參考了基底 \{\mathbf{v}_1,\ldots,\mathbf{v}_n\}\{\mathbf{u}_1,\ldots,\mathbf{u}_m\} 的主對角變換矩陣 (見“線性變換觀點下的奇異值分解”)。


奇異值分解映射表達

 
SVD 的計算主要是利用下面幾個性質:

(1) A^TAAA^T 的非零特徵值為 \sigma_i^2i=1,2,\ldots,rr=\mathrm{rank}A。注意,A^TAAA^T 是半正定 (positive semidefinite) 矩陣,其特徵值必定不為負數。

(2) A^TA 的單位特徵向量為 \mathbf{v}_j

A^TA\mathbf{v}_j=\sigma_j^2\mathbf{v}_j,~~j=1,2,\ldots,n

(3) AA^T 的單位特徵向量為 \mathbf{u}_j

AA^T\mathbf{u}_j=\sigma_j^2\mathbf{u}_j,~~j=1,2,\ldots,m

(4) 對於 j=1,2,\ldots,r\mathbf{u}_j\mathbf{v}_j 具有以下關係:

A\mathbf{v}_j=\sigma_j\mathbf{u}_j

A^T\mathbf{u}_j=\sigma_j\mathbf{v}_j

對應奇異值 \sigma_j\mathbf{u}_j 稱為左奇異向量,\mathbf{v}_j 稱為右奇異向量。

 
下面試舉一例說明奇異值分解計算程序,考慮 4\times 5 階矩陣[2]

A=\begin{bmatrix}    1&0&0&0&2\\    0&0&3&0&0\\    0&0&0&0&0\\    0&4&0&0&0    \end{bmatrix}

步驟一:計算交互乘積矩陣 A^TA

A^TA=\begin{bmatrix}    1&0&0&0&2\\    0&16&0&0&0\\    0&0&9&0&0\\    0&0&0&0&0\\    2&0&0&0&4    \end{bmatrix}

步驟二:求 A^TA 的特徵值和特徵向量,並由大至小排序:

\lambda_1=16,~\lambda_2=9,~\lambda_3=5,~\lambda_4=0,~\lambda_5=0

對應的單位特徵向量依序為

\mathbf{v}_1=\begin{bmatrix}    0\\    1\\    0\\    0\\    0    \end{bmatrix},~\mathbf{v}_2=\begin{bmatrix}    0\\    0\\    1\\    0\\    0    \end{bmatrix},~\mathbf{v}_3=\begin{bmatrix}    \sqrt{0.2}\\    0\\    0\\    0\\    \sqrt{0.8}    \end{bmatrix},~\mathbf{v}_4=\begin{bmatrix}    0\\    0\\    0\\    1\\    0    \end{bmatrix},~\mathbf{v}_5=\begin{bmatrix}    -\sqrt{0.8}\\    0\\    0\\    0\\    \sqrt{0.2}    \end{bmatrix}

非零奇異值為 \sigma_1=4\sigma_2=3\sigma_3=\sqrt{5}

步驟三:設定 \SigmaV

\Sigma=\begin{bmatrix}    4&0&0&0&0\\    0&3&0&0&0\\    0&0&\sqrt{5}&0&0\\    0&0&0&0&0    \end{bmatrix}

V=\begin{bmatrix}    0&0&\sqrt{0.2}&0&-\sqrt{0.8}\\    1&0&0&0&0\\    0&1&0&0&0\\    0&0&0&1&0\\    0&0&\sqrt{0.8}&0&\sqrt{0.2}    \end{bmatrix}

步驟四:最後計算 U。對於 j=1,2,\ldots,r,此例 r=3,可直接計算 \mathbf{u}_j=\frac{1}{\sigma_j}A\mathbf{v}_j,結果如下:

\mathbf{u}_1=\begin{bmatrix}    0\\    0\\    0\\    1    \end{bmatrix},~\mathbf{u}_2=\begin{bmatrix}    0\\    1\\    0\\    0    \end{bmatrix},~\mathbf{u}_3=\begin{bmatrix}    1\\    0\\    0\\    0    \end{bmatrix}

\mathbf{u}_4 則由 Gram-Schmidt 正交化程序求出:

\mathbf{u}_4=\begin{bmatrix}    0\\    0\\    1\\    0    \end{bmatrix}

合併得到

U=\begin{bmatrix}    0&0&1&0\\    0&1&0&0\\    0&0&0&1\\    1&0&0&0    \end{bmatrix}

 
在“通過推導偽逆矩陣認識線性代數的深層結構”一文,我曾經介紹 SVD 於最小平方近似解的應用並一路推導出偽逆矩陣,從而徹底解決了線性方程的求解問題。了解該篇專欄內容需要相當的耐心與毅力,但付出絕對值得,因為這個主題是線性代數的聖母峰。

 
參考來源:
[1] Gene H. Golub, Michacel W. Mahoney, Petros Drineas, and Lek-Heng Lim, Bridging the Gap Between Numerical Linear Algebra, Theoretical Computer Science, and Data Applications, SIAM News, Vol. 39, No. 8, 2006.
[2] 維基百科:Singular value decomposition

相關閱讀:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值