Try   HackMD

考研筆記 - 線性代數SVD理論推導篇 (成大數學系劉育佑)

tags: 考研 線性代數 數學
撰寫時間 : 2022/08/28 ~ 2022/08/31
  • 授課老師 - 成功大學數學系劉育佑教授
  • 課程 - 成功大學模組化課程 奇異值分解與資料分析

重點1 線性轉換

綱要

  • 抽象的線性變換藉由基底轉為歐式空間,而歐式空間的線性轉換相當於做矩陣乘法
  • 特徵值是實數的線性變換 = 沿方向的伸縮變換;特徵值是複數的線性變換 = 沿方向的伸縮變換+旋轉矩陣

向量空間(vector space)與線性轉換(linear transformation)

線性代數這門學問最重要的就是在探討向量空間中線性轉換,定義向量空間最主要的2個運算為向量加法與純量乘法,再定義線性變換為一向量空間mapping到另一項向量空間的一個函數,記為

L:VW,並保有以下2個線性運算的性質

  1. uvV,L(u+v)=L(u)+L(u)
  2. αF,uV,L(αu)=αL(u)

考慮一歐式空間的線性變換

L:RnRm,將歐式空間的標準基底做線性轉換可以推導得
L(c)=Ac,cRnwhere A=[aij]m×n : standard matrix representation of L:RnRm
因此可以得到結論 - 歐式空間的線性變換相當於做矩陣乘法,這個矩陣稱為代表矩陣,若是以基底做線性轉換,這個矩陣可稱為標準代表矩陣。


基底(basis)與座標(coordinates)

定義基底為線性獨立的向量集,記為

E={v1,v2,,vn}且有"足夠多"的向量可以span成向量空間,記為
Span(E)=V
,因此在這個向量空間中的每個向量都可以用這個基底所線性組合的係數合成,其中這個線性組合的係數稱之為座標
vV,v=c1v1+c2v2++cnvnlinear combination of basis[v]E=c=[c1c2cn]Fncoordinate of v
上述座標的form與歐式空間相似,因此有了上述基底與座標的觀念,就可以把一個有限維
dim(V)=n
抽象的向量空間"透過基底"轉換為跟
dim(V)=n
歐式空間相似的form。

需要記得是有限維數的空間,線性代數只探討有限維數的空間,至於無窮維的空間討論是泛函分析。

因此總結來說,考慮一個抽象的線性變換

L:VW,透過給定抽象的向量空間
V
一組基底
E={v1,,vn}
與給定抽象的向量空間
V
一組基底
F={w1,,wn}
,就可以把這個兩個抽象的向量空間拉至歐式空間,而歐式空間的線性轉換等於矩陣乘法。
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
[L(v)]F=A[v]E,vVwhere A=[aij]m×n : matrix representation of L:VWwith repect to basis E of V and basis F of W


基底轉換與線性轉換

由於基底不具有唯一性,因此同一向量空間中不同基底之間轉換就需要乘上一個轉換的矩陣,這個矩陣就是要如何用新的基底選擇適當的線性組合合成出原基底的向量之中線性組合的係數。假設在標準基底下的代表矩陣難以計算,我們可以嘗試"繞遠路",先將標準基底轉換為"好算"的基底,這個"好算"的基底的代表矩陣十分好求,之後再將"好算"的基底轉換為標準基底即可。


特徵值/向量與對角化

特徵值/向量與對角化就是基於上述的觀念,首先把問題限制在定義域與對應域相同的線性轉換

T:VV,想法是嘗試找一個"適當"的基底下使線性變換簡單,對單一向量來說這個簡單的線性就只是一個純量乘上自己
Ax=λx
,而對整個向量空間來說的代表矩陣就是對角化矩陣
A=CDC1

在求向量

