奇異值分解與特徵值分解詳解

博主從一位大神處轉載而來的,寫得非常好,修改了一處我覺得可能是大神寫的一點點小問題,

原地址: https://blog.csdn.net/MyArrow/article/details/53780972

1.1 應用領域

  • 最優化問題:最小二乘問題 (求取最小二乘解的方法一般使用SVD)
  • 統計分析:信號與圖像處理
  • 求解線性方程組Ax=0Ax=bAx=0或Ax=b
  • 奇異值分解:可以降維,同時可以降低數據存儲需求

1.2 矩陣是什麼

  • 矩陣是什麼取決於應用場景
  • 矩陣可以是: 
    • 只是一堆數:如果不對這堆數建立一些運算規則
    • 矩陣是一列列向量:如果每一列向量列舉了對同一個客觀事物的多方面的觀察值
    • 矩陣是一個圖像:它的每個元素代表對應位置的像素值
    • 矩陣是一個線性變換:它可以將一些向量變換爲另一些向量

1.3 矩陣與線性變換

  • 矩陣的本質:矩陣的本質就是線性變換

  • 基-座標系一個基定義了一個座標系

  • 矩陣-線性變換:在線性空間中,當選定一組基(相當於確定座標系)之後,不僅可以用一個向量來描述空間中的任何一個對象,而且可以用矩陣來描述此空間中的任何一個運行(變換),即任何一個線性變換, 都可以用一個確定的矩陣來加以描述

  • 向量:向量描述對象(在選定基之後)

  • 矩陣:矩陣描述對象的運動(在選定基之後)
  • 運動:使某個對象發生要求的運動,就是用描述此運動的矩陣乘以運動對象的向量(運動 * 對象 = 矩陣 * 向量)
  • 特徵值-變換:同一個線性變換在同的座標系(基)下的矩陣不同,但其本質相同, 所以特徵值相同
  • 矩陣可進行哪些線性變換? 
    • 旋轉
    • 縮放
    • 投影
  • 矩陣包含這麼多功能,當我們看着一個數據表,對它的功能一無所知,很是迷茫,爲了達到我們人類的目的,大神們把它進行分解,從而達到我們人類理解、使用的目標。
  • 特徵向量:都是正交的,即相互垂直
  • 特徵值分解和奇異值分解:都是給一個矩陣(線性變換)找一組特殊的基 
    • 特徵值分解:找到了特徵向量這一組基,在這組基下該線性變換只有縮放效果
    • 奇異值分解(SVD):則是找到兩組基,從一組基到另一組的線性變換的旋轉、縮放、投影三種功能獨立地展示出來了

2. 特徵值分解-方陣

  • 只有方陣才能進行特徵值分解

  • 奇異值和特徵值的重要意義相似,都是爲了提取出矩陣的主要特徵

  • 特徵值的本質Ax=λxAx=λx

  • 特徵值分解:把方陣分解爲縮放矩陣+特徵向量矩陣,沒有旋轉或旋轉角度爲0

  • 特徵值-變化的主次:如果我們想要描述好一個變換,那我們就描述好這個變換主要的變化方向就好了。反過頭來看看之前特徵值分解的式子,分解得到的矩陣是一個對角陣,裏面的特徵值是由大到小排列的,這些特徵值所對應的特徵向量就是描述這個矩陣變化方向(從主要的變化到次要的變化排列)

  • 高維線性變換:當矩陣是高維的情況下,那麼這個矩陣就是高維空間下的一個線性變換,這個線性變化可能沒法通過圖片來表示,但是可以想象,這個變換也同樣有很多的變換方向,我們通過特徵值分解得到的前N個特徵向量,那麼就對應了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣(變換)。也就是之前說的:提取這個矩陣最重要的特徵

  • 特徵值分解總結:特徵值分解可以得到:

    • 特徵值:特徵值表示的是這個特徵到底有多重要
    • 特徵向量:而特徵向量表示這個特徵是什麼,可以將每一個特徵向量理解爲一個線性的子空間,我們可以利用這些線性的子空間幹很多的事情。
    • 特徵值分解的侷限:特徵值分解也有很多的侷限,比如說變換的矩陣必須是方陣。

2.1 方陣的分解

  • ARn×nA∈Rn×n,則A可表示爲:

    A=XX1A=X∧X−1

  • X的列:爲A的特徵向量

  • 爲對角矩陣:對角線上的值爲A的特徵值,按從大到小的順序排列

