矩陣論(四):矩陣分解—從Schur分解、特徵值分解EVD到奇異值分解SVD(下)

矩陣論專欄:專欄(文章按照順序排序)

Schur分解、特徵值分解、奇異值分解是三種聯繫十分緊密的矩陣分解,它們的關係是SchurEVDSVDSchur\rightarrow{}EVD\rightarrow{}SVD,也就是說由Schur分解可以推導出EVD,再推導出SVD。本篇博客和上篇博客遵循主線SchurEVDSVDSchur\rightarrow{}EVD\rightarrow{}SVD,且對各個矩陣分解的相關理論應用(能夠解決矩陣論中的哪些問題)進行介紹。

本篇博客討論特徵值分解和奇異值分解的相關內容。上篇博客(鏈接)討論的是Schur分解以及利用Schur分解能夠解決的若干問題。注意,引理1-5以及定理1-15在上篇博客中

本文內容以線性代數知識爲基礎(主要是特徵值和相似的知識):
矩陣論(零):線性代數基礎知識整理(1)——逆矩陣、初等變換、滿秩分解
矩陣論(零):線性代數基礎知識整理(2)——矩陣的秩與向量組的秩
矩陣論(零):線性代數基礎知識整理(3)——矩陣的秩與向量組的秩
矩陣論(零):線性代數基礎知識整理(4)——線性空間與線性變換
矩陣論(零):線性代數基礎知識整理(5)——特徵值與相似

  • 特徵值分解EVD
    • 正規矩陣與EVD
    • EVD得到矩陣的特徵值和特徵向量
    • EVD的構造方法
    • EVD用於求矩陣的逼近
    • 實正規矩陣的正交相似擬對角化(拓展內容)
  • 奇異值分解SVD
    • SVD的存在性定理
    • SVD的構造方法(簡介)
    • SVD的性質
    • SVD用於求矩陣的逼近
    • SVD在推薦系統中的應用

特徵值分解EVD(正規矩陣)

與Schur分解不同的是,特徵值分解(又叫譜分解)要求將方陣酋對角化,這比schur分解的要求更高(Schur分解只是酋相似上三角化)。實際上,只有一類特殊的方陣才能進行特徵值分解,這類特殊的方陣是正規矩陣。下面介紹特徵值分解EVD。

  • 定義(譜分解):設有n階方陣A。若存在n階酋矩陣U和對角矩陣Σ\Sigma使得A=UΣUHA=U\Sigma{U^H},則稱A=UΣUHA=U\Sigma{U^H}是A的一個譜分解

  • 定義(正規矩陣):若n階方陣A滿足AHA=AAHA^HA=AA^H,則稱A是正規矩陣
    【注1】容易驗證Hermite矩陣(共軛對稱矩陣)、反Hermite矩陣、實對稱矩陣、實反對稱矩陣、酋矩陣、實正交矩陣等都是正規矩陣。正規矩陣實際上是內積空間上的正規變換在給定標準正交基下的矩陣,具體見鏈接
    【注2】這裏給出正規矩陣AA的一個性質:N(A)=N(AH),R(A)=R(AH)N(A)=N(A^H),R(A)=R(A^H),其中N(),R()N(\bullet),R(\bullet)分別表示零空間和列空間。雖然這個性質本文後面沒有用到,但卻是正規矩陣的一個常見性質。證明很簡單:Ax=0    xHAHAx=0    xHAAHx=0    AHx22=0    AHx=0Ax=0\implies x^HA^HAx=0\implies x^HAA^Hx=0\implies||A^Hx||_2^2=0\implies A^Hx=0,因此N(A)=N(AH)N(A)=N(A^H),兩端取正交補就有R(AH)=R(A)R(A^H)=R(A)

  • 引理6:任意一個上三角矩陣S,若S是正規矩陣,則S必然是對角矩陣
    證明:(對S的階數n進行歸納)
    當n=1時,S本身就是對角矩陣。假定結論對n-1成立,現證明結論對n也成立。設S=[S1b0Ha]S=\begin{bmatrix}S_1&b\\0^H&a\end{bmatrix},其中a是一個標量,S1S_1是一個n-1階上三角陣。計算可得SHS=[S1HS1S1HbbHS1bHb+aˉa]S^HS=\begin{bmatrix}S_1^HS_1&S_1^Hb\\b^HS_1&b^Hb+\bar{a}a\end{bmatrix}SSH=[S1S1H+bbHaˉbabHaaˉ]SS^H=\begin{bmatrix}S_1S_1^H+bb^H&\bar{a}b\\ab^H&a\bar{a}\end{bmatrix},由SHS=SSHS^HS=SS^HbHb+aˉa=aaˉb^Hb+\bar{a}a=a\bar{a},故bHb=b2=0b^Hb=||b||^2=0,故b=0b=0,故S1S1H+bbH=S1S1H=S1HS1S_1S_1^H+bb^H=S_1S_1^H=S_1^HS_1,即S1S_1是正規矩陣,由歸納假設知S1S_1是對角矩陣。則S=[S100Ha]S=\begin{bmatrix}S_1&0\\0^H&a\end{bmatrix}是對角矩陣,得證。

  • 定理16:n階複方陣A酋相似於一個對角矩陣的充要條件爲A是正規矩陣
    證明:
    必要性:若A酋相似於一個對角矩陣,即存在酋矩陣U和對角矩陣Σ\Sigma使得A=UΣUHA=U\Sigma{U^H},則AHA=UΣUHUΣUH=UΣΣUHA^HA=U\overline{\Sigma}U^HU\Sigma{U^H}=U\overline{\Sigma}\Sigma{U^H}AAH=UΣUHUΣUH=UΣΣUHAA^H=U\Sigma{U^H}U\overline{\Sigma}U^H=U\Sigma{}\overline{\Sigma}U^H,注意到ΣΣ=ΣΣ\overline{\Sigma}\Sigma=\Sigma\overline{\Sigma},故AHA=AAHA^HA=AA^H
    充分性:設A的Schur分解爲A=PTPHA=PTP^H,其中P是酋矩陣,T是上三角矩陣。由A是正規矩陣,將A代入AHA=AAHA^HA=AA^HPTHTPH=PTTHPHPT^HTP^H=PTT^HP^H,故THT=TTHT^HT=TT^H,即上三角矩陣T是正規矩陣。於是由引理6知T是對角矩陣,故A酋相似於對角矩陣T。證畢。