v的線性變換
Av
時,我們有了不一樣的解題思路,嘗試把向量
v
拆成各個特徵向量的線性組合
A(c1v1++cnvn)
再來沿著各個特徵向量的方向去做移動,也就是乘上一個scalar
(c1λ1)v1++(cnλn)vn
最後將這些運算完的向量一一相加就是
Av
,如下圖所示
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

另一個觀念是當求出來的特徵值是複數的話,經過對角化後對角線矩陣是複數,形式十分複雜,我們嘗試將其轉為Canical form,就可以發現實際上
A=CDC1
D
是一個伸縮加上旋轉的矩陣。總結來說特徵值是實數就只是沿特徵向量方向做伸縮變換;特徵值是複數不只是沿特徵向量方向做伸縮變換,還會旋轉。


重點2 正定矩陣

綱要

  • 正定矩陣定義與等價定義的條件 - 所有特徵值皆為正數
  • 正定矩陣定義與等價定義的條件 - 可被Cholesky分解、首項主子方陣大於0
  • SVD分解想法與結合基底轉換與線性轉換的理解
  • 計算流程 - 將半正定矩陣
    ATA
    對角化,再利用線性轉換的關係式

正定矩陣定義

正定矩陣的先決條件為對稱矩陣

A=ATRn×n,對所有非零的向量
xRn
,滿足
Q(xi)=xTAx>0
其中
Q(xi)
稱之為矩陣的二項式(matrix of quadratic form)。觀察上式矩陣相乘最後的size,
(1×n),(n×n),(n×1)
會是一個純量。


正定矩陣等價條件 - 所有特徵值皆為正數

  1. 證明
    pq

    給定對稱矩陣
    A=ATRn×n
    ,根據對稱矩陣可以實對角化的性質(證明略省),將其對角化
    A=QΛQ1=QΛQTwhere QRn×n is orthogonal matrixand ΛRn×n is diagonal matrix
    帶入正定矩陣的二次式條件
    Q(xi)=xTAx>0
    xTAx=xTQΛQTx=(QTx)TΛ(QTx)let QTx=yRnx=Qyx0y0Q is invertible matrix=yTΛy=[y1yn][λ100λn][y1yn]=λ1y12+λ2y22++λnyn2
  2. 證明
    pq

    利用反證法,當
    λi0
    ,令
    x=vi0
    ,則
    viTAvi=viT(λivi)=λivi20
    A
    不是正定矩陣。

正定矩陣等價條件 - 可被Cholesky分解
A=LLT

新增條件 矩陣分解
高斯消去法時不需要列交換 LU分解
可逆矩陣 LDU分解
對稱矩陣 LDLT分解
正定矩陣 LLT分解

給定一不需要列交換的矩陣,透過"加法列運算的高斯消去法"

Rij(k),i<j,一步步化簡為row echelon form,這個row echelon form就是上三角矩陣
U
,而將之前經過"加法列運算的高斯消去法"的每一步都轉換為基本矩陣,記為
L3L2L1A=UA=(L3L2L1)1U=L0U

加上

A可逆矩陣的條件,可以推得
A is invertible matrixU is invertible matrixdet(U)=a11a22ann0a110,a220,,ann0
其中
U
對角線數字均不為0,因此進一步將
U
拆解為對角線矩陣
D
與對角線元素為1的上三角矩陣
U0
,記為
A=L0U=L0DU0
再加上
A
對稱矩陣的條件,可以推得
{A=L0DU0AT=U0TDTL0TU0=L0TA=L0DL0T
最後加上
A
正定矩陣的條件,可以推得
xTAx=xT(L0DL0T)x=(L0Tx)TD(L0Tx)=DL0Tx)T2
由於正定矩陣的條件
xTAx>0
,所以對角線矩陣每個對角線元素都會大於0,因此開根號後不會是虛數,矩陣
A
就可以被進一步分解為
A=L0DL0T=L0DDTL0T=(L0D)(L0D)T=LLTwhere L=L0D
欲證明另一邊的
pq
,則將
LLL
帶入正定矩陣的條件
xTAx=xT(LLT)x=(LTx)T(LTx)=LTx>0,x0

