SVD專題2 線性映射的奇異值分解——矩陣形式的推導



image


2021-11-9 分割線

麻煩各位看官大大們多多點贊哦,讓更多的人看到這篇文章~

以下是原文:


SVD專題2 線性映射的奇異值分解——矩陣形式的推導

前言 Preface

本講不能和本系列的第1講:SVD專題1 算子的奇異值分解——矩陣形式的推導 - 夏小正的鮮小海 - 博客園 采取同樣的講解策略,原因是線性映射不同於算子,涉及到維度的變化,倘若對線性代數的幾個基本定理沒有理解的話,很難看懂每一步都是想做什么。

幾點說明:

第一點,為什么在第1講的推導中用的是符號 \(T\) ,這里是符號 \(A\) 呢?

一方面是我在寫這部分內容時參考的兩大資料來源:線代啟示錄 和 一份 CMU 的課程講義 Computer Science Theory for the Information Age, Spring 2012. 都是用的 \(A\) ,另一方面是,符號 \(T\) 其實是沿襲了 "Linear Algebra Done Right" 中將其視作算子或線性映射的習慣表達,而 SVD 在具體應用中基本都是在和矩陣打交道的,而用 \(T\) 來表達矩陣的很少。這里為了與人們的習慣用法保持一致,故使用記號 \(A\)

第二點,下面的出現的向量空間默認是復向量空間或復內積向量空間。

特別注意,本節中出現的 \(A\) 有兩重含義:當把 \(A\) 看作代數語言,它表示一個抽象的線性映射;當使用矩陣語言,把 \(A\) 視作該線性映射對應的矩陣表述,那么 \(A\) 就是 \(\mathbb{C}^{M\times N}\) 中的一個實實在在的矩陣。

預備知識 Prerequisite

2.1 秩-零定理 Rank-Nullity Theorem

作為后面推導的基石,一定要搞懂這個線性代數中最基本的一大定理。

考慮由 \(n\) 維復向量空間 \(V\)\(m\) 維復向量空間 \(M\) 的一個線性映射 \(A:V \mapsto W\)。我們把 \(V\) 中那些被 \(A\) 映射到 \(W\)\(\mathbf{0}\) 向量的全體向量,叫做 \(A\) 的零空間 \(\operatorname{null}{A}\) (或稱核空間 \(\operatorname{ker}{A}\) ),把 \(V\) 中所有向量都映射到 \(W\) 中去,相應的被映射的值域,叫做 \(A\) 的值空間 \(\operatorname{range}{A}\) 。不難證明, \(\operatorname{ker}{A}\)\(V\) 的一個子空間, \(\operatorname{range}{A}\)\(W\) 的一個子空間,並且稱值空間 \(\operatorname{range}{A}\) 的維度為線性映射 \(A\) 的秩,記作 \(\operatorname{rank}{A}\) (不要忘了,子空間的維度 = 基中線性獨立的向量的個數)。

秩零定理告訴我們, \(V\) 的維度,一定等於 \(\operatorname{ker}{A}\) 的維度與 \(\operatorname{range}{A}\) 的維度之和,即:

\[n = \operatorname{dim}{V} = \operatorname{dim}{\operatorname{ker}{A}} + \operatorname{dim}{\operatorname{range}{A}}\\ \]

這個定理的證明是很重要的,蘊含了一個很有用的想法,這個想法將作為后續 SVD 推導的出發點,有助於直觀理解。現在給出該定理在代數視角下的證明。