2.2 實對稱矩陣的分解

  • SRn×nS∈Rn×n,且是對稱矩陣,則S可表示爲:

    S=UUTS=U∧UT

  • U的列:爲S的單位正交特徵向量,即U是正交矩陣(列/行向量正交性、歸一化,且U1=UTU−1=UT

  • 爲對角矩陣:對角線上的值爲S的特徵值,按從大到小的順序排列
  • U就是矩陣A所定義的座標系:U的n個列向量組成A的一個完備的標準正交特徵向量系

3. 奇異值分解(SVD) - 非方陣

  • 只有非方陣才能進行奇異值分解

  • SVD分解:把矩陣分解爲縮放矩陣+旋轉矩陣+特徵向量矩陣

  • A的非0奇異值的個數等於它的秩rr

3.1 SVD定義

  • ARm×nA∈Rm×n,且rank(A)rank(A) = rr (rr > 0),則矩陣A的奇異值分解(SVD)可表示爲:

    A=UΣVTA=UΣVT

    A=U[Σ000]VT=σ1u1vT1+σ2u2vT2+σrurvTrA=U[Σ000]VT=σ1u1v1T+σ2u2v2T+σrurvrT

  • UUVV都爲正交矩陣

  • 幾何含義

    • 表示找到了UUVV這樣兩組基:A矩陣的作用是將一個向量從VV這組正交基向量的空間旋轉UU這組正交基向量的空間,並對每個方向進行了一定的縮放(由ΣΣ決定),縮放因子就是各個奇異值。如果VV的維度比UU 大,則表示還進行了投影
    • 奇異值分解:將一個矩陣原本混合在一起的三種作用效果,分解出來了。
  • SVD分解如下圖所示: 
    這裏寫圖片描述

  • URm×mU∈Rm×m(左奇異向量):UU的列爲AATAAT的正交特徵向量

  • VRn×nV∈Rn×n(右奇異向量):VV的列爲ATAATA的正交特徵向量

  • AATAATATAATA:是實對稱正定矩陣,且其特徵值爲非負實數 (這裏博主認爲應該是正數)

  • rank(AATAAT) = rank(ATAATA) = rank(A)

  • AATAATATAATA的特徵值相同:爲λ1,λ2,...,λrλ1,λ2,...,λr,且λiλi+1λi(這裏博主認爲應該是>0)λi≥λi+1,λi≥0

  • ΣRm×nΣ∈Rm×nσi=Σii=λiσi=Σii=λi,其它元素的值爲0

  • ΣΣ = diag(σ1,σ2,...,σr)diag(σ1,σ2,...,σr)

  • σi(i=1,2,...,r)σ1...σr>0σi(i=1,2,...,r),σ1≥...≥σr>0:爲矩陣A的全部奇異值

  • 奇異值σ跟特徵值類似,在矩陣Σ中也是從大到小排列,而且σ的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就佔了全部的奇異值之和的99%以上了。也就是說,我們也可以用前kk個大的奇異值來近似描述矩陣,這裏定義一下部分奇異值分解:

Am×nUm×kΣk×kVTk×nAm×n≈Um×kΣk×kVk×nT

  • 右邊的三個矩陣相乘的結果將會是一個接近於A的矩陣,在這兒,k越接近於n,則相乘的結果越接近於A。而這三個矩陣的面積之和(在存儲觀點來說,矩陣面積越小,存儲量就越小)要遠遠小於原始的矩陣A,我們如果想要壓縮空間來表示原矩陣A,我們存下這裏的三個矩陣:U、Σ、V就好了。

3.2 SVD特徵

  • 奇異值的比例不變性: 
    αAαA的奇異值是A的奇異值的|α||α|

  • 奇異值的旋轉不變性: 
    PP是正交矩陣且detA=1detA=1(即PP爲旋轉矩陣),PAPA的奇異值與AA的奇異值相同

  • 奇異值的比例和旋轉不變性:在數字圖像的旋轉、鏡像、平移、放大、縮小等幾何變換方面有很好的應用

  • 容易得到矩陣AA的秩爲kk(krk≤r)的一個最佳逼近矩陣

    • 這個特性可以應用於信號的分解和重構, 提取有用信息,消除信號噪聲 
      A=UΣVT=σ1u1vT1+σ2u2vT2+σrurvTrA=UΣVT=σ1u1v1T+σ2u2v2T+σrurvrT
    • 權係數大的哪些項對矩陣AA的貢獻大,因此當捨去權係數小的一些項後,仍然能較好地接近矩陣AA,這一點在數字圖像處理方面非常有用。

    • 矩陣AA的秩kk逼近定義爲: 

      A=σ1u1vT1+σ2u2vT2+σkukvTk(1kr)A=σ1u1v1T+σ2u2v2T+σkukvkT(1≤k≤r)

    • rr逼近就精確等於AA,而秩11逼近的誤差最大

4. 齊次/非齊次線性方程組

  • 矩陣Am×nAm×n: 
    • 方程組數:mm
    • 未知數的數量:nn
  • 齊次線性方程組Ax=0Ax=0 
    • 如果m<nm<n (行數小於列數,即未知數的數量大於所給方程組數),則齊次線性方程組有非零解。
    • 齊次線性方程組的兩個解的和仍是齊次線性方程組的一組解(加法封閉)
    • 齊次線性方程組的解的k倍仍然是齊次線性方程組的解(乘法封閉)
    • 齊次線性方程組的係數矩陣秩rank(A)=ndetA0rank(A)=n(detA≠0),方程組有唯一零解
    • 齊次線性方程組的係數矩陣秩rank(A)<ndetA=0rank(A)<n(detA=0),方程組有無數多解
    • 齊次線性方程組有非零解的充要條件是其係數行列式(detdet)爲零。等價地,方程組有唯一的零解的充要條件是係數矩陣不爲零
  • 非齊次線性方程組Ax=b(b0)Ax=b(b≠0) 
    • 非齊次線性方程組 有解的充分必要條件是:係數矩陣的秩等於增廣矩陣的秩,即rank(A)=rank(A|b)rank(A)=rank(A|b)(否則爲無解)
    • 唯一解的充要條件是rank(A)=nrank(A)=n
    • 無窮多解的充要條件是rank(A)<nrank(A)<n
    • 解的結構:非齊次線性方程組的通解=齊次線性方程組的通解+非齊次線性方程組的一個特解 
      η=ζ+ηη=ζ+η∗

5. SVD解優化問題

5.1 SVD解非齊次線性方程組(Ax=bAx=b

  • 求解非齊次線性方程組Ax=bAx=b
  • Am×nAm×n

    • m<nm<n: 方程個數小於未知變量個數,無唯一解
    • m=nm=n:若A可逆(detA0detA≠0 或 rank(A) = n),有唯一解
    • m>nm>n:方程個數多於未知變量個數,若rank(A)=rank(A|b)rank(A)=rank(A|b),則有解
    • 對於m>nm>n, 有如下幾種情況: 
      1) r(A)<r(A|b)r(A)<r(A|b): 方程組無解 
      2)r(A)=r(A|b)=nr(A)=r(A|b)=n:方程組有唯一解(約束較強) 
      3)r(A)=r(A|b)<nr(A)=r(A|b)<n:方程組無窮解(約束不夠) 
      4)r(A)>r(A|b)r(A)>r(A|b): 不可能,因爲增廣矩陣的秩大於等於係數矩陣的秩(在矩陣中加入一列,其秩只可能增大,不可能變小)
  • M爲正交矩陣,xx爲列向量:則有||Mx||2=||x||2||Mx||=||x||||Mx||2=||x||2或記爲:||Mx||=||x||

    • ||x||2=||x||=xTx||x||2=||x||=xTx:即向量xx的長度
  • 以下討論前提爲:mnm⩾n

  • 等價於尋找xx使||Axb||2||Ax−b||2最小化 (向量2範數,轉化爲最優化問題)

    1) 對矩陣A進行SVD分解(Dm×nDm×n對角陣,且rank(A)=nrank(A)=n):

    A=UDVTA=UDVT

    則優化問題變爲: 
    min(||Axb||2)=min(||UDVTxb||2)=min(||DVTxUTb||2)min(||Ax−b||2)=min(||UDVTx−b||2)=min(||DVTx−UTb||2)

    2) 令:

    y=VTxb=UTby=VTxb′=UTb

    則優化問題變爲: 
    min(||DVTxUTb||2)=min(||Dyb||2)min(||DVTx−UTb||2)=min(||Dy−b′||2)

    3) 求解向量yy

    • Dyb=0Dy−b′=0,即Dy=bDy=b′,其方程組形式如下圖所示: 
      這裏寫圖片描述

    • 則有:yi=bi/di(i=0,1,...,rank(A))yi=bi′/di(i=0,1,...,rank(A))