正定矩陣等價條件 - 首項主子方陣大於0
det(Ai)>0,i=1,2,,n

正定矩陣其中一個等價條件為可被Cholesky分解,也就是對角線矩陣的元素皆大於0,因此

A is positive definited1>0,d2>0,,dn>0d1>0,d1d2>0,,d1dn>0det(A1)>0,det(A2)>0,,det(An)>0


SVD分解想法與結合基底轉換與線性轉換的理解

特徵值分解只適用可對角化的方陣,非對角化的方陣可以找其Jordan Form,但如果不是方陣的話就需要使用SVD(singular value decomposition)分解,SVD分解適用於任何矩陣。"仿造"前面對角化的觀念,當要求代表矩陣

A我們試圖"繞遠路",分別選擇兩組"好算"的基底為單位正交,使得在此基底下的線性轉換
Σ
僅在對角線的前
r
項數值有值。
Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

因此SVD分解形式就可寫作為
A=UΣV1=UΣVTwhere V={v1,,vn}Rn×n,orthogonal matrixwhere U={u1,,un}Rm×m,orthogonal matrixwhere Σ=[σ10000σr00000]m×r,rm,n,σ1σ2σn>0
嘗試改寫成以下形式
AV=UΣ[Av1,,Avm]=[u1,,um][σ10000σr00000]=[σ1u1,,σrur,0,,0]
也就是說給定一歐式空間線性變換,其代表矩陣為
A:RmRn
嘗試把向量空間
Rm
的向量
vi
mapping至向量空間
Rn
的向量
ui
,其中前
r
項有值,而後面的向量則直接對應到0向量。
Avi=σiui,1irAui=0,r+1kn
同理將
A
取轉置得
ATU=VΣT
,其中歐式空間線性變換的代表矩陣
AT:RnRm
,其中前
r
項有值,而後面的向量則直接對應到0向量。


SVD計算步驟

嘗試將

A轉置與
A
相乘
ATA=VΣUTUΣTVT=VΣΣTVT=VDVVT,where DV=ΣΣT
欲求
A=UΣVT
第一步就是求
ATA
(或是
AAT
),並做對角化,求出來
ATA
的特徵值開根號就是
A
的奇異值,記為
σi=λi,i=1,,r

ATA為半正定矩陣,故其特徵值必為實數且大於等於0,特徵值開根號所得的奇異值不會是虛數。

證明 -
(ATA)T=AT(AT)T=ATA
,若
ATAv=λv
,則
vT(ATAv)=vT(λv)(Av)T(Av)=λvvTλ=Av2v20

ATA的特徵值對應的特徵向量,做正規化,確保特徵向量是單位長度後,拉成一行行的行向量,形成
V=[v1v2vn]
根據前面向量
vi
與向量
ui
之間線性轉換的關係式
Avi=σiuiui=Aviσi
求出向量
ui
,若向量
vi
的個數少於向量
ui
的個數,也就是代表矩陣是從高維歐式空間投影到低維歐式空間,根據此線性轉換的關係式求出來的會少求幾項
ui

我們可以嘗試選擇一組單位向量

x不平行於已知的
ui,i=1,,(n1)
,使用Gram-Schmidt orthogonalization求出單位正交基底
un=x(xTu1)u1(xTu2)u2(xTun1)un1Gram-Schmidt orthogonalization
以三維空間的特殊case下就是做已知向量一與向量二的外積,記為
u3=u1×u2
,最後拉成一行行的行向量,形成正交矩陣
U=[u1u2un]
以上步驟就是把
Rm
空間中的單位正交集合(set)
{u1,,ur},r<m
擴展到能代表
Rm
空間的單位正交基底(basis)
{u1,,um}
的過程。

重點3 使用SVD說明線性代數的4大空間

綱要

  • 使用SVD說明線性代數的4大空間
  • 矩陣的Frobenius norm與two norm
  • 低秩近似法最佳化問題 - Eckart-Young Theorem