EVD得到矩陣的特徵值和特徵向量

定理16說明僅正規矩陣可進行譜分解。在探討譜分解有何用處之前,我們先認識一下譜分解究竟是怎樣的,看看分解出來的對角矩陣是什麼,以及那個酋矩陣到底是什麼:

  • 定理17:設正規矩陣A的譜分解爲A=UΣUHA=U\Sigma U^H,則λ\lambda是A的特徵值的充要條件爲λ\lambdaΣ\Sigma的主對角線上,且A的每個特徵值的代數重數等於其在Σ\Sigma的主對角線上出現的次數
  • 定理18:設n階正規矩陣A的譜分解爲A=UΣUHA=U\Sigma U^H,且Σ=diag(λ1,...,λn)\Sigma=diag(\lambda_1,...,\lambda_n)U=[u1un]U=\begin{bmatrix}u_1&\cdots&u_n\end{bmatrix},則uiu_i是A對應於特徵值λi\lambda_i的特徵向量,且u1,...,unu_1,...,u_nCnC^n的標準正交基
    證明:由A=UΣUHA=U\Sigma U^HAU=UΣAU=U\Sigma,故Aui=λiui,i=1,...,nAu_i=\lambda_iu_i,i=1,...,n,即uiu_i是A對應於特徵值λi\lambda_i的特徵向量。因爲U是酋矩陣,所以u1,...,unu_1,...,u_nCnC^n的標準正交基。
    【推論】n階正規矩陣有n個相互正交的特徵向量
    【推論】n階正規矩陣的任意特徵值的幾何重數與代數重數相等

上面兩個定理的結論解釋了“特徵值分解”這個名稱的來源,之所以稱之爲特徵值分解,是因爲其既分解出了特徵值,還分解出了對應的特徵向量。特徵值分解還表明,正規矩陣的特徵值和特徵向量包含了原矩陣的“全部信息”,因此我們可以通過一定的方法利用特徵值和特徵向量重構出原矩陣。

EVD的構造方法

實際上,我們已經知道U的列向量組是A的單位正交特徵向量組,那麼怎麼求出A的n個單位正交的特徵向量呢?我們容易保證屬於同一特徵值的特徵向量間的正交性(只要求出該特徵值對應的特徵子空間的標準正交基即可),但是,如何保證不同特徵值的特徵向量間的正交性呢?實際上,正規矩陣本身的性質就保證了這一點。下面我們就來看看正規矩陣的性質:

  • 定理19:設A是正規矩陣,則AAAHA^H的特徵值互爲共軛,且AA對應於λ\lambda的特徵子空間N(λIA)N(\lambda I-A)AHA^H對應於λˉ\bar{\lambda}的特徵子空間N(λˉIAH)N(\bar\lambda I-A^H)成立N(λIA)=N(λˉIAH)N(\lambda I-A)=N(\bar\lambda I-A^H)
    證明:
    將A譜分解得A=UΣUHA=U\Sigma U^H,則AH=UΣUHA^H=U\overline{\Sigma}U^H。因爲Σ\SigmaΣ\overline{\Sigma}主對角線上對應的元素互爲共軛,所以A和AHA^H的特徵值互爲共軛。又AU=UΣAU=U\SigmaAHU=UΣA^HU=U\overline \Sigma,且U的列向量組是正交向量組,所以AA的特徵子空間N(λIA)N(\lambda I-A)AHA^H的特徵子空間N(λˉIAH)N(\bar\lambda I-A^H)有同一組正交基,故結論成立。
  • 定理20:設A是正規矩陣,則A對應於不同特徵值的特徵向量是正交的
    證明:
    λ\lambdaμ\mu是A的兩個不同特徵值,xxyy分別是A的對應於λ\lambdaμ\mu的特徵向量,即λμ,Ax=λx,Ay=μy,x0,y0\lambda \neq \mu,Ax=\lambda x,Ay=\mu y,x\neq 0,y\neq 0。由定理19知μˉ\bar \muAHA^H的特徵值,且由yN(μIA),N(μIA)=N(μˉIAH)y\in N(\mu I-A),N(\mu I-A)=N(\bar\mu I-A^H)yN(μˉIAH)y\in{N(\bar\mu I-A^H)},故AHy=μˉyA^Hy=\bar \mu yμˉxHy=xH(μˉy)=xHAHy=(Ax)Hy=λˉxHy\bar \mu x^Hy=x^H(\bar \mu y )=x^HA^Hy=(Ax)^Hy=\bar \lambda x^Hy(μˉλˉ)xHy=0(\bar \mu-\bar \lambda)x^Hy=0,由λμ\lambda \neq \muxHy=0x^Hy=0,即xxyy是正交的,得證。

上面的定理說明只要求出A的每個特徵值的特徵子空間的標準正交基,那麼所有的這些基向量一定兩兩正交。於是,我們有如下方法來求正規矩陣的特徵值分解:
求正規矩陣的譜分解
求正規矩陣的譜分解
注意,之所以我們構造出的矩陣U是酋矩陣,是因爲U的列向量組是單位正交的(其中對應於同一特徵值的特徵向量兩兩正交,對應於不同特徵值的特徵向量也兩兩正交)。而這樣的UU一定可以保證構造出了AA的一個譜分解:
因爲UHAU=[u11H...usrsH][Au11...Ausrs]=[u11H...usrsH][λ1u11...λsusrs]=[λ1Ir1λsIrs]U^HAU=\begin{bmatrix}u^H_{11}\\...\\u^H_{s_{r_s}}\end{bmatrix}\begin{bmatrix}Au_{11}&...&Au_{s_{r_s}}\end{bmatrix}\\=\begin{bmatrix}u^H_{11}\\...\\u^H_{s_{r_s}}\end{bmatrix}\begin{bmatrix}\lambda_1u_{11}&...&\lambda_su_{s_{r_s}}\end{bmatrix}=\begin{bmatrix}\lambda_1I_{r_1}&&\\&\ddots&\\&&\lambda_sI_{r_s}\end{bmatrix}所以A=UΛUHA=U\Lambda U^H是A的譜分解。

EVD的其他結論