如果設 \(\operatorname{ker}{A}\) 的維度是 \(p\) ,一組基為 \(\{\mathbf{u_1}, ..., \mathbf{u_p}\}\) ,那么我們可以在這組基的基礎上將其擴充成 \(V\) 的一組基 \(\{\mathbf{u_1}, ..., \mathbf{u_p}, \mathbf{v_1}, ..., \mathbf{v_r}\}\) ,即我們又新增了 \(r\) 個線性獨立的向量。那么 \(V\) 的維度 \(n=p+r\) 。其實不難看出,這里其實相當於構造出來了一個子空間 \(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) ,這個子空間把 \(\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) 作為它的基。現在 \(V\) 中就有兩個子空間了,分別是 \(\operatorname{ker}{A}\)\(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) 。它們剛好湊成了二元直和分解, \(\operatorname{ker}{A} \oplus \operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}=V\) 。直和在這里可以簡單的理解為“互不隸屬”。

既然有了一組基 \(\{\mathbf{u_1}, ..., \mathbf{u_p}, \mathbf{v_1}, ..., \mathbf{v_r}\}\) ,很自然的想法是 \(V\) 中的每一個向量 \(\mathbf{v}\) 都可以寫為基的線性組合:

\[\begin{aligned} A\mathbf{v}&=a_1\mathbf{u_1}+\cdots+a_p\mathbf{u_p}+ b_1\mathbf{v_1}+\cdots+b_r\mathbf{v_r} \\ &=b_1A\mathbf{v_1}+\cdots+b_rA\mathbf{v_r} \end{aligned}\\ \]

第二個等號成立的原因是 \(A\)\(\mathbf{u_1}\)\(\mathbf{u_p}\) 都給映射為 \(W\) 中的 \(\mathbf{0}\) 向量了,或者說每個 \(\mathbf{u_i}\) 都在 \(\operatorname{ker}{A}\) 中。

上式說明 \(\operatorname{range}{A}\) 其實就是 \(\operatorname{span}\{b_1A\mathbf{v_1}+\cdots+b_rA\mathbf{v_r}\}\)。如果能夠證明 \(\{A\mathbf{v_1}, ..., A\mathbf{v_r}\}\) 是線性獨立集,那么 \(\operatorname{range}{A}\) 的維度恰好就為 \(r\) ,定理就得證了。下面證明 \(\{A\mathbf{v_1}, ..., A\mathbf{v_r}\}\) 的確是線性獨立集,即 \(\{A\mathbf{v_1}, ..., A\mathbf{v_r}\}\)\(\operatorname{range}{A}\) 的一組基。

令: \(c_1 A\mathbf{v_1}+\cdots+ c_r A\mathbf{v_r}=0\) ,有:

\[\begin{aligned} & c_1 A\mathbf{v_1}+\cdots+ c_r A\mathbf{v_r}= \mathbf{0} \\ \Longleftrightarrow \ & A \left( c_1 \mathbf{v_1}+\cdots+ c_r \mathbf{v_r} \right)= \mathbf{0} \end{aligned}\\ \]

意味着 \(c_1 \mathbf{v_1}+\cdots+ c_r \mathbf{v_r}\)\(\operatorname{ker}{A}\) 中,必然可以用 \(\operatorname{ker}{A}\) 的基 \(\{\mathbf{u_1}, ..., \mathbf{u_p}\}\) 來表示,不妨表示為:

\[c_1 \mathbf{v_1}+\cdots+ c_r \mathbf{v_r} = d_1 \mathbf{u_1}+\cdots+ d_p \mathbf{u_p}\\ \]

注意到 \(\{\mathbf{u_1}, ..., \mathbf{u_p}, \mathbf{v_1}, ..., \mathbf{v_r}\}\) 正是 \(V\) 的基,故所有系數都必須為 \(0\) 才能使上式成立,即唯有 \(c_1=\cdots=c_r=0\) 才能使 \(c_1 A\mathbf{v_1}+\cdots+ c_r A\mathbf{v_r}=0\) 。說明 \(\{A\mathbf{v_1}, ..., A\mathbf{v_r}\}\) 的確是線性獨立集,恰好可以作為 \(\operatorname{range}{A}\) 的一組基,那么 \(\operatorname{range}{A}\) 的維度就是基中向量的個數為 \(r\) ,秩零定理得證。 \(\blacksquare\)