使用SVD說明線性代數的4大空間

考慮一線性變換的代表矩陣

A:RnRm,ARm×n 可將矩陣
A
做SVD分解
A=UΣVTAV=UΣA(c1v1++crvr+cr+1vr+1++cnvn)=(c1σ1)u1++(cnσn)ur+0
A
的右側乘上向量等於做行展式,其結果為
{u1,,ur}
這些線性獨立的向量的線性組合,因此
A
的column space為
Col(A)=Span{u1,u2,,ur}
而null space定義為齊次聯立方程式
Ax=0
中所有解
x
,在此就是
{vr+1,,vn}
這些在定義域"對應到0向量"的向量,因此
A
的null space為
Null(A)=Span{vr+1,,vn}
同理,將矩陣
A
的轉置,此線性變換的代表矩陣
AT:RmRn,ATRn×m
可將矩陣
AT
做SVD分解
AT=(UΣVT)T=VΣTUTAU=VΣA(c1u1++crur+cr+1ur+1++cnum)=(d1σ1)v1++(dnσn)vr+0
AT
的右側乘上向量等於做行展式,其結果為
{v1,,vr}
這些線性獨立的向量的線性組合,因此
AT
的column space,也就是
A
的row space為
Col(AT)=Row(A)=Span{v1,v2,,vr}
而null space定義為齊次聯立方程式
Ax=0
中所有解
x
,在此就是
{ur+1,,un}
這些在定義域"對應到0向量"的向量,因此
AT
的null space,也就是
A
的left null space為
Null(AT)=LNull(A)=Span{ur+1,,un}


線性代數的4大空間的性質

觀察上式,要形成向量空間

Rn就是
Span{v1,v2,,vr,vr+1,,vn}
,就是將
A
的row space與
A
的null space兩空間的向量相加做線性組合(和空間)而成
RS(A)+Null(A)
,而
RS(A)Null(A)={0}
,因此為直和(direct sum)空間,其中
RS(A)
Null(A)
互為正交補空間(orthogonal complement space),同理
A
的column space與
A
的left null space
Row(A)Null(A)=RnRow(A)=Null(A)Col(A)LNull(A)=RmCol(A)=LNull(A)
ch2 秩數(rank)結論列向量獨立個數等於行向量獨立個數,因此
rank(A)=dim(Range(A))=dim(Col(A))=dim(Row(A))=r
即可推得rank–nullity theorem
dim(Null(Am×n))=nrdim(LNull(Am×n))=mr
下圖為圖解法,其中垂直的符號代表兩向量子空間的交集為0向量。


矩陣的Frobenius norm與two norm

在討論低秩近似法前,我們要找到如何代表兩矩陣"長得很像"的衡量標準?直覺來說就是找兩矩陣的"長度","長度"講為較專業的術語就是範數(norm),norm符合兩個性質,一是除了零矩陣的norm等於0,其他矩陣的norm必定大於0,二是符合三角不等式

A+BA+B,A,BRm×n,norm在定義上百百種,這邊只討論2種norm

  1. Frobenius norm
    AF=i=1mj=1n|aij|2
    將矩陣所有的entries平方相加最後開根號。
    經推導,在原矩陣右邊或是左邊乘上正交矩陣,不改變Frobenius norm,因此Frobenius norm即為將
    A
    做SVD分解中所有奇異值平方相加開根號。
    AF=UΣVTF=ΣF=σ12++σn2
  2. Spectral norm / two norm
    A2=maxx0Ax2x2
    線性變換前後向量長度的比例,取其中的最大值。另一種看法,可令
    x=1
    就是在單位圓上做線性轉換後得到橢圓等形狀,取其離原點最大的長度。
    經推導,Spectral norm為將
    A
    做SVD分解中最大的奇異值
    σ1
    A2=σ1

SVD的外積展開式與低秩近似法