譜分解還能得到其他一些有用的結論,如:

  • 定理21:設n階正規矩陣A的譜分解爲A=UΣUHA=U\Sigma U^H,則r(A)=r(Σ)r(A)=r(\Sigma),即A的秩等於A的非零特徵值的個數(如果重特徵值按重數算的話),零特徵值的代數重數爲nr(A)n-r(A)
  • 定理22:共軛對稱矩陣A的特徵值都是實數
    證:
    因A是共軛對稱矩陣,故A是正規矩陣。考慮A的譜分解A=UΣUHA=U\Sigma U^H,因爲AH=AA^H=A,即UΣUH=UΣUHU\overline{\Sigma}U^H=U\Sigma U^H,所以Σ=Σ\overline{\Sigma}=\Sigma,則對角矩陣Σ\Sigma的對角元都是實數,即A的特徵值都是實數。

此外,類似於schur分解,譜分解也可以加快矩陣的冪運算,且效果要更好。譜分解(酋相似對角化)是相似對角化的一個特殊情形,在相似對角化中有一個計算冪的經典例子:求斐波那契數列的通項,譜分解也能用在與之類似的情形。感興趣的讀者請參考鏈接

機器學習應用中,常常遇到實矩陣而非復矩陣的問題。爲避免複數運算,提高效率,需儘可能熟悉實矩陣中的相關結論:

  • 定理23:設ARn×nA\in R^{n\times n},則AA存在譜分解A=UΣUTA=U\Sigma U^T(其中UU是實正交矩陣,Σ\Sigma是實對角矩陣)的充要條件爲AA是實對稱矩陣
    證明:
    充分性:實對稱矩陣都是共軛對稱矩陣,故A的特徵值都是實數。考慮特徵方程(λIA)x=0(\lambda I-A)x=0,由於λ\lambda是實數,AA是實矩陣,故λIA\lambda I-A是實矩陣。取N(λIA)N(\lambda I-A)的一組實向量基,根據前述譜分解的構造方法,可以構造出AA的一個譜分解A=UΣUTA=U\Sigma U^T,其中UU是實正交矩陣,Σ\Sigma是實對角矩陣。
    必要性:設AA存在譜分解A=UΣUTA=U\Sigma U^T,其中UU是實正交矩陣,Σ\Sigma是實對角矩陣,則有AT=(UΣUT)T=UΣUT=AA^T=(U\Sigma U^T)^T=U\Sigma U^T=A
    【注】該定理的一個等價表述爲:任意實對稱矩陣必可正交相似對角化。

EVD用於求矩陣的逼近

譜分解在機器學習中有重要的應用,一個典型的例子就是主成分分析(PCA)。主成分分析能夠將高維數據“壓縮”成低維數據,在去噪的同時還能保留原數據的大部分主要特徵。PCA算法會在後面的博客中詳細說,這裏我們大致瞭解一下如何求得正規矩陣的近似矩陣,以達到去噪的效果:
設n階正規矩陣A的特徵值分解爲A=UΣUHA=U\Sigma U^H,且Σ=diag(λ1,...,λn)\Sigma=diag(\lambda_1,...,\lambda_n)U=[u1un]U=\begin{bmatrix}u_1&\cdots&u_n\end{bmatrix}。則A=[u1un]diag(λ1,...,λn)[u1HunH]=[λ1u1λnun][u1HunH]=Σi=1nλiuiuiH\begin{aligned}A&=\begin{bmatrix}u_1&\cdots&u_n\end{bmatrix}diag(\lambda_1,...,\lambda_n)\begin{bmatrix}u_1^H\\\cdots\\u_n^H\end{bmatrix}\\&=\begin{bmatrix}\lambda_1u_1&\cdots&\lambda_nu_n\end{bmatrix}\begin{bmatrix}u_1^H\\\cdots\\u_n^H\end{bmatrix}\\&=\Sigma_{i=1}^n\lambda_iu_iu_i^H\end{aligned}於是我們可以將原矩陣A看成是它的不同特徵的加權和。這樣我們就可以對A的特徵值按照模的大小排序,去掉模較小(注意特徵值是複數,在PCA中我們會對一個實對稱矩陣進行譜分解,此時特徵值都是實數,直接比較大小就行)的特徵值λ\lambda對應的項λuuH\lambda uu^H,也就是去掉權重較小的項,就得到了A的一個近似矩陣。(顯然,去掉模越接近0的特徵值的對應項,得到的矩陣與原矩陣的近似程度越高)
不過,由於特徵值分解的適用性有限,我們無法對任何矩陣都使用特徵值分解的方法來求近似矩陣。但是,後面要說的奇異值分解是適用於任意矩陣的,而奇異值分解出的奇異值和奇異向量就類似於特徵值和特徵向量的作用,故奇異值分解可以用來“分解任意矩陣的特徵”。在求任意矩陣的近似矩陣時,可以使用SVD的方法。

實正規矩陣的正交相似擬對角化(拓展內容)