事實上,上面的論述都是從代數的角度來講的,但其實線性映射 \(A\) 是和矩陣 \(A\) 存在一一對應關系的,我們把這種對應關系稱之為同構。那么在矩陣語言下,秩零定理怎樣表示呢?

首先引入概念:矩陣 \(A\) 的列空間 \(C(A)\) 和零空間 \(N(A)\) 。對應關系為: \(C(A)\) 對應線性映射 \(A\) 的值空間 \(\operatorname{range}{A}\)\(N(A)\) 對應線性映射A的核空間 \(\operatorname{ker}{A}\)

\[\begin{aligned} C(A)&=\left\{A \mathbf{x} \mid \mathbf{x} \in \mathbb{C}^{n}\right\} \\ N(A)&=\left\{\mathbf{x} \in \mathbb{C}^{n} \mid A \mathbf{x}=0\right\} \end{aligned}\\ \]

那么秩零定理用矩陣語言的等價表述就是:

\[n = \operatorname{dim}{\mathbb{C}^{n}} = \operatorname{dim}{N(A)} + \operatorname{dim}{C(A)}\\ \]

線性變換用語和矩陣用語的詳細說明可見線性變換與矩陣的用語比較

題外話:在上述的證明過程中,隱約感覺到將 \(V\) 拆分為 \(\operatorname{ker}{A}\) 和另一子空間的直和的這個思路有點兒意思,但好像又沒得到很好玩的性質和結論。這其實是沒有在向量空間中引入“度量”,具體點來說就是沒有引入內積運算,倘如引入內積,會有很好玩的結論在前面等着我們,下小節我們再來說。

2.2 最核心的四個子空間

本節前言(可忽略不看,不影響主線論述)

四個基本子空間的引入其實有兩種方法,從矩陣角度引入相對簡單,比如先從實矩陣引入,這也是線代啟示錄中的做法,直接拋開內積的引入,討論 \(C(A)\)\(C(A^T)\)\(N(A)\)\(N(A^T)\) 的關系。然而從我的角度來看,由於矩陣和矩陣的轉置實在太過形象了,從實矩陣的角度深入往里走,總有種管中窺豹的感覺,始終看不到映射的“全貌”。初學者產生類似於“行秩和列秩為何如此巧合的相等”等問題,無法得到很好的解決,當然不是說這真的是個“巧合”,而是從實矩陣出發,真的很難看到“實質”,周老師作者本人也對這個問題作出了回答,參見答Avis──關於行秩等於列秩的幾何背景

原回答的部分內容如下:

網友Avis留言:

老師你好,經常關注你的Blog“線性代數啟示錄”,很喜歡里面的內容。這里有一個問題想請教一下,是學習線性代數多年來覺得比較有意思的地方,為什么矩陣的行秩等於列秩?當然我這里問的不是怎么證明,而是想問是否有更為本質的幾何和物理背景?對於幾何背景不限於行空間的維數等於列空間維數這樣的,而是更想知道到底是怎么樣一種結構,使得行列空間秩相同。我之前一直把這個結論,認為是數學的一種“巧合”。在這樣的“巧合”之下我們對於一個矩陣就只用定義一個秩 (因為行列秩相同)。

周老師的部分回答:

矩陣A的列秩等於行秩, \(\operatorname{rank}{A} = \operatorname{rank}{A^{T}}\) ,只是一個表象,隱藏其下的深層含義是矩陣 \(A\) 的列秩等於其共軛轉置 \(A^*\) 的列秩。

鑒於此,不如直接對最最一般的情況進行分析,這樣看的可能會更清晰些,畢竟復數域是實數域的擴充,復向量空間“可能”會有更好的性質。

2.2.1 由秩零定理引發的思考和疑問

首先把(2.1)的末尾再次強調如下:

我們在秩零定理的證明中人為構造了一個 \(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) 並且有

