矩陣分解 (特徵值/奇異值分解+SVD+解齊次/非齊次線性方程組)

,#1. 用途#

1.1 應用領域

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

1.2 矩陣是什麼

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

1.3 矩陣與線性變換

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

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

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

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

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

2. 特徵值分解-方陣

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

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

  • 特徵值的本質Ax=λx

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

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

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

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

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

2.1 方陣的分解

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

    A=XX1

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

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

2.2 實對稱矩陣的分解

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

    S=UUT

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

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

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

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

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

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

3.1 SVD定義

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

    A=UΣVT

    A=U[Σ000]VT=σ1u1vT1+σ2u2vT2+σrurvTr
  • UV 都爲正交矩陣

  • 幾何含義

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

  • URm×m (左奇異向量):U 的列爲AAT 的正交特徵向量

  • VRn×n (右奇異向量):V 的列爲ATA 的正交特徵向量

  • AATATA :是實對稱正定矩陣,且其特徵值爲非負實數

  • rank(AAT ) = rank(ATA ) = rank(A)

  • AATATA 的特徵值相同:爲λ1,λ2,...,λr ,且λiλi+1λi0

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

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

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

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

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

3.2 SVD特徵

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

  • 奇異值的旋轉不變性
    P 是正交矩陣且detA=1 (即P 爲旋轉矩陣),PA 的奇異值與A 的奇異值相同

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

  • 容易得到矩陣A 的秩爲k (kr )的一個最佳逼近矩陣

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

    • 矩陣A 的秩k 逼近定義爲:

      A=σ1u1vT1+σ2u2vT2+σkukvTk(1kr)
    • r 逼近就精確等於A ,而秩1 逼近的誤差最大

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

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

5. SVD解優化問題

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

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

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

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

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

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

    A=UDVT

    則優化問題變爲:
    min(||Axb||2)=min(||UDVTxb||2)=min(||DVTxUTb||2)

    2) 令:

    y=VTxb=UTb

    則優化問題變爲:
    min(||DVTxUTb||2)=min(||Dyb||2)

    3) 求解向量y

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

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

4) 求解向量x

x=Vy

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

這裏寫圖片描述

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

這裏寫圖片描述

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

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

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

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

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