我們在複數域下證明了正規矩陣必可酋對角化的結論,並且討論了實矩陣可正交相似對角化的充要條件(即必須是實對稱矩陣)。根據正規矩陣的定義可得,實正規矩陣就是滿足ATA=AATA^TA=AA^T的實矩陣。顯然,實對稱矩陣一定是實正規矩陣,但實正規矩陣不一定是實對稱陣(例如A=[1111]A=\begin{bmatrix}1&1\\-1&1\end{bmatrix}),因此並非所有實正規矩陣都可以正交相似對角化。然而,我們可以將它們“近似”對角化,即正交相似擬對角化。
擬對角陣具有如下形式:[R11Rnn]\begin{bmatrix}R_{11}&&\\&\ddots&\\&&R_{nn}\end{bmatrix}其中對角子塊RiiR_{ii}1×11\times1矩陣或2×22\times 2矩陣。擬對角陣是一種特殊的分塊對角陣,分塊對角陣也具有上述形式,只是對角子塊不一定必須是1×11\times1矩陣或2×22\times 2矩陣,只要是方塊就行了。

  • 引理7:任意實的擬上三角陣TT,若TT是正規矩陣,則TT一定是擬對角陣,且TT的對角子塊都是正規矩陣
    證:(對TT對角線上的子塊個數n進行歸納)
    n=1n=1時,TT本身就是正規的擬對角陣。假設命題對nk1n\leqslant k-1成立,現證明命題對n=kn=k也成立。設T=[T1SOR]T=\begin{bmatrix}T_1&S\\O&R\end{bmatrix},其中RR1×11\times1矩陣或2×22\times 2矩陣。TTT=[T1TOSTRT][T1SOR]=[T1TT1T1TSSTT1STS+RTR]T^TT=\begin{bmatrix}T_1^T&O\\S^T&R^T\end{bmatrix}\begin{bmatrix}T_1&S\\O&R\end{bmatrix}=\begin{bmatrix}T_1^TT_1&T_1^TS\\S^TT_1&S^TS+R^TR\end{bmatrix}TTT=[T1SOR][T1TOSTRT]=[T1T1T+SSTSRTRSTRRT]TT^T=\begin{bmatrix}T_1&S\\O&R\end{bmatrix}\begin{bmatrix}T_1^T&O\\S^T&R^T\end{bmatrix}=\begin{bmatrix}T_1T_1^T+SS^T&SR^T\\RS^T&RR^T\end{bmatrix}TTT=TTTT^TT=TT^TT1TT1=T1T1T+SSTT_1^TT_1=T_1T_1^T+SS^TRRT=STS+RTRRR^T=S^TS+R^TRtr(RRT)=tr(STS)+tr(RTR)=tr(STS)+tr(RRT)tr(RR^T)=tr(S^TS)+tr(R^TR)=tr(S^TS)+tr(RR^T),故tr(STS)=0tr(S^TS)=0,故S=OS=ORTR=RRTR^TR=RR^TT1TT1=T1T1TT_1^TT_1=T_1T_1^T。於是T=[T1OOR]T=\begin{bmatrix}T_1&O\\O&R\end{bmatrix},其中T1T_1是有n1n-1個對角子塊的擬上三角陣,且T1T_1是正規矩陣,故由歸納假設知T1T_1是對角子塊均爲正規矩陣的擬對角陣。結合RTR=RRTR^TR=RR^T就知道TT也是對角子塊均爲正規矩陣的擬對角陣。證畢。
  • 引理8:設D=[abcd]R2×2D=\begin{bmatrix}a&b\\c&d\end{bmatrix}\in R^{2\times 2},若DD是正規矩陣且DD有一對共軛的虛特徵值,則d=a,c=bd=a,c=-bb0b\neq 0
    證:
    根據DD是正規矩陣可得b2=c2b^2=c^2ac+bd=ab+cdac+bd=ab+cd。假設b=cb=c,考慮DD的特徵方程λ2(a+d)λ+(adbc)=0\lambda^2-(a+d)\lambda+(ad-bc)=0,這是一個二次方程,判別式Δ=(a+d)24(adbc)=(ad)2+4b20\Delta=(a+d)^2-4(ad-bc)=(a-d)^2+4b^2\geqslant 0,故DD有實特徵值,這與已知條件矛盾。故假設不成立,bcb\neq c,根據b2=c2b^2=c^2必有c=bc=-b,再根據ac+bd=ab+cdac+bd=ab+cd可得b(da)=0b(d-a)=0。假設b=0b=0,則c=b=0c=-b=0DD成爲一對角陣,這也與已知條件矛盾。故假設不成立,必有b0b\neq 0,因此必有d=ad=a。證畢。
    【注1】注意,虛數是指不是實數的複數,因此二階矩陣DD有一對共軛的虛特徵值就意味着DD沒有實特徵值。
    【注2】在引理8的條件下,DD的特徵值就是a±bia\pm bi
  • 定理24:ARn×nA\in R^{n\times n}是正規矩陣的充要條件爲AA正交相似於一個滿足如下條件的擬對角陣TTT=[R11Rnn]T=\begin{bmatrix}R_{11}&&\\&\ddots&\\&&R_{nn}\end{bmatrix}其中對角子塊RiiR_{ii}1×11\times 1矩陣或具有如下形式的2×22\times 2矩陣Rii=[abba]R_{ii}=\begin{bmatrix}a&b\\-b&a\end{bmatrix}滿足b0b\neq 0
    證明:
    必要性:根據定理15,存在AA的實Schur分解A=PTPTA=PTP^T,其中PP是實正交矩陣,TT是實的擬上三角陣,滿足TT的對角子塊要麼是1×11\times 1矩陣,要麼是有一對共軛的虛特徵值的2×22\times 2矩陣。由AA是正規矩陣,將上式代入ATA=AATA^TA=AA^TPTTTPT=PTTTPTPT^TTP^T=PTT^TP^T,故TTT=TTTT^TT=TT^T,即TT是正規矩陣。由引理7知T是擬對角陣,且TT的每個對角子塊都是正規矩陣。任取TT的一個2×22\times 2對角子塊RiiR_{ii},則RiiR_{ii}是正規矩陣,且RiiR_{ii}有一對共軛的虛特徵值,於是由引理8知RiiR_{ii}具有形式Rii=[abba]R_{ii}=\begin{bmatrix}a&b\\-b&a\end{bmatrix},其中b0b\neq 0。得證。
    充分性:若A正交相似於一個命題中所述的擬對角矩陣,即存在實正交矩陣UU和擬對角陣TT使得A=UTUTA=UTU^T,其中TT如命題所述。則ATA=UTTUTUTUT=UTTTUTA^TA=UT^TU^TUTU^T=UT^TTU^TAAT=UTUTUTTUT=UTTTUTAA^T=UTU^TUT^TU^T=UTT^TU^T,注意到TT的對角子塊都是正規矩陣(注意,1×11\times 1矩陣本身就是正規的,而具有形式[abba]\begin{bmatrix}a&b\\-b&a\end{bmatrix}2×22\times 2矩陣經過計算可驗證是正規的),故TTT=TTTT^TT=TT^T,故ATA=AATA^TA=AA^T
    【注】實際上,擬對角陣TT可以限制得更嚴格一些,將原定理中的表述更改爲“其中對角子塊RiiR_{ii}1×11\times 1矩陣或具有形式Rii=[abba]R_{ii}=\begin{bmatrix}a&b\\-b&a\end{bmatrix}2×22\times 2矩陣,滿足b>0b>0”,則定理仍成立。這是因爲當b<0b<0時,總是可以作正交相似變換[0110][abba][0110]=[abba]\begin{bmatrix}0&1\\1&0\end{bmatrix}\begin{bmatrix}a&b\\-b&a\end{bmatrix}\begin{bmatrix}0&1\\1&0\end{bmatrix}=\begin{bmatrix}a&b'\\-b'&a\end{bmatrix},使得b=b>0b'=-b>0