\[\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\} \cong \operatorname{span}\{A\mathbf{v_1}, ..., A\mathbf{v_r}\} =\operatorname{range}{A} \cong C\left(A\right)\\ \]

雖然有 \(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) ,但不禁疑問,這樣由隨機選取的基構成的子空間 \(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) ,性質真的好嗎?

如果我們通過在向量空間引入一種“度量機制”,即定義內積,引入一個與 \(\operatorname{ker}{A}\) “正交”的子空間,就好像一個二維平面和它的法向量那樣的正交關系一樣,會不會有什么更好的結論?

答案是肯定的。但首先我們要引入向量空間的內積。

2.2.2 標准內積與共軛映射 Adjoint

定義向量空間 \(V\) 上的標准內積:

\[\langle{ \mathbf{x} \,, \mathbf{y} }\rangle=\mathbf{x}^* \mathbf{y}\\ \]

備注:事實上,這里我偷懶了,向量空間上的標准內積是由幾條運算性質共同定義的,這里我簡單這樣表示,為了與后面的實際坐標系統中的內積運算保持寫法上的一致。

如果取 \(F=\mathbb{C}\) ,那么 \(\mathbb{C}^{n}\) 上的內積可以寫為:

\[\begin{aligned} \langle{ \mathbf{x} \,, \mathbf{y} }\rangle =\mathbf{x}^* \mathbf{y} = \left[\begin{array}{lll}x_{1}^* & \ldots & x_{n}^*\end{array}\right] \left[\begin{array}{c}y_1 \\ \vdots \\ y_{n}\end{array}\right]\\ \end{aligned}\\ \]

現在引入一個新的映射,稱為 \(A\) 的共軛映射,記作 \(A^*\)(或者\(A^H\)\(A^\dagger\))。定義為 \(A^*: W \mapsto V\),滿足對所有的 \(\mathbf{w} \in W\)\(\mathbf{v} \in V\),都有:

\[\langle{ \mathbf{w} \,, A\mathbf{v} }\rangle=\langle{ \mathbf{v} \,, A^*\mathbf{w} }\rangle\\ \]

做一點小小的說明,這其實是借助了里斯表示定理來定義的(見 "Linear Algebra Done Right 3rd Edition" 的相應兩部分:(6.42)和(7.2))。對本文的主線而言,無需深究,不妨直接承認這種由內積定義引出的共軛映射 \(A^*\) 的合理性。

可以證明的是,上面定義的這個 \(A^*\) 一定是一個線性映射,並且還具有極其優越的性質:

\[\begin{aligned} \operatorname{range}{A^*} &\perp \operatorname{ker}{A} \quad \quad \operatorname{range}{A^*} \oplus \operatorname{ker}{A}=V \\ \operatorname{range}{A} &\perp \operatorname{ker}{A^*} \quad \quad \operatorname{range}{A} \oplus \operatorname{ker}{A^*}=W\\ \end{aligned}\\ \]

下圖將有助於直觀理解和記憶這個性質:

image

備注:這個幫助理解和記憶的示意圖是我參照 WiKi 的 SVD 詞條的配圖修改而來的,加入了一些我個人的理解,該圖片最初是以實矩陣語言為例畫的,需要把共軛轉置換成轉置,當時畫的時候還沒有考慮復空間。

2.2.3 映射最清晰的表示?

其實到這里,可以看出些端倪了:與(2.1.1)證明過程中出現的 \(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\}\) 相對應的概念,在這里變為了 \(\operatorname{range}{A}\)

(2.1.1)的證明過程中出現的同構關系(還記得當時我們還沒有引入內積運算): \(\operatorname{span}\{\mathbf{v_1}, ..., \mathbf{v_r}\} \cong \operatorname{range}{A}\)

類比到這里,也是有類似的同構關系: \(\operatorname{range}{A}^* \cong \operatorname{range}{A}\)

雖然有了同構關系: \(\operatorname{range}{A}^* \cong \operatorname{range}{A}\) ,但問題的關鍵在於,怎么確定(找到)一個好的“同構映射”,使得一一對應關系有最最清晰的表達?換句話來說,怎么確定 \(V\) 中的一組基和 \(W\) 中的一組基,使得同構關系通過基之間的映射越簡單越好,甚至貪婪到:能從各自的基中,挑出“最好”的 \(r\) 個線性獨立向量來,滿足:

\[A\mathbf{v_i}=\sigma_i \mathbf{u_i} \quad i=1,...,r\\ \]

至於怎么看出滿足這個條件是“最好”的,頗費一番思索,它源於對另一個“巧合”的仔細觀察。

這個“巧合”是什么先直接擺在這里:正算子 \(A^*A\)\(AA^*\) 有數量相同且相等的非零特征值。

接下來介紹這個有趣的結論,並且寫出它的證明過程,看能觀察出什么名堂出來:

2.3 \(A^*A\)\(AA^*\) 有數量相同且相等的非零特征值

不難看出, \(A^*A\)\(V\) 上的算子, \(AA^*\)\(W\) 上的算子。

首先證明 \(A^*A\) 是正算子,即對任意的 \(\mathbf{v}\in V\) 都有:

\[\langle{ A^*A\mathbf{v} \,, \mathbf{v} }\rangle \geq 0 \\ \]

Proof:這里補充一下標准內積定義中的一條性質:

\[\langle{ \mathbf{x} \,, \mathbf{y} }\rangle = \overline{ \langle{ \mathbf{y} \,, \mathbf{x} }\rangle } \\ \]

回想一下 \(A^*\) 的定義:

\[\langle{ \mathbf{w} \,, A\mathbf{v} }\rangle=\langle{ \mathbf{v} \,, A^*\mathbf{w} }\rangle \\ \]

結合上面兩點,有:

\[\langle{ A^*A\mathbf{v} \,, \mathbf{v} }\rangle = \overline{ \langle{ \mathbf{v} \,, A^*A\mathbf{v} }\rangle } = \overline{ \langle{ A\mathbf{v} \,, A\mathbf{v} }\rangle } \geq 0 \\ \]

同樣的,可以得到 \(AA^*\)\(W\) 上的正算子。 \(\blacksquare\)

其實 \(A^*A\)\(AA^*\) 的矩陣形式有一個特殊的名字,叫做 Gramian 矩陣,詳見特殊矩陣 (14):Gramian 矩陣

還記得我在算子的奇異值分解一文中說過的:看到能譜分解的算子一定要先分解看看,看能得到什么,要有條件反射般的直覺,並且直覺告訴我們,結論肯定是用的。

在這里,我再重新整理一遍,后面會繼續用到它的,重要的概念值得重復。

2.3.1 回顧算子譜定理

算子按所具備性質的強弱程度,可以得到如下關系:

\[\operatorname{positive} \Rightarrow \operatorname{self adjoint} \Rightarrow \operatorname{normal}\\ \]

正算子的要求最苛刻,故正算子一定都是自伴算子( Hermitian 算子)。而自伴算子又一定是正規算子。當然,第一個箭頭的反向有時也可以成立。即:自伴算子 \(A\) 若滿足條件 \(b^2<4c\)\(b,c \in R\) ,則 \(A^2+bA+cI\) 肯定是一個正算子。( 詳見 "Linear Algebra Done Right 3rd Edition" 的 7.32(b) )

復譜定理說, \(F=\mathbb{C}\) 上, \(A\) 是正規算子就可以譜分解,即正規算子 \(A\) 可以被其單位特征向量所確立的等距同構給對角化表示。此時條件是比較弱的,體現在: \(A\) 的特征值不一定都是實數。

實譜定理說, \(F=\mathbb{R}\) 上, \(A\) 至少是自伴算子才可以譜分解,即自伴算子 \(A\) 可以被其單位特征向量所確立的等距同構給對角化表示。此時條件(性質)強了很多,體現在: \(A\) 的特征值一定都是實數,但不一定都是非負的。