SVD分解

A=UΣVT
A
數值只由
U
r
項column vector,
Σ
r×r
的方陣決定,
VT
r
項row vector所決定。因此若資料以SVD形式儲存,可進一步簡化為reduced SVD
Ar=UrΣrVrTAm×n=Um×rΣr×r(VT)r×n
SVD計算步驟可知,欲求正交矩陣
U,V
,是把單位正交集合(set)擴展到單位正交基底(basis),實際上擴展哪些基底不重要,也不具有唯一性,只是為了要讓
U,V
的行向量單位正交而形成正交矩陣而已。

如此就可以定義SVD的前

k項外積展開式,取前將奇異值一一取出展開
Ak=σ1u1v1T++σkukvkT,ikr
其秩數
rank(Ak)=k
,根據Eckart-Young Theorem,在同一秩數下
rank(B)=k
,最接近原本
A
矩陣的距離就是前
k
項外積展開式,這就是低秩近似法(low-rank approximation)最佳化的問題
For any BRm×n with rank(B)=kWe have ABFAAkFand AB2AAk2
因此在同一秩數
k
下,最靠近
A
的矩陣就是前
k
項外積展開式
Ak

最後就可計算相對誤差的最小值

ABFAFAAkFAF=σk+12++σr2σ12++σr2AB2A2AAk2A2=σk+1σ1


重點4 最小平方+範數問題

綱要

  • 最小平方問題
  • 最小範數問題
  • 最小平方+範數問題

最小平方問題(least square problem)

考慮

Am×nxn×1=bm×1,若
m>n,rank(A)=n
,也就是說有效方程式
m
條,多於未知數
n
個,屬於overdetermined problem,解不存在(或是只存在一組解),但問題總不能這樣就結束,因此我們"試圖"找到一個近似解的折衷方案 - 找
xRn
能最小化
AxbRm×n
的長度。


最小平方問題解法1 - 線性代數理論


Rm
空間下
Ax=[A1A2An][x1x2xn]=x1A1+x2A2++xnAn
只會落在
Rn
的平面,也就是
Col(A)
,如果
b
沒落在這個平面上,記為
bCol(A)
,則解不存在。這時我們希望能在這個
Col(A)
的平面上找到一個向量,使得
Axb
的距離能短越好,記為
minAxb
,根據幾何的知識,要讓
Axb
向量能垂直於
Col(A)
的平面,因此
minAxbAxbCol(A)=Null(AT)AT(Axb)=0ATAx=ATbnormal equation
由於問題一開始假設
A
是full column rank,即
rank(Am×n)=n
,根據性質
rank(ATA)=rank(A)
,因此
rank(ATA)=n
,屬於full rank,
det(ATA)0
,因此矩陣
ATA
可逆。最後推得
x=(ATA)1ATb

證明性質
rank(ATA)=rank(A)

證明思路為先證明零核空間相同,再根據rank–nullity theorem證明。

  1. 證明
    Null(ATA)=Null(A)
    ,使用左包右,右包左證明
    • 左包右
      Null(A)Null(ATA)
      xNull(A)Ax=0ATAx=AT0=0xNull(ATA)
    • 右包左
      Null(ATA)Null(A)
      xNull(ATA)ATAx=0xTATAx=xT0=0(Ax)T(Ax)=0Ax2=0Ax=0xNull(A)
  2. 根據rank–nullity theorem證明
    rank(ATA)=rank(A)

    給定矩陣
    Am×n
    ,因此
    (ATA)n×n
    ,由rank–nullity theorem列出聯立方程式
    {nullity(A)=dim(Null(A))=nrank(A)nullity(ATA)=dim(Null(ATA))=nrank(ATA)
    由於
    A
    ATA
    的零核空間相同
    Null(ATA)=Null(A)
    ,因此零核空間維數相同
    nullity(A)=nullity(ATA)
    ,根據rank–nullity theorem關係式就可以推得
    rank(ATA)=rank(A)

最小平方問題解法2 - 微積分理論

定義一函數

Axb為取norm的平方,這是取距離平方是為了方便運算。
F:RnR,F(x)=Axb2
欲求極值,就是找critical point,對於一個多變數實函數而言,要使所有方向的一階偏導數等於0,也就是梯度等於0
find critical pointF(x)F(x)x=[F(x)x1,F(x)x2,,F(x)xn]=0
欲求梯度
F(x)
除了可以將將函數對每一項分量做偏微分,另一種較方便的解法是先求方向導數,再根據"方向導數為梯度與該方向的內積"這個關係式求得梯度
DyF(x)=(F(x))yfor any unit vector y
觀察上式的form,欲求梯度,嘗試先求方向導數,並整理成一個向量跟單位方向向量的內積的form,這個向量就是梯度。
DyF(x)limϵ0F(x+ϵy)F(x)ϵ=limϵ01ϵ[A(x+ϵy)b2Axb2]=limϵ01ϵ[(A(xb)+ϵy)2Axb2]=limϵ01ϵ[Axb2+2(Axb)(ϵAy)+ϵAy2Axb2]=2(Axb)(Ay)=2(Axb)T(Ay)=2[AT(Axb)]Ty=2[AT(Axb)]F(x)y
故critical point即為
find critical pointF(x)=02[AT(Axb)]=0ATAx=ATb
同法一最後推得
x=(ATA)1ATb


最小範數問題(least norm problem)

考慮

Am×nxn×1=bm×1,若
m<n,rank(A)=m
,也就是說有效方程式
m
條,多於未知數
n
個,屬於underdetermined problem,具有無限多組解,可將解拆為齊次解與特解。
x=xh+xp
其中齊次解
{xhAxh=0}
Rn
的子空間,屬於null space,以下圖
R3
空間為例,就是通過原點的平面,而特解就是將此平面做平移。欲求最佳的解,加上限制項 - 要讓解的距離最小。


最小範數問題解法1 - 線性代數理論


要使
x=xh+xp
的集合落在平面,要使
x
的距離最小,就是讓向量
x
跟平面垂直。
minxxNull(A)=Row(A)=Col(AT)x=ATwAx=AATw=b
由於問題假設
rank(A)=m
加上性質
rank(A)=rank(AAT)
,因此矩陣
AAT
是full rank,行列式值不等於0,存在可逆矩陣
(AAT)1
,因此進一步推導
Ax=AATw=bw=(AAT)1bx=ATw=AT(AAT)1b


最小範數問題解法2 - 微積分理論

定義一函數

x距離的平方,取距離平方是為了方便運算。
F:RnR,f(x)=x2=xTx
在限制條件
g(x)=Axb=0
之下,欲求
minf(x)
,這種帶有限制條件的極值問題,就需要使用Lagrange multiplier,把Lagrange multiplier
λ
想像是變數,因此將帶有限制項的單變數向量
x
求極值問題,拓展為雙變數向量
x,λ
求極值問題
。需要注意這裡Lagrange multiplier
λ
是帶有
m
條限制式的向量形式。
minf(x)subject to g(x)min[F(x,λ)=f(x)+λg(x)]{λF(x,λ)=g(x)=0yF(x,λ)=xf(x)+λxg(x)
由上式可以看出Lagrange multiplier在幾何上的意義,假設在向量空間
R3
,發生極值的條件為
f(x)
的等位曲面與
g(x)
的等位曲面相切,兩個等位曲面相切,則代表兩個梯度向量會平行,彼此只會差上一個常數倍,這個常數就是Lagrange multiplier。

帶入數值計算

minf(x)=xTxsubject to g(x)=Axb=0min[F(x,λ)=xTx+λT(Axb)]{λF(x,λ)=Axb=0yF(x,λ)=?=0 欲求梯度
yF(x)
,同前面最小平方問題的技巧,先求方向導數,並整理成一個向量跟單位方向向量的內積的form,這個向量就是梯度。
DyF(x,λ)limϵ0F(x+ϵy,λ)F(x,λ)ϵ=limϵ01ϵ[(x+ϵy)T(x+ϵy)=xTx+ϵxTy+ϵ2yTx+ϵ2yTy+λT(A(x+ϵy)=Ax+ϵAyb)xTxλT(Axb)]=limϵ01ϵ[ϵxTy+ϵyTx+ϵ2yTyϵλTAy]=2xTyλTAy=(2xATλ)Ty=(2xATλ)yF(x,λ)y
解得梯度
yF(x)
,因此聯立方程式為
{λF(x,λ)=Axb=0(1)yF(x,λ)=2xATλ=0x=12ATλ(2)
將式(2)帶入式(1)得
A(12ATλ)b=0AATλ=2b
由於問題假設
rank(A)=m
加上性質
rank(A)=rank(AAT)
,因此矩陣
AAT
是full rank,行列式值不等於0,存在可逆矩陣
(AAT)1
,使得
(3)λ=2(AAT)1b
將式(3)帶回式(2)得
x=12ATλ=AT(AAT)1b


最小平方與範數問題同時發生(least square & norm problem)

考慮

Am×nxn×1=bm×1,若
rank(A)=r<m,n
,想要找到向量
x
使得
minAxb
,並且在這些無限多組解中找到能
minx

最小平方與範數問題同時發生解法

  • 由於
    rank(A)=r<n
    ,故
    ATA
    不可逆,若使用最小平方法只能解到
    ATAx=ATb
    而卡住。
  • 由於
    rank(A)=r<m
    ,故
    AAT
    不可逆,若使用最小範數法只能解到
    x=ATw,AATw=b
    而卡住。

因此使用SVD這個好用的工具下去求解,將

A做SVD分解,再求
Axb
Axb=(UΣVT)xb=UT(UΣVTxb)where U is orthogonal matrix=ΣVTxUTb
這時再將
x
做基底轉換為
y
,將
b
做基底轉換為
c
denote VTx=yRn,UTb=cRmie x=Vy,b=Uc
因此轉換為
ΣVTxUTb=Σyc=[σ10000σr00000][y1yn][c1cn]=[σ1y1c1σryrcrcr+1cm]
因此我們把
minAxb
的問題,轉換為
minΣyc
,其中可以變動的是解
x
,而解
x
經過基底轉換後變成
y
,因此只有
y
可變動,根據上面推導的form,把最小化
Σyc
就是把
r
項弄為0,選擇
yi=σi1ci,1ir
再滿足最小平方問題後,再來滿足最小範數問題,欲
minx
,即為
miny
,因此後面
r
項取0
yi=0,r+1in
總結
y
y=[σ11c1σr1cr00]n×1=[σ11000σr1000000000]n×m[c1crcr+1cm]m×1=Σ+c
最後變數變換(基底轉換)回原本的變數
y=Σ+cV1x=Σ+UTbx=VΣ+UTb


總結 - 定義虛反矩陣(pseudoinverse)

給定秩數

r的矩陣
Am×n
,做奇異值分解為
Am×n=Um×mΣm×n(VT)n×n, where Σ=[σ1000σr000000000]m×n
則虛反矩陣(pseudoinverse)定義為
A+=VΣ+UT, where Σ+=[σ11000σr1000000000]n×m

在求解線性方程式

Ax=b,其最小平方問題與最小範數問題的通解就是
solve Ax=bx=A+b=(VΣ+UT)b
而經過數學推導(省略),可以得出結論 - 最小平方問題、最小範數問題都是用虛反矩陣求解
x=A+b
時的特例

給定矩陣

  • 最小平方問題 - 如果
    mn
    rank(A)=n
    ,則
    A+=(ATA)1AT
  • 最小範數問題 - 如果
    mn
    rank(A)=m
    ,則
    A+=AT(AAT)1