SVD專題1 算子的奇異值分解——矩陣形式的推導
前言 Preface
《Linear Algebra Done Right》一書在講述算子的奇異值分解時並未給出其矩陣分解形式,僅是在結構上予以闡明:算子奇異值分解的核心在於使用兩組基。以下討論旨在總結奇異值分解推導的整個流程並給出算子奇異值分解的矩陣形式。
幾點說明
- 本文討論的范圍局限於算子的奇異值分解,而非更廣泛的線性映射的奇異值分解。
- 本文的敘述方式不同於通常教材的做法,即並不事先羅列為了得到目標結論所需的預備知識,而是一環扣一環反向補充每一個步驟所需的知識。
- 為方便討論,以下涉及到的算子均默認是復向量空間 \(V\) 中的算子,故不在每句話中重復指明復向量空間 \(V\) 上的算子
預備知識 Prerequisite
不同教材中給出算子奇異值分解的方式不同,本文將在算子極分解的基礎上引出奇異值分解。
1.1 極分解 Polar Decomposition
算子極分解:一個算子 \(T\) 總是可以分解成一個等距同構 \(S\) 和一個正算子 \(\sqrt{T^*T}\) 的乘積。
現在我們遇到了兩個新概念,等距同構 \(S\) 和正算子 \(\sqrt{T^*T}\) ,我們先來討論前者。
1.2 等距同構 Unitary Operator
1.2.1 什么是等距同構
我們先給出等距同構的定義:若算子 \(S\) 能夠保持范數不變,則稱 \(S\) 為等距同構,即:
等距同構 \(S\) 是怎樣刻畫的呢?其實就是在問一個算子 \(S\) 是等距同構的話有哪些等價條件呢?這里我們列舉以下有助於理解我們后續推導的等價關系:
1.2.2 等距同構的刻畫
算子 \(S\) 是等距同構 \(\Longleftrightarrow\)
(1)向量空間中的規范正交基 \(\{e_1, \cdots, e_n \}\) 被 \(S\) 作用后仍然是規范正交基 \(\{Se_1, \cdots, Se_n \}\) ,不妨記作 \(\{f_1, \cdots, f_n \}\) 。
(2)\(S^*S = SS^* = I , \quad or \quad S^* = S\)
注意觀察,(2)其實告訴我們了 \(S\) 是一個正規算子,在此基礎上多了一些別的性質,那么我們就可以在先前已經能夠完全描述的正規算子的基礎上來描述 \(S\) 。
重要補充:正規算子與復譜定理
正規算子:若算子 \(T\) 和它的伴隨可交換,稱算子 \(T\) 為正規算子,即:\(T^*T = TT^*\)
之所以我們能夠完全描述正規算子,正是由於復譜定理:復向量空間中的正規算子 \(T\) 可以被一組規范正交基給對角化。
小聲嗶嗶時間:以后我們就清楚了,凡是遇到了正規算子,就知道它可以被一組規范正交基給對角化,我們要訓練自己的小腦瓜,直到把這句話刻在腦子里,變成一種本能反應。
1.2.3 等距同構的描述
等距同構 \(S\) 的描述: \(S\) 可以被一組規范正交基給對角化,且相應的本征值的絕對值為1。
請拿出小本本記住這句話的前半部分,我們后面會用到的:即 \(S\) 可以被一組規范正交基給對角化。
1.3 正算子 Positive Operator
再來談一談正算子的刻畫及其描述。
1.3.1 什么是正算子
我們先給出正算子的定義:若自伴算子 \(T\) 滿足 \(\left \langle Tv, v \right\rangle \ge 0\) 恆成立,則稱 \(T\) 是正算子。
溫馨小提示:由於自伴算子滿足 \(T^* = T\) ,所以自伴算子都是正規算子。(^_^)
1.3.2 正算子的刻畫
為了方便理解和記憶,這里先擺出書中重要的一種類比關系:
\(正規算子\rightleftharpoons 實數\)
\(正算子 \ \ \ \ \rightleftharpoons 非負實數\)
算子 \(T\) 是正算子 \(\Longleftrightarrow\)
(1) \(T\) 是自伴算子且所有本征值非負
(2) \(T\) 有唯一的正平方根,可以把它記作 \(\sqrt{T}\)
等等!算子還有開平方這一說?
答曰:小笨蛋,我上面的類比關系白寫啦?非負實數可以開個平方算算平方根,正算子就不能有啦?
補:算子的平方根
如果算子 \(R\) 滿足: \(R^2 = T\) ,則稱算子 \(R\) 為算子 \(T\) 的平方根。
1.3.3 正算子的描述
正算子 \(T\) 的描述: \(T\) 可以被一組規范正交基給對角化,且相應的本征值非負。
請再次掏出小本本吧,同樣記下這句話的前半部分,即:正算子 \(T\) 可以被一組規范正交基給對角化。
好了,現在我們可以解釋一下為什么 \(\sqrt{T^*T}\) 是正算子啦!
我們說,對於復向量空間上的任意算子 \(T\) 而言, \(T^*T\) 都是正算子(不信的話用定義法去驗證一下哈~),由先前我們對正算子的刻畫:可以用 \(\sqrt{T^*T}\) 來表示 \(T^*T\) 唯一的那個正平方根(即這個平方根也是一個正算子)。
奇異值分解 Singular Value Decomposition(SVD)
極分解把復向量空間上的任意算子 \(T\) 給分解成了一個等距同構 \(S\) 和一個正算子 \(\sqrt{T^*T}\) 的乘積。掏出我們的小本本,看一看上面記下來的兩句話:
(1) \(S\) 可以被一組規范正交基給對角化
(2) \(\sqrt{T^*T}\) 可以被一組規范正交基給對角化
啊呀,我們猜想一下,不會那樣巧合,使得兩個算子都被同一組規范正交基給對角化了吧?沒錯,確實沒那么巧,這意味着我們要對任意算子 \(T\) 使用兩組基來描述啦!這就是奇異值分解的核心,即對算子采用了兩組基來表示呀!先前我們的做法是涉及到算子的,都一般默認變換前后都使用同一組基。
步驟1
不管三七二十一,先找一組規范正交基把 \(\sqrt{T^*T}\) 給對角化了,記這組規范正交基為 \(\{e_1, \cdots, e_n \}\) ,相應的本征值記作 \(\{s_1, \cdots, s_n \}\)
步驟2
在上一步的基礎上,左右兩邊同時左乘等距同構 \(S\) :
回憶一下等距同構的刻畫的(1),正是第三個等號成立的原因呀:規范正交基 \(\{e_1, \cdots, e_n \}\) 被 \(S\) 作用后仍然是規范正交基 \(\{f_1, \cdots, f_n \}\) ,這樣就出現了第二組基。
進一步化簡:
兩邊同時右乘 \(\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}\) ,得到:
換用簡單的大寫符號來表示這些元素都明着寫出來的矩陣,得到:
結語 Epilogue
以下兩點相當明顯的事實值得挑明(因為這對剛接觸的人來說可能並不那樣顯然):
(1) \(\begin{bmatrix}e_1 \cdots e_n \end{bmatrix}^{-1}\) ,即矩陣 \(V^{-1}\) 就是等距同構的逆 \(S^{-1}\) 的矩陣,由於 \(S^{-1} = S^*\) ,故上式中的 \(V^{-1}\) 還可以寫作 \(V^*\) 。矩陣 \(V^*\) 作用的目的在於(或稱這個矩陣的“方向”在於)輸入一個屬於任意坐標系統的向量,給出該向量在規范正交基 \(\{e_1, \cdots, e_n \}\) 下的坐標系統的重新(等價)表述。
(2) \(\begin{bmatrix} f_1 \cdots f_n \end{bmatrix}\) ,即矩陣 \(U\) 作用的目的在於,把原輸入向量經算子 \(T\) 變換后的輸出向量在規范正交基 \(\{f_1, \cdots, f_n \}\) 下的坐標系統的重新(等價)表述,重新變回其在任意坐標系統下的等價表述。
由上述(1)中的等價關系,我們給出本文的最終目標,即復向量空間上算子奇異值分解最終的矩陣表述形式: