全面理解奇異值分解

本篇筆記主要參考《統計學習方法》

奇異值分解的定義與性質

定義與定理

奇異值分解又叫做SVD,是一種矩陣因子分解方法,是統計學習中的重要工具。

任意一個m x n矩陣,都可以表示爲三個矩陣的乘積形式,分別是m階標準正交矩陣、由降序排列的非負對角線元素組成的m x n矩形對角矩陣n階標準正交矩陣,這就稱爲該矩陣的奇異值分解

奇異值分解可以看作矩陣數據壓縮的一種方法,即用因子分解的方式近似地表示原始矩陣,這種近似是在平方損失意義下的最優近似。

統計學習方法中對奇異值分解定義如下
在這裏插入圖片描述
其中
UUT=IVVT=IΣ=diag(σ1,σ2,,σp)σ1σ2σp0p=min(m,n)(1.0)\begin{array}{l} U U^{\mathrm{T}}=I \\ V V^{\mathrm{T}}=I \\ \Sigma=\operatorname{diag}\left(\sigma_{1}, \sigma_{2}, \cdots, \sigma_{p}\right) \\ \sigma_{1} \geqslant \sigma_{2} \geqslant \cdots \geqslant \sigma_{p} \geqslant 0 \\ p=\min (m, n) \tag{1.0} \end{array}
其實個人認爲書本里面的用語可能不夠嚴謹,U和V在上面條件的定義下應該是標準正交矩陣。上式中的σ\sigma就是奇異值,U的列向量稱爲左奇異向量,V的列向量稱爲右奇異向量。

事實上矩陣的奇異值分解可以看作是方陣對角化的推廣。還值得一提的是實對稱陣一定可以對角化。爲什麼值得一提?因爲這個結論是另一個結論的證明基礎:任意m x n的實矩陣都存在滿足公式(1.0)要求的奇異值分解。這就是奇異值分解基本定理,表述如下:
在這裏插入圖片描述
下面是定理的證明,該證明過程也是奇異值計算的過程。


奇異值分解基本定理證明

先考慮A’A。首先因爲A’A是實對稱陣,所以必然存在一個n階正交矩陣V能實現A’A的對角化(相似變換)。同時因爲是A’A,所以其有特徵值都大於0的性質(這個性質簡單想想就容易得出,A’A相當於計算模,行列式大於0,所以所有特徵值肯定也都大於0)。令x是A’A的特徵向量,對應特徵值爲λ\lambda,證明如下
Ax2=xTATAx=λxTx=λx2\|A x\|^{2}=x^{\mathrm{T}} A^{\mathrm{T}} A x=\lambda x^{\mathrm{T}} x=\lambda\|x\|^{2}
於是
λ=Ax2x20\lambda=\frac{\|A x\|^{2}}{\|x\|^{2}} \geqslant 0
假設調整一下正交矩陣讓所有特徵值形成降序排列
λ1λ2λn0\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{n} \geqslant 0
那麼特徵值的平方根就是矩陣A的奇異值
σj=λj,j=1,2,,n\sigma_{j}=\sqrt{\lambda_{j}}, \quad j=1,2, \cdots, n
因爲A的秩是r,所以A’A的秩也是r,這裏可參照Ax=o中x的空間的維度與A’Ax=o的x空間的維度一致,由維數定理可知秩也一致。所以非0特徵值個數與0特徵值個數都可以確定了:
λ1λ2λr>0,λr+1=λr+2==λn=0\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{r}>0, \quad \lambda_{r+1}=\lambda_{r+2}=\cdots=\lambda_{n}=0
對應地,奇異值也一樣
σ1σ2σr>0,σr+1=σr+2==σn=0\sigma_{1} \geqslant \sigma_{2} \geqslant \cdots \geqslant \sigma_{r}>0, \quad \sigma_{r+1}=\sigma_{r+2}=\cdots=\sigma_{n}=0
這時候根據奇異值是否爲0,來對矩陣V進行分塊操作,令
V1=[ν1ν2νr],V2=[νr+1νr+2νn]V_{1}=\left[\begin{array}{llll} \nu_{1} & \nu_{2} & \cdots & \nu_{r} \end{array}\right], \quad V_{2}=\left[\begin{array}{llll} \nu_{r+1} & \nu_{r+2} & \cdots & \nu_{n} \end{array}\right]
這樣0特徵值對應的列向量成一塊,非零特徵值對應的列向量也成一塊。就構成了n階正交矩陣V。標準化一下可得標準正交陣V。縮放特徵向量其對應的特徵值是不變的,所以縮小模長倍也OK。
這時候看中間的對角陣,先定義r階對角陣爲
Σ1=[σ1σ2σr]\Sigma_{1}=\left[\begin{array}{cccc} \sigma_{1} & & & \\ & \sigma_{2} & & \\ & & \ddots & \\ & & & \sigma_{r} \end{array}\right]
於是m x n矩形對角矩陣可表示爲
Σ=[Σ1000]\Sigma=\left[\begin{array}{cc} \Sigma_{1} & 0 \\ 0 & 0 \end{array}\right]
這是V和對角陣都確定,先不急着確定U,繼續看看V,由於其列向量構成A’A的特徵向量,所以
ATAvj=0,j=r+1,,nA^{\mathrm{T}} A v_{j}=0, \quad j=r+1, \cdots, n
這裏發現V2V_2的列向量構成了A’A的零空間,也就是核,所以V2V_2的列向量也構成A的零空間的一組標準正交基,於是可得
AV2=0A V_{2}=0
根據分塊矩陣和正交陣的性質,有
I=VVT=V1V1T+V2V2TA=AI=AV1V1T+AV2V2T=AV1V1T\begin{array}{c} I=V V^{\mathrm{T}}=V_{1} V_{1}^{\mathrm{T}}+V_{2} V_{2}^{\mathrm{T}} \\ A=A I=A V_{1} V_{1}^{\mathrm{T}}+A V_{2} V_{2}^{\mathrm{T}}=A V_{1} V_{1}^{\mathrm{T}} \end{array}
完畢,接下來確定U

uj=1σjAvj,j=1,2,,rU1=[u1u2ur]\begin{array}{c} u_{j}=\frac{1}{\sigma_{j}} A v_{j}, \quad j=1,2, \cdots, r \\ U_{1}=\left[\begin{array}{llll} u_{1} & u_{2} & \cdots & u_{r} \end{array}\right] \end{array}
這時候可知這r個u一定是線性無關的了,
AV1=U1Σ1A V_{1}=U_{1} \Sigma_{1}
U1的列向量構成一組標準正交基,因爲
uiTuj=(1σiviTAT)(1σjAvj)=1σiσjviT(ATAvj)=σjσiviTvj=δij,i=1,2,,r;j=1,2,,r\begin{aligned} u_{i}^{\mathrm{T}} u_{j} &=\left(\frac{1}{\sigma_{i}} v_{i}^{\mathrm{T}} A^{\mathrm{T}}\right)\left(\frac{1}{\sigma_{j}} A v_{j}\right) \\ &=\frac{1}{\sigma_{i} \sigma_{j}} v_{i}^{\mathrm{T}}\left(A^{\mathrm{T}} A v_{j}\right) \\ &=\frac{\sigma_{j}}{\sigma_{i}} v_{i}^{\mathrm{T}} v_{j} \\ &=\delta_{i j}, \quad i=1,2, \cdots, r ; \quad j=1,2, \cdots, r \end{aligned}
那現在要做的就是把u擴展成m維,使得U1到Um變成m維空間中的一組正交基,只是從r維往後的U是落在Ax=o解空間裏面了。
所以可以這樣定義U:
U2=[ur+1ur+2um]U=[U1U2]\begin{array}{l} U_{2}=\left[\begin{array}{lll} u_{r+1} & u_{r+2} & \cdots & u_{m} \end{array}\right] \\ U=\left[\begin{array}{ll} U_{1} & U_{2} \end{array}\right] \end{array}
上面都是在說A’A,所以最後,我們來驗證一下上面得到的U,V和對角陣確實最終組成的是A的表達式:
UΣVT=[U1U2][Σ1000][V1TV2T]=U1Σ1V1T=AV1V1T=A\begin{aligned} U \Sigma V^{\mathrm{T}} &=\left[U_{1} \quad U_{2}\right]\left[\begin{array}{cc} \Sigma_{1} & 0 \\ 0 & 0 \end{array}\right]\left[\begin{array}{c} V_{1}^{\mathrm{T}} \\ V_{2}^{\mathrm{T}} \end{array}\right] \\ &=U_{1} \Sigma_{1} V_{1}^{\mathrm{T}} \\ &=A V_{1} V_{1}^{\mathrm{T}} \\ &=A \end{aligned}
其實這裏V爲A’A的特徵向量(右奇異向量),U爲AA’的特徵向量(左奇異向量)。


奇異值分解的幾種形式

完全奇異值分解

就是前一節裏面分解的形式對矩陣所有奇異值都分解好:
A=UΣVTA=U \Sigma V^{\mathrm{T}}

緊奇異值分解

所謂緊奇異值分解,就是與原始矩陣A等秩的奇異值分解。若秩爲r,緊奇異值分解就是
A=UrΣrVrTA=U_{r} \Sigma_{r} V_{r}^{\mathrm{T}}
其實就是前一節中,只取U、V和對角陣的第一部分,丟掉對角陣0特徵值部分,丟掉U的r後面的列,丟掉V’的r後面的行。

一般奇異值分解不特別說明的話就是緊奇異值分解。

截斷奇異值分解

所謂截斷奇異值分解,就是比原始矩陣A低秩的奇異值分解。
AUkΣkVkTA \approx U_{k} \Sigma_{k} V_{k}^{\mathrm{T}}

幾何解釋

下面是《統計學習方法》中給出的幾何解釋:
在這裏插入圖片描述

主要性質

矩陣的奇異值分解有如下幾個主要性質:

  • 因爲A=UΣVTA=U \Sigma V^{\mathrm{T}},所以AV=UΣAV=U \Sigma。奇異值、左奇異向量和右奇異向量存在如下關係
    Avj=σjuj,j=1,2,,nA v_{j}=\sigma_{j} u_{j}, \quad j=1,2, \cdots, n
  • 矩陣A的奇異值分解中,奇異值是唯一的,而U和V不是唯一的
  • 矩陣A和Σ\Sigma的秩相等,等於正奇異值個數r
  • 矩陣A的r個右奇異向量構成A’的像空間的標準正交基,剩下n-r個右奇異向量構成A’核空間的標準正交基;矩陣A的r個左奇異向量構成A的像空間的標準正交基,m-r個左奇異向量構成A的核空間的標準正交基

奇異值分解的計算

其實根據前一節奇異值分解定理的證明過程,對奇異值分解的計算過程也應當理解迅速了。矩陣A的奇異值分解可以通過求對稱矩陣A’A的特徵向量和特徵值得到。A’A的特徵向量構成正交矩陣V的列,特徵值的平方根爲奇異值。由小到大排列後作爲對角線元素,構成對角矩陣。之後求奇異值對應的左奇異向量,再擴充標準正交基,構成正交矩陣U的列。

上面一段話可以總結分成下面幾個步驟:

  • ATAA^TA的特徵值和特徵向量
  • 求n階正交矩陣V
  • 求m x n對角矩陣Σ\Sigma
  • 求m階正交矩陣U
  • 得出奇異值分解

奇異值分解與矩陣近似

弗羅貝尼烏斯範數

弗羅貝尼烏斯範數的表達式如下,這裏a代表矩陣中的元素。弗羅貝尼烏斯範數就是矩陣中所有元素的平方和再開更號,也就是矩陣的二範數,也就是L2範數的推廣。
AF=(i=1mj=1n(aij)2)12\|A\|_{F}=\left(\sum_{i=1}^{m} \sum_{j=1}^{n}\left(a_{i j}\right)^{2}\right)^{\frac{1}{2}}
引入這個範數後,可得如下結論:
AF=(σ12+σ22++σn2)12\|A\|_{F}=\left(\sigma_{1}^{2}+\sigma_{2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}
這裏的σ\sigma是矩陣的奇異值。這個結論很有用,下一節說明結論代表了什麼意思。先看看這個結論的證明。

這個證明很簡單,要證明上面的式子等價於證明
QAF=AF\|Q A\|_{F}=\|A\|_{F}

QAF2=(Qa1,Qa2,,Qan)F2=i=1nQai22=i=1nai22=AF2\begin{aligned} \|Q A\|_{F}^{2} &=\left\|\left(Q a_{1}, Q a_{2}, \cdots, Q a_{n}\right)\right\|_{F}^{2} \\ &=\sum_{i=1}^{n}\left\|Q a_{i}\right\|_{2}^{2}=\sum_{i=1}^{n}\left\|a_{i}\right\|_{2}^{2}=\|A\|_{F}^{2} \end{aligned}
所以
AF=UΣVTF=ΣF\|A\|_{F}=\left\|U \Sigma V^{\mathrm{T}}\right\|_{F}=\|\Sigma\|_{F}
得證。

矩陣的最優近似

現在就來談談上面的那個結論代表了什麼意思了。其實奇異值分解可視作平方損失弗羅貝尼烏斯範數意義下對矩陣的最優近似,也就是說,如果用弗羅貝尼烏斯範數來衡量矩陣的信息,那麼奇異值分解一丁點都沒有損傷矩陣的信息,從而還達成了壓縮的效果。

關於最優近似的一個定理1
在這裏插入圖片描述
也就是說,秩不超過k的所有矩陣裏面,將A與其相減之後得出的能讓F值達到最小的那個值,這個情況下的矩陣X就是A的最優近似。這和上面不一樣了,如果k可以達到r,那一點信息損失都不會有,問題是現在k小於r,既然損失沒法避免,那麼取最小的就是自然的思想。這裏的損失函數也就是弗羅貝尼烏斯範數。

另一個定理2爲:
在這裏插入圖片描述
特別地,若A=UΣVTA^{\prime}=U \Sigma^{\prime} V^{\mathrm{T}},其中
Σ=[σ10σk000]=[Σk000]\Sigma^{\prime}=\left[\begin{array}{ccccc} \sigma_{1} & & & & \\ & \ddots & & & 0 \\ & & \sigma_{k} & & \\ & & & 0 & & \\ & 0 & & & \ddots & \\ & & & & & 0 \end{array}\right]=\left[\begin{array}{cc} \Sigma_{k} & 0 \\ 0 & 0 \end{array}\right]

AAF=(σk+12+σk+22++σn2)12=minSMASF\left\|A-A^{\prime}\right\|_{F}=\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}=\min _{S \in \mathcal{M}}\|A-S\|_{F}

也就是說,如果按定理1說的那樣,找到了這樣一個矩陣X,那麼在X的近似下和原來A差多少呢?也就是說用了X近似之後損失了多少信息呢?定理2告訴你,在用弗羅貝尼烏斯當做評價指標的情況下,差了(σk+12+σk+22++σn2)12\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}這麼多。

也就是說A的信息被遺棄的最少的情況(minSMASF\min _{S \in \mathcal{M}}\|A-S\|_{F})再少也少不過(σk+12+σk+22++σn2)12\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}這麼多,能達成這樣這已經是最優了,是最優近似了。而A’就是那個最優近似,即X=A=UΣVTX=A^{\prime}=U \Sigma^{\prime} V^{\mathrm{T}}

這裏的證明較爲繁瑣,就不展開說明了。這裏的A’其實就是截斷奇異值分解,是秩爲k的所有矩陣中在弗羅貝尼烏斯範數意義下對A的最優近似矩陣

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