奇異值分解SVD(任意矩陣)

奇異值分解在機器學習領域的應用實在是太廣泛了:數據壓縮、推薦系統、自然語言處理等等到處都有它的身影。這裏介紹奇異值分解的數學推導,建議數學推導之外多瞭解一些應用和直觀的幾何解釋。推薦學習奇異值的幾何意義以及奇異值分解與特徵值分解的區別與聯繫,以上知乎鏈接中的回答多是從線性變換的角度來講解奇異值分解(實際上矩陣的幾何意義就是線性變換),這樣能夠較爲直觀得理解EVD和SVD。照片壓縮直觀地給出了奇異值分解在照片壓縮上呈現的效果。

  • 定義:設ACrm×nA\in{C^{m\times{n}}_r}AHAA^HA的特徵值爲λ1λ2...λr>λr+1=...=λn=0\lambda_1\geqslant \lambda_2\geqslant ...\geqslant\lambda_r\gt\lambda_{r+1}= ...=\lambda_n=0σi=λi(i=1,2,...,n)A\sigma_i=\sqrt \lambda_i(i=1,2,...,n)爲A的奇異值
    【注1】關於AHAA^HA的特徵值爲什麼都是非負實數的問題請參考鏈接),注意奇異值都是非負的
    【注2】因爲r(AHA)=r(A)=rr(A^HA)=r(A)=r,且AHAA^HA是一個n階正規矩陣,故AHAA^HA的零特徵值的代數重數是nrn-r,這就是爲什麼λr+1=...=λn=0\lambda_{r+1}=...=\lambda_n=0
    【注3】網上看到有的人把AHAA^HAAAHAA^H的特徵值完全等同起來,這是不對的(它們差就差在零特徵值上)。對奇異值的定義就是採用AHAA^HA的特徵值來定義,用AAHAA^H來定義是不準確的。(不過這不會影響奇異值分解的結果)

奇異值的相關性質:

  1. 奇異值的酋不變性(旋轉不變性):
  • 定理25:設U是酋矩陣,則UAUA的奇異值與AA的奇異值相同
    證明:(UA)H(UA)=AHUHUA=AHA(UA)^H(UA)=A^HU^HUA=A^HA,故由奇異值的定義得UAUA的奇異值與AA的奇異值相同。
  • 定理26:設U是酋矩陣,則AUAU的奇異值與AA的奇異值相同
    證明:(AU)H(AU)=UH(AHA)U(AU)^H(AU)=U^H(A^HA)U,即(AU)H(AU)(AU)^H(AU)酋相似於AHAA^HA,故它們的特徵值相同,由奇異值的定義得AUAU的奇異值與AA的奇異值相同。
  1. 逆矩陣的奇異值:
  • 定理27:設ACnn×nA\in C^{n\times n}_n,則AA的奇異值均非零。設AA的奇異值爲σ1σ2σn>0\sigma_1\geqslant \sigma_2\geqslant\cdots\geqslant\sigma_n\gt 0,則A1A^{-1}的奇異值爲1/σn1/σn11/σ11/\sigma_n\geqslant1/\sigma_{n-1}\geqslant\cdots\geqslant1/\sigma_1
    證明:
    由奇異值定義的註釋2知AA的奇異值均爲正。設AAHAA^H的一個譜分解爲AAH=UΣUHAA^H=U\Sigma U^H,其中Σ=diag(λ1,λ2,,λn),λ1λ2λn>0\Sigma=diag(\lambda_1,\lambda_2,\cdots,\lambda_n),\lambda_1\geqslant\lambda_2\geqslant\cdots\geqslant\lambda_n\gt 0。由於AHAA^HAAAHAA^H的非零特徵值相同,且同一非零特徵值的代數重數相等,於是由奇異值的定義得σi=λi,i=1,2,...,n\sigma_i=\sqrt{\lambda_i},i=1,2,...,n。因爲(A1)HA1=(AAH)1=UΣ1UH(A^{-1})^HA^{-1}=(AA^H)^{-1}=U\Sigma^{-1}U^H,於是由奇異值的定義得A1A^{-1}的奇異值爲1/λn1/λn11/λ11/\sqrt{\lambda_n}\geqslant1/\sqrt{\lambda_{n-1}}\geqslant\cdots\geqslant1/\sqrt{\lambda_1},即1/σn1/σn11/σ11/\sigma_n\geqslant1/\sigma_{n-1}\geqslant\cdots\geqslant1/\sigma_1
  1. 正規矩陣的奇異值與特徵值的關係:
  • 定理28:設正規矩陣ACn×nA\in C^{n\times n}的奇異值爲σ1σ2...σn\sigma_1 \geqslant \sigma_2\geqslant...\geqslant\sigma_n,特徵值爲λ1,λ2,...,λn\lambda_1,\lambda_2,...,\lambda_n滿足λ1 λ2...λn|\lambda_1|\geqslant\ |\lambda_2|\geqslant ...\geqslant|\lambda_n|,則σi=λi,i=1,2,...,n\sigma_i=|\lambda_i|,i=1,2,...,n
    證明:
    設A的一個譜分解爲A=UΣUHA=U\Sigma U^H,其中Σ=diag(λ1,λ2,...,λn)\Sigma = diag(\lambda_1,\lambda_2,...,\lambda_n),則AHA=UΣUHUΣUH=UΣΣUHA^HA=U\overline{\Sigma}U^HU\Sigma U^H=U\overline{\Sigma}\Sigma U^H。注意到該式是AHAA^HA的一個譜分解,且ΣΣ\overline{\Sigma}\Sigma的對角元爲λ12 λ22...λn2|\lambda_1|^2\geqslant\ |\lambda_2|^2\geqslant ...\geqslant|\lambda_n|^2,故根據奇異值的定義得σi=λi,i=1,2,...,n\sigma_i=|\lambda_i|,i=1,2,...,n

定理28僅給出了正規矩陣的奇異值與特徵值之間的關係。實際上,對於一般的方陣而言,奇異值和特徵值之間也是有關係的(Shur不等式)。關於這一點的討論需要藉助Frobenius範數,詳見後面的博客(鏈接)。