相應的, \(A\) 若是正算子,肯定也能譜分解,而且性質最好,體現在:此時 \(A\) 的特征值一定是非負的。(矩陣語言就是說矩陣 \(A\) 是半正定的)

復習到這里,對后面推導最重要的一點已經浮出水面了:正算子的一大好處是它具有完整的一組特征向量,可以張成整個向量空間,並且每個特征向量對應的特征值都是非負實數。

2.3.2 對 \(A^*A\) 譜分解

既然 \(A^*A\)\(AA^*\) 分別都是正算子,不妨先來譜分解一下,說不定能得到什么有益的啟發:

\(A\) 的秩為 \(r\) ,即:

\[\dim \operatorname{range}{A} = \operatorname{rank}{A} = r\\ \]

可以證明, \(V\) 上的算子 \(A^*A\)\(W\) 上的算子 \(AA^*\) 並不會改變 \(V\)\(W\) 上線性映射 \(A\) 的值空間的維度(利用 Gramian 矩陣證明行秩等於列秩,文中提到了 \(\operatorname{null}{A}\) 其實和 \(\operatorname{null}{A^*A}\) 是同一個子空間),即:

\[\operatorname{rank}{A^*A} = \operatorname{rank}{AA^*} = \operatorname{rank}{A} = r\\ \]

\(A^*A\) 可以在 \(n\) 個單位正交的特征向量 \(\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}\) 上進行分解,但是其中只有 \(r\) 個對應的特征值為正實數,其余的 \(n-r\) 個特征值都為 0 。這意味着,對 \(A^*A\) 進行譜分解,令 \(\sigma_{i}=\sqrt{\lambda_{i}}\) 並且對所有 \(n\) 個特征值從大到小排個序 \(\lambda_{1} \geq \cdots \geq \lambda_{r}>0, \quad \lambda_{r+1}=\cdots=\lambda_{n}=0\) 則有:

\[\begin{aligned} A^{*} A \mathbf{v}_{i}&=\sigma_{i}^2 \mathbf{v}_{i}, \quad \ 1 \leq i \leq r \\ A^{*} A \mathbf{v}_{i}&=\mathbf{0} , \quad r+1 \leq i \leq n \end{aligned}\\ \]

此時我們有一個驚人的發現, \(W\) 上的算子 \(AA^*\) 居然也恰好有 \(r\) 個與前面 \(V\) 上算子 \(A^*A\) 相等的非零特征值!

2.3.3 \(AA^*\)\(A^*A\) 的非零特征值相同

這個驚人可以嚴謹的表述為:若 \(\operatorname{rank}{A^*A} = \operatorname{rank}{AA^*} = \operatorname{rank}{A} = r\) ,並且特征值有序排列,則有:

\[\begin{aligned} \lambda_i\left( AA^* \right) &= \lambda_i\left( A^*A \right) = \sigma_{i}^2, \ \ \ \ \ \quad 1 \leq i \leq r \\ \lambda_i\left( AA^* \right) &= \lambda_i\left( A^*A \right) = 0, \quad r+1 \leq i \leq n \end{aligned}\\ \]

證明相當弱智:

考慮 \(AA^*\) 同時作用於 \(A\mathbf{v_i}=\mathbf{u_i}\) 的兩邊,其中 \(\mathbf{v_i}\) 取自前面提到的 \(A^*A\)\(n\) 個單位正交的特征向量 \(\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}\) 中,則:

\[AA^*\mathbf{u_i} = \left(AA^*\right) A\mathbf{v_i} = A \left(A^*A \mathbf{v_i}\right) = A \left( \lambda_i\mathbf{v_i} \right) = \lambda_i A \mathbf{v_i} = \lambda_i \mathbf{u_i}\\ \]