4) 求解向量xx

x=Vyx=Vy

5.1.1 rank(A) = n的求解步驟

這裏寫圖片描述

5.1.2 rank(A) < n的求解步驟

這裏寫圖片描述

  • λiλi:是用於參數化的隨機值(parametrized by the indeterminate values

5.2 SVD解齊次線性方程組(Ax=0Ax=0

  • 相似的情況,我們把問題轉化爲最小化||Ax||2||Ax||2的非線性優化問題,我們已經知道了x=0x=0是該方程組的一個特解,爲了避免x=0x=0這種情況(因爲在實際的應用中x=0x=0往往不是我們想要的),我們增加一個約束,比如||x||2=1||x||2=1,這樣,問題就變爲(帶約束的優化問題 s.t. : subject to): 
    min||Ax||s.t.||x||=1min||Ax||s.t.:||x||=1

    min||Ax||=min||UDVTx||=min||DVTx||||x||=||VTx||min||Ax||=min||UDVTx||=min||DVTx||且||x||=||VTx||

    y=VTxmin||Dy||s.t.:||y||=1Vy=VTx則問題變爲:min||Dy||s.t.:||y||=1(因爲V爲正交矩陣)
  • 由於D是一個對角矩陣,對角元素按降序排列,因此最優解在y=(0,0,...,1)Ty=(0,0,...,1)T時取得,又因爲x=Vyx=Vy, 所以最優解就是V的最小奇異值對應的列向量,比如,最小奇異值在第6行6列,那麼x 爲 V的第6個列向量。
  • 求解步驟: 
    這裏寫圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章