下面我們進入奇異值分解。

SVD的存在性定理

  • 定義1:設ACrm×nA\in{C^{m\times{n}}_r},若存在m階酋矩陣U和n階酋矩陣V,以及m×nm\times{n}廣義對角矩陣Λ=[ΣOOO]\Lambda=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix},其中Σ=diag(σ1,...,σr)\Sigma=diag(\sigma_1,...,\sigma_r)σ1..σr>0\sigma_1\geqslant ..\geqslant \sigma_r>0爲A的非零奇異值,使得A=UΛVHA=U\Lambda V^H,則稱A=UΛVHA=U\Lambda V^H是A的一個奇異值分解
    【注1】由於在Σ\Sigma的對角線上AA的非零奇異值是從大到小排列的,故若AA的奇異值分解存在,則Λ\Lambda唯一。在有些資料的定義中,廣義對角矩陣Λ\Lambda的對角線元素的大小順序可以是任意的,但一般來說爲便於分析更常約束Λ\Lambda的對角線元素從大到小排列。
    【注2】由於AHAA^HAAAHAA^H的非零特徵值相同,且同一非零特徵值的代數重數相等,故A的非零奇異值既是AHAA^HA的非零特徵值的算數平方根,又是AAHAA^H的非零特徵值的算數平方根。
    【注3】由奇異值分解的定義及注2知,若A=UΛVHA=U\Lambda V^H是A的一個奇異值分解,則AH=VΛUHA^H=V\Lambda U^HAHA^H的一個奇異值分解(但需注意的是,AA的奇異值與AHA^H的奇異值不完全等同,且只差在零奇異值上)

上述定義的條件可以減弱:

  • 定義2:設ACm×nA\in C^{m\times n},若存在m階酋矩陣UU和n階酋矩陣VV,以及m×nm\times{n}廣義對角矩陣Λ=[ΣOOO]\Lambda=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix},其中Σ=diag(σ1,σ2,...,σr)\Sigma=diag(\sigma_1,\sigma_2,...,\sigma_r)σ1σ2...σr>0\sigma_1\geqslant\sigma_2\geqslant...\sigma_r\gt 0,使得A=UΛVHA=U\Lambda V^H,則稱A=UΛVHA=U\Lambda V^HAA的一個奇異值分解
    【注】注意定義1和定義2的區別:定義1中設ACrm×nA\in{C^{m\times{n}}_r},而定義2中設ACm×nA\in C^{m\times n},即rr在定義1中指明爲AA的秩,而在定義2中並未指明;定義1中直接指明σ1σ2...σr>0\sigma_1\geqslant\sigma_2\geqslant...\sigma_r\gt 0AA的非零奇異值,而在定義2中並未指明

這兩個定義是等價的:
顯然若定義1的條件被滿足,則定義2的條件也被滿足(定義2的條件相較於定義1弱化了)。
若定義2的條件被滿足,則由r(A)=r(UΛVH)=r(Λ)=r(Σ)=rr(A)=r(U\Lambda V^H)=r(\Lambda)=r(\Sigma)=rACrm×nA\in C^{m\times n}_r(即rr恰爲AA的秩),注意到AHA=(UΛVH)H(UΛVH)=VΛTUHUΛVH=VΛTΛVHA^HA=(U\Lambda V^H)^H(U\Lambda V^H)=V\Lambda^TU^HU\Lambda V^H=V\Lambda^T\Lambda V^HAHAA^HA的一個譜分解,於是ΛTΛ\Lambda^T\Lambda的非零對角線元素σ12σ22...σr2>0\sigma_1^2\geqslant\sigma_2^2\geqslant...\sigma_r^2\gt 0恰爲AHAA^HA的非零特徵值,於是根據奇異值的定義得σ1σ2...σr>0\sigma_1\geqslant\sigma_2\geqslant...\sigma_r\gt 0AA的非零奇異值,即定義1的條件也被滿足。

下面我們證明任意矩陣的奇異值分解的存在性:

  • 定理29:任意矩陣ACrm×nA\in{C^{m\times{n}}_r}都存在奇異值分解A=UΛVHA=U\Lambda V^H,其中U、V分別爲m、n階酋矩陣,Λ=[ΣOOO]\Lambda=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix}Σ=diag(σ1,...,σr)\Sigma=diag(\sigma_1,...,\sigma_r)σ1..σr\sigma_1\geqslant ..\geqslant \sigma_r爲A的非零奇異值
    證明:
    由於AHAA^HA是n階正規矩陣,故存在n階酋矩陣V使得VHAHAV=[Σ2OOO]V^HA^HAV=\begin{bmatrix}\Sigma^2&O\\O&O\end{bmatrix}。將V分塊V=[V1V2]V=\begin{bmatrix}V_1&V_2\end{bmatrix},其中V1V_1n×rn\times{r}矩陣,V2V_2r×nr\times{n}矩陣。則V1HAHAV1=Σ2V_1^HA^HAV_1=\Sigma^2V2HAHAV2=OV_2^HA^HAV_2=O,即Σ1V1HAHAV1Σ1=Ir\Sigma^{-1}V_1^HA^HAV_1\Sigma^{-1}=I_r(AV2)H(AV2)=O(AV_2)^H(AV_2)=O。設U1=AV1Σ1U_1=AV_1\Sigma^{-1},則有U1HU1=IrU_1^HU_1=I_rAV2=OAV_2=O。由於U1U_1的列向量組爲單位正交向量組(注意是r個m維向量),故由擴充定理以及Schmidt正交化方法可將U1U_1的列向量組擴充爲CmC^m的一組標準正交基,於是構造出m階酋矩陣U=[U1U2]U=\begin{bmatrix}U_1&U_2\end{bmatrix}。由UHAV=[U1HU2H]A[V1V2]=[U1HAV1U1HAV2U2HAV1U2HAV2]=[ΣOOO]=Λ\begin{aligned}U^HAV&=\begin{bmatrix}U^H_1\\U^H_2\end{bmatrix}A\begin{bmatrix}V_1&V_2\end{bmatrix}\\&=\begin{bmatrix}U_1^HAV_1&U_1^HAV_2\\U_2^HAV_1&U_2^HAV_2\end{bmatrix}\\&=\begin{bmatrix}\Sigma&O\\O&O\end{bmatrix}=\Lambda\end{aligned}A=UΛVHA=U\Lambda V^H就是A的一個奇異值分解。
    【注】該定理的證明實際上就是通過將AHAA^HA進行譜分解構造出A的一個奇異值分解。若A是一實矩陣,使用類似的構造方法(不同之處在於AHA=ATAA^HA=A^TA的譜分解應選擇“實的”譜分解,且應將U1U_1的列向量組擴充爲RmR^m的標準正交基)可知,A存在“實的”奇異值分解,即A=UΛVTA=U\Lambda V^T,其中UUVV是實正交矩陣,Λ\Lambda是實廣義對角矩陣。