直接觀察最左邊和最右邊,多巧啊,遍歷所有的 \(1 \leq i \leq r\) ,說明 \(AA^*\)\(r\) 個非零特征值確實和 \(A^*A\)\(r\) 個非零特征值都相等。 \(\blacksquare\)

還記得我們的目標是什么嗎?我再重復一下好了,不然真的很容易忘了討論這么一大堆到底在干嘛了:

雖然有了同構關系: \(\operatorname{range}{A}^* \cong \operatorname{range}{A}\) ,但問題的關鍵在於,怎么確定(找到)一個好的“同構映射”,使得一一對應關系有最最清晰的表達?換句話來說,怎么確定 \(V\) 中的一組基和 \(W\) 中的一組基,使得同構關系通過基之間的映射越簡單越好,甚至貪婪到:能從各自的基中,挑出“最好”的 \(r\) 個線性獨立向量來,滿足:

\[A\mathbf{v_i}=\sigma_i \mathbf{u_i} \quad i=1,...,r \]

至於怎么看出滿足這個條件是“最好”的,頗費一番思索,它源於對另一個“巧合”的仔細觀察。

這個“巧合”是什么先直接擺在這里:正算子 \(A^*A\)\(AA^*\) 有數量相同且相等的非零特征值。

接下來介紹這個有趣的結論,並且寫出它的證明過程,看能觀察出什么名堂出來:

注意到:一串連等中間出現了這樣的關系:

\[\left(AA^*\right) A\mathbf{v_i} = \lambda_i A \mathbf{v_i}\\ \]

再寫一遍:

\[\left(AA^*\right) \left(A\mathbf{v_i}\right) = \lambda_i \left(A\mathbf{v_i}\right)\\ \]

看出來了嗎?這不明擺着說: \(A\mathbf{v_i}\)\(W\) 上正算子 \(AA^*\) 的特征向量嘛!

如果我們對 \(AA^*\)\(m\) 個單位正交的特征向量 \(\mathbf{u}_{1}, \ldots, \mathbf{u}_{m}\) 上進行分解,並且對特征值也進行有序排列,有:

\[\begin{aligned} \left(A A^{*} \right) \mathbf{u}_{i}&=\lambda_{i} \mathbf{u}_{i}, \quad \ 1 \leq i \leq r \\ A A^{*} \mathbf{u}_{i}&=\mathbf{0} , \quad r+1 \leq i \leq m \end{aligned}\\ \]

對比這兩個式子:

\[\begin{aligned} \left(AA^*\right) \left(A\mathbf{v_i}\right) &= \lambda_i \left(A\mathbf{v_i}\right) \\ \left(A A^{*} \right) \mathbf{u}_{i} &= \lambda_{i} \mathbf{u}_{i} \end{aligned}\\ \]

說明 \(A\mathbf{v_i}\)\(\mathbf{u_i}\) 只是“長度”不相等,相差一個倍數,這個倍數就是 \(Av_i\) 的內積范數:

\[\langle{ A\mathbf{v_i} \,, A\mathbf{v_i} }\rangle = \left( A\mathbf{v_i} \right)^* A\mathbf{v_i} = \mathbf{v_i}^*A^*A\mathbf{v_i} = \sigma_i^2 \mathbf{v_i}^*\mathbf{v_i} = \sigma_i^2\\ \]

所以 \(A\mathbf{v_i}\) 的范數為:

\[\Vert A\mathbf{v_i} \Vert = \sqrt{ \langle{ A\mathbf{v_i} \,, A\mathbf{v_i} }\rangle } = \sigma_i\\ \]

恰恰就為 \(\sigma_i\) ,我們稱這個正實數為 \(A\) 的奇異值,一共有 \(r\) 個。顯然:

\[A\mathbf{v_i} = \sigma_i \mathbf{u_i}\\ \]

我們前面貪婪的願望真的被實現了。 \(\blacksquare\)