SVD的構造方法(參考資料)

由定理29的證明過程可以看出,奇異值分解的構造是比較複雜的(先構造AHAA^HA的特徵值分解,再構造AA的奇異值分解的話時間複雜度太高,且數值穩定性不好)。一般,奇異值分解採用如下算法:第一步用Householder變換將A化爲雙對角陣,第二步用QR分解或單邊Jacobi旋轉求雙對角陣的SVD,複雜度可以到O(mn2)O(mn^2),且有很好的數值穩定性。(詳見英文維基百科

SVD的性質

現在我們來認識一下奇異值分解的數學性質:
(以下均設ACrm×nA\in{C^{m\times{n}}_r}A=UΛVHA=U\Lambda V^H是A的一個奇異值分解)

  • 奇異值與奇異性的關係:若A是n階方陣,則det(A)=det(U)det(Λ)det(VH)=σ1σ2...σn|det(A)|=|det(U)|det(\Lambda)|det(V^H)|=\sigma_1\sigma_2...\sigma_n,可見A是非奇異的等價於A的奇異值都不爲零
  • 全奇異值分解與截尾奇異值分解:
    • 全奇異值分解:就是前面我們所說的奇異值分解A=UΛVHA=U\Lambda V^H
    • 截尾奇異值分解:設U=[U1U2]U=\begin{bmatrix}U_1&U_2\end{bmatrix}V=[V1V2]V=\begin{bmatrix}V_1&V_2\end{bmatrix},其中U1U_1是U的前r列(注意r是A的秩),V1V_1是V的前r列。則A=UΛVH=[U1U2][ΣrOOO][V1HV2H]=U1ΣrV1HA=U\Lambda V^H=\begin{bmatrix}U_1&U_2\end{bmatrix}\begin{bmatrix}\Sigma_r&O\\O&O\end{bmatrix}\begin{bmatrix}V_1^H\\V_2^H\end{bmatrix}=U_1\Sigma_rV_1^H。稱A=U1ΣrV1HA=U_1\Sigma_rV_1^H爲A的截尾奇異值分解。
      (注意:截尾奇異值分解表明,實際上酋矩陣U和V各自的子矩陣U1U_1V1V_1和A的全部非零奇異值就已攜帶了原矩陣A的全部信息)
    • 當A是滿秩方陣時,A的截尾奇異值分解和全奇異值分解是等同的
    • 如果仔細觀察截尾奇異值分解式,會發現它是A的一個滿秩分解:A=U1(ΣrV1H)A =U_1(\Sigma_rV_1^H)U1U_1是一列滿秩矩陣,ΣrV1H\Sigma_rV^H_1是一行滿秩矩陣;或者A=(U1Σr)V1HA=(U_1\Sigma_r)V_1^HU1ΣrU_1\Sigma_r是一列滿秩矩陣,V1HV_1^H是一行滿秩矩陣;再或者A=(U1Σr)(ΣrV1H)A=(U_1\sqrt{\Sigma_r})(\sqrt{\Sigma_r}V_1^H),其中Σr=diag(σ1,...,σr)\sqrt{\Sigma_r}=diag(\sqrt{\sigma_1},...,{\sigma_r})U1ΣrU_1\sqrt{\Sigma_r}是一列滿秩矩陣,ΣrV1H\sqrt{\Sigma_r}V_1^H是一行滿秩矩陣……等等。
  • 認識酋矩陣U和V:
    • 左奇異向量與右奇異向量:
      U的列向量稱爲A的左奇異向量,V的列向量稱爲A的右奇異向量。
      AA的左奇異向量都是AAHAA^H的特徵向量,AA的右奇異向量都是AHAA^HA的特徵向量。(原因:根據A=UΛVHA=U\Lambda V^H,有AAH=UΛVHVΛTUH=U(ΛΛT)UHAA^H=U\Lambda V^HV\Lambda ^TU^H=U(\Lambda\Lambda^T)U^H,注意這是AAHAA^H的一個譜分解,於是UU的列向量都是AHAA^HA的特徵向量。同理,根據AHA=V(ΛTΛ)VHA^HA=V(\Lambda^T\Lambda)V^HAHAA^HA的一個譜分解就知道VV的列向量都是AAHAA^H的特徵向量)
    • U=[U1U2]U=\begin{bmatrix}U_1&U_2\end{bmatrix},其中U1U_1是U的前rr列(注意r是A的秩)構成的子矩陣。則U1U_1的列向量組是A的列空間R(A)R(A)的標準正交基,U2U_2的列向量組是AHA^H的零空間N(AH)N(A^H)的標準正交基
      (原因:觀察截尾奇異值分解式A=U1(ΣrV1H)A=U_1(\Sigma_rV_1^H),可見A的列向量組可由U1U_1的列向量組線性表示,又dim R(A)=r=r(U1)dim\ R(A)=r=r(U_1),所以U1U_1的列向量組是R(A)R(A)的標準正交基;計算可得AHU2=V1ΣrTU1HU2=V1ΣrTO=OA^HU_2=V_1\Sigma_r^TU_1^HU_2=V_1\Sigma_r^TO=O,又dim N(AH)=mr=r(U2)dim\ N(A^H)=m-r=r(U_2),所以U2U_2的列向量組是N(AH)N(A^H)的標準正交基)
      【注】這說明奇異值分解可以用來求矩陣的列空間及其正交補的標準正交基。
    • V=[V1V2]V=\begin{bmatrix}V_1&V_2\end{bmatrix},其中V1V_1是V的前r列構成的子矩陣。則V1V_1的列向量組是AHA^H的列空間R(AH)R(A^H)的一組標準正交基,V2V_2的列向量組是A的零空間N(A)N(A)的一組標準正交基
      (原因和上面同理)
      【注】這說明奇異值分解可以用來求矩陣的零空間及其正交補的標準正交基。
  • SVD與EVD的關係
    • 定理30:若A是Hermite半正定矩陣,則A的奇異值與A的特徵值完全等同,A的一個特徵值分解是A的一個奇異值分解
      證明:
      若A是Hermite半正定矩陣,則A的特徵值(爲實數)均非負。設n階方陣AA的一個譜分解爲A=UΛUHA=U\Lambda U^H,其中Λ=diag(λ1,...,λn)\Lambda=diag(\lambda_1,...,\lambda_n),則AHA=A2=UΛUHUΛUH=UΛ2UHA^HA=A^2=U\Lambda U^HU\Lambda U^H=U\Lambda^2 U^H。這說明AHAA^HA的特徵值爲λ12,...,λn2\lambda_1^2,...,\lambda_n^2,故由奇異值的定義知A的奇異值σi=λi2=λi,i=1,2,...,n\sigma_i=\sqrt{\lambda_i^2}=\lambda_i,i=1,2,...,n,即A的奇異值與特徵值等同。進而由奇異值分解的定義知A=UΛUHA=U\Lambda U^H是A的一個奇異值分解。

SVD用於求矩陣的逼近

奇異值分解可以視作方陣(正規矩陣)的特徵值分解在一般的長方矩陣上的推廣,奇異值和奇異向量是描述長方矩陣的特徵的量,這一點可以通過照片壓縮的例子直觀地理解。和特徵值分解一樣,奇異值分解可以改寫成矩陣的特徵的加權和:由ACrm×nA\in{C^{m\times{n}}_r}的截尾奇異值分解式A=U1ΣrV1HA=U_1\Sigma_rV_1^H,若設U1=[u1...ur]U_1=\begin{bmatrix}u_1&...u_r\end{bmatrix}V1=[v1...vr]V_1=\begin{bmatrix}v_1&...v_r\end{bmatrix},則有A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H在求A的近似矩陣時,只要去掉奇異值較小的項即可(等價於在奇異值分解式中令對角矩陣上相應的奇異值爲零)。另外,注意到r(A)=r(U1ΣrV1H)=r(Σr)r(A)=r(U_1\Sigma_rV_1^H)=r(\Sigma_r),故每去掉A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H中的一項,AA的秩就減少1,所以這樣求得的近似矩陣實際上是對原矩陣的低秩逼近。這種方法可以實現對數據的去噪、壓縮等。還有一點比較有趣,σiuiviH\sigma_iu_iv_i^H是一個秩爲1的矩陣(因爲r(σiuiviH)r(ui)=1r(\sigma_iu_iv_i^H)\leqslant r(u_i)=1r(σiuiviH)r(ui)+r(viH)1=1r(\sigma_iu_iv_i^H)\geqslant r(u_i)+r(v_i^H)-1=1),所以A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H實際上是把A拆分成了若干獨立的低秩矩陣(秩爲1)的加權和,每個低秩項都可視作A的一個特徵項。
總的來說,每去掉A=Σi=1rσiuiviHA=\Sigma_{i=1}^r\sigma_iu_iv_i^H中的一項,不僅去掉的是一個秩爲1的項,還恰好使AA的秩減少了1。

SVD在推薦系統中的應用

奇異值分解的應用有很多,這裏簡單介紹一下SVD在推薦系統中的應用:
推薦算法可以分爲傳統的SVD方法和凸優化的方法,這裏介紹傳統的SVD算法。傳統算法中SVD的作用是提取每個user和每個item的主要特徵(實際上是對原評分矩陣做低秩逼近),用於計算每個item間的相似度或每個user間的相似度,如果利用user間的相似度來預測評分,就是User_based的算法;如果利用item間的相似度來預測評分,就是Item_based的算法。
在這裏插入圖片描述
設有n×mn\times m評分矩陣A(如上圖),A的(i,j)(i,j)元素是User(j)User(j)Item(i)Item(i)的評分。通常A是一個稀疏矩陣,即A中大多數元素是未定義的,可以使用均值歸一化的方法填充(注意這裏的填充是爲了後續可計算,而不是作爲預測值):先算出每個item已有評分的均分,然後給該item的每個已有評分減去該item的均分,並用0填充該item下未定義的評分。
設填充好的評分矩陣是B。求出B的“實的”奇異值分解式B=UΛVTB=U\Lambda V^TUUΛ\LambdaVV都是實矩陣),其中B的奇異值在Λ\Lambda的對角線上從大到小排列,令Λ\Lambda中B的最小的k個非零奇異值爲零(具體k取多少取決於你想保留原矩陣B的多少信息),就得到了B的一個低秩逼近矩陣C,C的截尾奇異值分解式是C=U1ΣV1TC=U_1\Sigma V_1^T(如果保留了B的前ll大奇異值,則U1U_1就是UU的前ll列,V1V_1就是VV的前ll列)。以User_based爲例,注意到U1U_1的列向量組是C的列空間的標準正交基,於是可將C的每一列在該基下的座標向量求出(實際中不會求出矩陣C,所以實際計算時常是拿B的每一列求),得到了降維後User的特徵,於是可以計算任意兩個User間的相似度(餘弦相似度、歐式距離、皮爾遜相關係數等相似度函數均可)。
現在,若要預測User(j)User(j)item(i)item(i)的評分(前提是User(j)User(j)未對item(i)item(i)打分),可以看看其他user對item(i)item(i)的評分是多少,將其他user與User(j)User(j)的相似度作爲權重係數,求出其他user對item(i)item(i)的評分的加權平均值,作爲User(j)User(j)item(i)item(i)的評分的預測值。最後,推薦過程則是基於預測的評分,將預測評分較高的item推薦給用戶即可。
【補充】如何求C的列向量在已知C的列空間的標準正交基(即U1U_1的列向量組)下的座標:設CC的第ii個列向量的座標向量是ziz_iZ=[z1...zn]Z=\begin{bmatrix}z_1&...&z_n\end{bmatrix}。那麼就是要求得矩陣Z使得C=U1ZC=U_1Z,兩端左乘U1TU_1^T,得到U1TC=U1TU1Z=ZU_1^TC=U_1^TU_1Z=Z。故求Z的公式是Z=U1TCZ=U_1^TC

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章