線性映射的奇異值分解——矩陣形式的推導(SVD)

image

\(U=\left[\begin{array}{lll}\mathbf{u}_{1} & \cdots & \mathbf{u}_{m}\end{array}\right]\)\(V=\left[\begin{array}{lll}\mathbf{v}_{1} & \cdots & \mathbf{v}_{n}\end{array}\right]\) 。由於 \(A^*A\)\(\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}\) 下進行了譜分解, \(AA^*\)\(\mathbf{u}_{1}, \ldots, \mathbf{u}_{m}\) 下進行了譜分解,那么譜定理告訴我們,矩陣 \(U=\left[\begin{array}{lll}\mathbf{u}_{1} & \cdots & \mathbf{u}_{m}\end{array}\right]\)\(V=\left[\begin{array}{lll}\mathbf{v}_{1} & \cdots & \mathbf{v}_{n}\end{array}\right]\) 都是酉矩陣, \(U^{*} U = U U^{*} = I_{m}\)\(V^{*} V = V V^{*} = I_{n}\)

\[\begin{aligned} A V &=A\left[\begin{array}{lll} \mathbf{v}_{1} & \cdots & \mathbf{v}_{n} \end{array}\right] \\ &=\left[\begin{array}{lll} A \mathbf{v}_{1} & \cdots & A \mathbf{v}_{n} \end{array}\right] \\ &=\left[\begin{array}{lllll} \sigma_{1} \mathbf{u}_{1} & \cdots & \sigma_{r} \mathbf{u}_{r} & \mathbf{0} & \cdots & \mathbf{0} \end{array}\right] \\ &=\left[\begin{array}{llll} \mathbf{u}_{1} & \cdots & \mathbf{u}_{m} \end{array}\right]\left[\begin{array}{ccc|c} \sigma_{1} & & & \\ & \ddots & & 0 \\ & & \sigma_{r} & \\ \hline & 0 & & 0 \end{array}\right] \\ &=U \Sigma . \end{aligned}\\ \]

兩邊右乘 \(V^{*}\) ,得:

\[A=U \Sigma V^{*}\\ \]

這就是線性映射的奇異值分解 SVD 的完整矩陣表達形式。 \(\blacksquare\)

結語 Epilogue

我們的本意是在 \(V\)\(W\) 中各自找到一組基,使得同構關系: \(\operatorname{range}{A}^* \cong \operatorname{range}{A}\) 在這組基下有最清晰的線性表達,驚人的巧合就在這里,在對 \(A^*A\)\(AA^*\) 進行譜分解的分析過程中,發現 \(A^*A\)\(n\) 個單位正交特征向量 \(\mathbf{v}_{1}, \ldots, \mathbf{v}_{n}\) 若作為 \(V\) 中的一組基, \(AA^*\)\(m\) 個單位正交特征向量 \(\mathbf{u}_{1}, \ldots, \mathbf{u}_{m}\) 若作為 \(W\) 中的一組基,恰恰滿足上面的這個線性表達條件!且進一步發現只有 \(r\) 個向量之間的一一映射是實際在起作用的,或者說是“有效”的。那些 \(n-r\) 個特征值為 \(0\) 的向量 \(\mathbf{v}_{r+1}, \ldots, \mathbf{v}_{n}\)\(A\) 映射到 \(W\) 中的 \(\mathbf{0}\)\(m-r\) 個特征值為 \(0\) 的向量 \(\mathbf{u}_{r+1}, \ldots, \mathbf{u}_{m}\)\(A^*\) 映射到 \(V\) 中的 \(\mathbf{0}\) 。多么清晰明了,也和我們腦中的直觀理解相吻合。

預告 Future

下一講我會講述一下不同於代數線性代數,數值線性代數中的 SVD 如何得到以及 SVD 的幾個具體應用,這一部分的內容源自於前段時間看到的一份講義(Computer Science Theory for the Information Age, Spring 2012.)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM