前言
在高等代數里,矩陣分解是一個十分基礎與重要的內容,任何一個學校對於理工科的研究生教育都會開設相應的課程,如:矩陣分析、矩陣論、線性系統等。看了不少社區的問答、筆記和博客,在它們的基礎上加入一些自己的理解,寫下這篇概念詳解,博客中借鑒了不少前人的觀點,這里感謝他們的付出
目錄
前言
一、特征值分解(EVD)
1.1 特征值分解、特征值、特征向量
1.2 特征向量的求解
1.3 特征值與特征向量的意義解釋
二、相似對角化
2.1 相似矩陣的定義
2.2 相似對角化的條件與推論
2.2.1 推論一
2.2.2 推論二
2.2.3 推論三
2.3 實對稱矩陣與相似對角化
2.3.1 實對稱矩陣的特征值與特征向量
2.3.2 實對稱矩陣正交相似於對角矩陣
2.4 相似對角化與特征值分解的區別
三、QR分解
3.1 QR分解的定義與推導
3.2 QR分解的應用
四、Schur分解
4.1 什么是酉矩陣?
4.1.1 "等距"(isometry)
4.1.2 "協等距"(co-isometry)
4.1.3 酉矩陣(unitary matrix)
4.2 Schur分解的定義與推導
4.3 Schur分解的缺陷
五、奇異值分解(SVD)
5.1奇異值分解的定義與推導
5.2 奇異值分解的求解
5.2.1奇異值的計算
5.2.1奇異向量的計算
5.3 奇異值分解的意義
5.3.1 數據降維壓縮
5.3.2 幾何的線性變換
六、更多資源下載
一、特征值分解(EVD)
把特征值分解(EigenValue Decomposition,EVD)放在最前面說是因為這是一個相對來說更基礎的概念,后面的一些分解方式會在這一基礎上進行推導
1.1 特征值分解、特征值、特征向量
特征值分解,是指將矩陣分解為由其特征值和特征向量表示的矩陣之積的方法。一個NxN的方陣A可以有下式:
A v = λ v Av = \lambda v Av=λv
此時 λ \lambda λ被稱為方陣A的特征值,v被稱為特征值 λ \lambda λ 對應的特征向量。上式可以化為
( λ I − A ) v = 0 (\lambda I-A)v = 0 (λI−A)v=0
令 d e t ∣ λ I − A ∣ = 0 det|\lambda I-A |= 0 det∣λI−A∣=0 (此式被稱為矩陣A的特征多項式)我們可以得到下式:
( λ − λ 1 ) n 1 ( λ − λ 2 ) n 2 ⋅ ⋅ ⋅ ( λ − λ l ) n l = 0 (\lambda - \lambda _{1})^{n_{1}}(\lambda - \lambda _{2})^{n_{2}}\cdot \cdot \cdot (\lambda - \lambda _{l})^{n_{l}} = 0 (λ−λ
1
)
n
1
(λ−λ
2
)
n
2
⋅⋅⋅(λ−λ
l
)
n
l
=0
∑ i = 1 l n i = N \sum_{i = 1}^{l}n_{i} = N ∑
i=1
l
n
i
=N
這樣我們便可以得到矩陣A的 l l l 種不同的特征值,每種特征值有 n i n_{i} n
i
個重復,共N個特征值。對於特征向量的求解,我們放在下一小節。從這里我們可以看出矩陣A可以有多個特征值和多個特征向量,每一個特征值對應一個或多個特征向量(此時該對應的特征值有重復),不同特征值對應的特征向量之間線性不相關,重根對應的多個特征向量之間不一定不相關。特征值分解將矩陣分解成為了如下形式
A = Q Λ Q − 1 A = Q\Lambda Q^{-1} A=QΛQ
−1
對於沒有重根的情況 Λ = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ n ) \Lambda = diag(\lambda_{1},\lambda_{2},\cdot \cdot \cdot,\lambda_{n}) Λ=diag(λ
1
,λ
2
,⋅⋅⋅,λ
n
) ,對於有重根的情況 Λ \Lambda Λ 為Jordan標准型。這里的Q是以特征向量為列向量的NxN矩陣
1.2 特征向量的求解
求解特征向量有多種方法這里介紹最簡單也是最常用的方法
計算A的特征多項式 d e t ∣ λ I − A ∣ = 0 det|\lambda I-A |= 0 det∣λI−A∣=0,從而求得特征值 λ i \lambda_{i} λ
i
對於單根特征值來說,求齊次方程 ( λ i I − A ) v i = 0 (\lambda_{i} I-A)v_{i} = 0 (λ
i
I−A)v
i
=0,即可求得該特征值對應的特征向量
對於有重根的特征值來說,可以使用一下公式,依次迭代求解
v 1 : A v 1 = λ v 1 v_{1} : Av_{1} = \lambda v_{1} v
1
:Av
1
=λv
1
v 2 : A v 2 = v 1 + λ v 2 v_{2} : Av_{2} =v_{1} + \lambda v_{2} v
2
:Av
2
=v
1
+λv
2
v 3 : A v 3 = v 2 + λ v 3 v_{3} : Av_{3} =v_{2} + \lambda v_{3} v
3
:Av
3
=v
2
+λv
3
⋅ ⋅ ⋅ \cdot \cdot \cdot ⋅⋅⋅
v N : A v N = v N − 1 + λ v N v_{N} : Av_{N} =v_{N-1} + \lambda v_{N} v
N
:Av
N
=v
N−1
+λv
N
1.3 特征值與特征向量的意義解釋
上面介紹了特征值分解、特征值與特征向量的數學定義與求解方式,但是看到這里,可能讀者對於特征值分解的具體意義與作用還是模糊的,這也確實是一個比較難理解的地方。
我們知道,矩陣乘法其實是對應着一個線性變換,是把任意一個向量變成另一個方向或者長度的新向量。在這個變換中,原向量主要發生旋轉、伸縮的變化。如果矩陣對某一個向量或某些向量只發生伸縮變換,而不對這些向量產生旋轉效果,那么這些向量就稱為這個矩陣的特征向量,伸縮的比例就是特征值
例如,對於矩陣 M = [ 3 0 0 1 ] M=
[3001]
[3001]
M=[
3
0
0
1
] 它對應的線性變換為
M矩陣是對稱的,所以這個變換是一個對x,y軸的拉伸變換,此處將原方塊在x軸方向拉長了三倍。對於不是對稱的情況,如 M = [ 1 1 0 1 ] M=
[1011]
[1101]
M=[
1
0
1
1
] ,對應的線性變換為
看到這里,大家應該明白了,特征向量與特征值對於一個矩陣的意義,每一個特征向量都對應着這個矩陣在對另一個對象作線性變換時所產生變換的方向,而特征值則表示着這個變化的大小。也就是說,矩陣A的信息可以由其特征值和特征向量表示。對於矩陣為高維的情況下,這個變換就對應着很多方向的變化,我們通過特征值分解得到的對應特征值較大的前N個特征向量,便表示了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣的變換,而著名的主成分分析(Principle Conponent Analysis,PCA)便是基於這一原理實現的。
總而言之,通過特征值分解我們可以得到特征值與特征向量,特征向量表示這個特征是什么,而特征值表示着這個特征有多重要。同時,我們要意識到特征值分解也有一定的局限性,它的對象必須是方陣,而實際中的矩陣往往不是方陣,后面要說的奇異值分解將其演化到了普通形式的矩陣
二、相似對角化
2.1 相似矩陣的定義
設A、B是兩個n階方陣,如果存在可逆矩陣T,使得 T − 1 A T = B T^{-1}AT= B T
−1
AT=B 則稱A與B相似,記作A~B,從A到B的這種變化稱為相似變換,T稱為相似變換矩陣。
矩陣的相似關系是一種等價關系(並不是相等),相似矩陣滿足以下特性
自反性:A~A
對稱性:若A~B,則B~A
傳遞性:若A~B,B~A,則A~C
2.2 相似對角化的條件與推論
N階方陣A與對角陣相似的前提是:A有N個線性無關的特征向量。可以對角化即意味着存在某組基,使得這個矩陣所代表的線性變換在這組基的每一個方向上都是伸縮變換(復向量上的復“伸縮變換“近似於在某種意義上非剛性但依然線性的伸縮旋轉),不能對角化即意味着找不到這樣一組基
注:對於相似變換來說,有一些東西是變換前后沒有改變的
若 A ∼ Λ = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N ) A \sim \Lambda = diag(\lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N}) A∼Λ=diag(λ
1
,λ
2
,⋅⋅⋅,λ
N
) ,則A與 Λ \Lambda Λ 的特征值相同, Λ \Lambda Λ 的主對角線元素 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
為A的全部特征值。相似變換的變換矩陣為 P = ( p 1 , p 2 , ⋅ ⋅ ⋅ , p N ) P = (p_{1},p_{2},\cdot\cdot\cdot,p_{N}) P=(p
1
,p
2
,⋅⋅⋅,p
N
),則列向量 p 1 , p 2 , ⋅ ⋅ ⋅ , p N p_{1},p_{2},\cdot\cdot\cdot,p_{N} p
1
,p
2
,⋅⋅⋅,p
N
依次是 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
對應的特征向量
相似變換矩陣不唯一,因為特征向量的排列順序可以發生變化
A ∼ Λ A\sim\Lambda A∼Λ,若不計 Λ i \Lambda_{i} Λ
i
的排列順序,則 Λ \Lambda Λ唯一,稱為A的相似標准型
基於相似轉換的定義以及以上特性,我們可以得到一些重要的推論
2.2.1 推論一
若N階方陣A的n個特征值互不相同,則A與對角陣相似,這是顯然的,因為對應於不同特征值的特征向量線性無關,由此N個特征向量可以產生N個線性無關的基向量
2.2.2 推論二
設 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
是A的 l l l個互不相同的特征值,重數依次為 r 1 , r 2 , ⋅ ⋅ ⋅ , r N r_{1},r_{2},\cdot\cdot\cdot,r_{N} r
1
,r
2
,⋅⋅⋅,r
N
,且有 r 1 + r 2 + ⋅ ⋅ ⋅ + r l = N r_{1} + r_{2}+\cdot\cdot\cdot +r_{l} = N r
1
+r
2
+⋅⋅⋅+r
l
=N,則A可以相似對角化的充分必要條件為:A的 r i r_{i} r
i
重特征值 λ i \lambda_{i} λ
i
恰有 r i r_{i} r
i
個線性無關的特征向量 ( i = 1 , 2 , ⋅ ⋅ ⋅ , l ) (i = 1,2,\cdot\cdot\cdot,l) (i=1,2,⋅⋅⋅,l)
注:此處的 r i r_{i} r
i
又被稱為代數重數,而實際的線性無關的特征向量的個數稱為幾何重數 R i R_{i} R
i
。我們有 R i < = r i R_{i} <= r_{i} R
i
<=r
i
總是成立的,推論二是指只有當 R i = r i R_{i} = r_{i} R
i
=r
i
時方陣A才可以相似對角化
推論二的證明較為繁瑣,感興趣的可以點擊這里
2.2.3 推論三
如果N階方陣A可以對角化,則A的秩等於A的非零特征值的個數。這也是很容易理解的,若A可以對角化,設與其相似的對角陣為 Λ \Lambda Λ,即存在可逆矩陣P,使得 P − 1 A P = Λ P_{-1}AP = \Lambda P
−1
AP=Λ。因此A與 Λ \Lambda Λ等價,由此 rank(A) = rank( Λ \Lambda Λ) ,所以 Λ \Lambda Λ對角線上的非零元素個數為rank(A)。又因為A與 Λ \Lambda Λ相似,所以A的特征值與 Λ \Lambda Λ的特征值相同,所以A的秩矩陣的秩等於A的非零特征值的個數
那么,對於那些不能對角化的矩陣我們該如何理解呢?這里我借用知乎上一位匿名答主的回答向大家解釋:
可對角化的矩陣舉例如下,左圖為原圖,右圖為經過可以對角化的矩陣線性變換后的結果,箭頭表示着伸縮的方向,長度表示變換的大小
不能對角化的兩個變換如下,注意這種時候發生了切變,下圖的變換均不能表示為各個方向獨立的伸縮,也不能表示為帶伸縮的旋轉。圖中不從原點出發的箭頭表示切變的大小和方向
同時我們也應該注意到以上的四幅圖中,第二幅圖可以對角化的矩陣,它的jordan標准型是對角化的,而三、四幅圖,它的Jordan標准型不是對角化的。實際上第二幅圖的Jordan標准型就是變換矩陣對角相似化后的對角矩陣(在這里我們也稱它為對角標准型),對角標准型是Jordan標准型的特例
相似對角化是矩陣分析當中最基礎也是最重要的內容,在高等代數與工程問題中被廣泛運用,可以極大的簡化矩陣的運算,如計算方陣的高次冪、求矩陣行列式等
2.3 實對稱矩陣與相似對角化
看了第二節之后,我們知道,對於一般的方陣我們常常無法進行相似對角化來簡化矩陣,同時對於高維矩陣來說,對角化的條件難於判斷。在這一小節,要介紹一類一定可以實現對角化的矩陣——實對稱矩陣
2.3.1 實對稱矩陣的特征值與特征向量
實對稱矩陣的特征值為實數,對應的特征向量為實向量。設 λ \lambda λ是A的特征值,v是對應 λ \lambda λ的特征向量,若A為實對稱矩陣,則有一下性質
A T = A A^{T} = A A
T
=A , A ˉ = A \bar{A} = A
A
ˉ
=A
A v = λ v , v ≠ 0 Av = \lambda v , v \neq 0 Av=λv,v
=0
可以據此推導
v ˉ T A v = v ˉ T A T v = ( A v ˉ ) T v = ( A v ‾ ) T v \bar{v}^{T}Av = \bar{v}^{T}A^{T}v = (A\bar{v})^{T}v = (\overline{Av})^{T}v
v
ˉ
T
Av=
v
ˉ
T
A
T
v=(A
v
ˉ
)
T
v=(
Av
)
T
v
λ v ˉ T v = λ ˉ v ˉ T v \lambda \bar{v}^{T}v = \bar{\lambda} \bar{v}^{T}v λ
v
ˉ
T
v=
λ
ˉ
v
ˉ
T
v
所以
λ = λ ˉ \lambda = \bar{\lambda} λ=
λ
ˉ
λ \lambda λ為實數,因此 d e t ∣ A − λ E ∣ x = 0 det|A-\lambda E|x= 0 det∣A−λE∣x=0必有實的基礎解系,從而對應的特征向量可以取實向量
2.3.2 實對稱矩陣正交相似於對角矩陣
若A是N階實對稱矩陣, λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
是A的特征值,則有正交矩陣Q,使得
Q − 1 A Q = Q T A Q = Λ = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N ) Q^{-1}AQ = Q^{T}AQ = \Lambda = diag(\lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N}) Q
−1
AQ=Q
T
AQ=Λ=diag(λ
1
,λ
2
,⋅⋅⋅,λ
N
)
此時稱A正交相似於 Λ \Lambda Λ。這里有一個非常重要的結論: 實對稱矩陣的所有特征向量之間是線性無關的,我們之前提到的方陣A的特征向量之間線性無關,僅僅限於不同特征值之間的特征向量,對於同一特征值的不同特征向量之間,普通的方陣並不能保證他們線性無關
那么,這個正交變換矩陣該如何求出來呢?可以按照以下步驟:
求出A的全部特征值
求出每個特征值所對應的全部特征向量
以特征向量為列向量寫出變換矩陣
使用Schmidt 正交化將變換矩陣正交化,單位化,得到正交矩陣Q
2.4 相似對角化與特征值分解的區別
相似對角化與特征值分解乍看上去是極為相似的,它們都需要用到特征值與特征向量的概念,但其實有較大差別
目的:特征值分解的目的在於矩陣分解,求得矩陣對應的特征值與特征向量;而相似對角化的目的在於通過變換矩陣的線性變換將原方陣轉換為對角矩陣
條件:所有的方陣都可以進行特征值分解得到對應的特征值與特征向量;只有當方陣的幾何重數與代數重數相等(方陣的最小多項式無重根)時,方陣才可以實現對角化
結果:通過特征值分解得到的特征向量與特征值可以構成對角標准型與jordan標准型(前者是后者的特例),其中Jordan標准型不是對角矩陣;而相似對角化得到的矩陣一定是對角矩陣
三、QR分解
QR分解是目前求取一般矩陣全部特征值的最有效並且廣泛應用的辦法,它是將矩陣分解成為一個正交矩陣Q和一個上三角矩陣R,所以稱為QR分解。這一分解方法除了用於特征值計算外,在參數估計和通信領域也有着廣泛的應用
3.1 QR分解的定義與推導
若 A ϵ R n × m A \epsilon R^{n\times m} AϵR
n×m
,且 n > = m n >= m n>=m,則存在列正交矩陣 Q ϵ R n × m Q \epsilon R^{n\times m} QϵR
n×m
和上三角矩陣 R ϵ R m × m R \epsilon R^{m\times m} RϵR
m×m
,使得 A = Q R A=QR A=QR。
當 m = n m=n m=n 時 , Q Q Q為正交矩陣。如果A是非奇異的 n × n n \times n n×n 矩陣,則R的所有對角線元素均為正,並且在這種情況下, Q Q Q和 R R R是唯一的。若A是復矩陣,則 Q Q Q和 R R R取復值
關於QR分解的證明,這里根據Schmidt 正交化的方法給出當A為列滿秩情況下的證明:
將 A A A 表示為 A = [ x 1 , x 2 , ⋅ ⋅ ⋅ , x m ] A = [x_{1},x_{2},\cdot\cdot\cdot,x_{m}] A=[x
1
,x
2
,⋅⋅⋅,x
m
]
由於 A A A滿秩,所以 x i x_{i} x
i
之間線性獨立,通過Schmidt 正交化我們可以得到一組正交向量和一個上三角矩陣如下
[ u 1 u 2 ⋅ ⋅ ⋅ u m ] = [ x 1 x 2 ⋅ ⋅ ⋅ x m ] [u_{1} u_{2}\cdot\cdot\cdot u_{m}] = [x_{1} x_{2}\cdot\cdot\cdot x_{m}] [u
1
u
2
⋅⋅⋅u
m
]=[x
1
x
2
⋅⋅⋅x
m
] [ t 11 ⋅ ⋅ ⋅ t 1 m 0 ⋱ ⋮ 0 0 t m m ]
⎡⎣⎢⎢t1100⋅⋅⋅⋱0t1m⋮tmm⎤⎦⎥⎥
[t11⋅⋅⋅t1m0⋱⋮00tmm]
⎣
⎢
⎡
t
11
0
0
⋅⋅⋅
⋱
0
t
1m
⋮
t
mm
⎦
⎥
⎤
U = A T U = AT U=AT
這里的T矩陣是Schmidt 正交化的變換矩陣,由於
t i i = ∥ x i − ∑ j = 1 i − 1 < u j , x i > u j ∥ − 1 t_{ii} =
∥∥xi−∑i−1j=1<uj,xi>uj∥∥
‖xi−∑j=1i−1<uj,xi>uj‖
^{-1} t
ii
=
∥
∥
∥
x
i
−∑
j=1
i−1
<u
j
,x
i
>u
j
∥
∥
∥
−1
矩陣T是非奇異的,同時 T − 1 T^{-1} T
−1
也同樣為上三角矩陣,令 Q = U Q = U Q=U, R = T − 1 R = T^{-1} R=T
−1
,我們便可以得到 A = Q R A = QR A=QR
對於矩陣的QR分解其實還有很多種方法除了上面提到的Schmidt 正交化,還有利用矩陣的初等變換、利用Givens變換求QR分解等方法
3.2 QR分解的應用
QR分解在實際工程問題中得到了廣泛的應用,其核心還是圍繞着利用QR分解求解矩陣的特征值進行的,這里列舉出一些常見的例子
利用QR分解求取矩陣的全部特征值
使用QR分解解決最小二乘法
QR分解在參數估計中的應用
QR分解在通信系統中的應用
簡化PCA算法用於人臉識別
四、Schur分解
基於QR分解我們可以推導出Schur分解,同時,Schur分解也是很多重要理論推導的基石,是很多重要定理證明的出發點。在介紹Schur分解之前,我們需要先了解一下什么是酉矩陣(unitary matrix)
4.1 什么是酉矩陣?
4.1.1 “等距”(isometry)
對於一個矩陣 U ϵ F n × m U\epsilon F^{n\times m} UϵF
n×m
,如果 U H U = I U^{H}U = I U
H
U=I (H為共軛轉置)我們便稱 U U U 為一個等距(isometry),它的所有列向量是正交的。等距作為一個線性變換時是保內積運算,同時也是保模長運算,即
< U x , U y > = < x , y > <Ux,Uy> = <x,y> <Ux,Uy>=<x,y>
∥ U x ∥ = < U x , U y > 1 / 2 = < x , y > 1 / 2 = ∥ x ∥
∥Ux∥
‖Ux‖
= <Ux,Uy>^{1/2} = <x,y>^{1/2} =
∥x∥
‖x‖
∥
∥
Ux
∥
∥
=<Ux,Uy>
1/2
=<x,y>
1/2
=
∥
∥
x
∥
∥
4.1.2 “協等距”(co-isometry)
對於一個矩陣 U ϵ F n × m U\epsilon F^{n\times m} UϵF
n×m
,如果 U U H = I UU^{H} = I UU
H
=I 我們便稱 U U U 為一個協等距(isometry),它的所有的行向量是正交的。
4.1.3 酉矩陣(unitary matrix)
一個矩陣如果既滿足等距,又滿足協等距,我們便就稱它為酉矩陣,它的最大特點在於 U − 1 = U H U^{-1} = U^{H} U
−1
=U
H
。酉矩陣其實是正交矩陣在復數域上的推廣,它滿足
U U H = U H U = I UU^{H} = U^{H}U = I UU
H
=U
H
U=I
4.2 Schur分解的定義與推導
方陣 A ϵ F n × n A\epsilon F^{n\times n} AϵF
n×n
具有特征值 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ n \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{n} λ
1
,λ
2
,⋅⋅⋅,λ
n
,則存在一個酉矩陣 U ϵ C n × n U\epsilon C^{n\times n} UϵC
n×n
使得
U H A U = T U^{H}AU = T U
H
AU=T
T T T為一個上三角矩陣,它的對角線元素 t i i = λ i t_{ii} = \lambda_{i} t
ii
=λ
i
。現在來證明Schur分解的存在
記 x i x_{i} x
i
為對應於特征值 λ i \lambda_{i} λ
i
的特征向量,令 X 1 = [ x 1 , x 2 , ⋅ ⋅ ⋅ , x n ] X_{1} = [x_{1},x_{2},\cdot\cdot\cdot,x_{n}] X
1
=[x
1
,x
2
,⋅⋅⋅,x
n
]
對 X 1 X_{1} X
1
進行QR分解,可以得到 X 1 = Q 1 R 1 X_{1} = Q_{1}R_{1} X
1
=Q
1
R
1
, Q 1 Q_{1} Q
1
這里是酉矩陣, R 1 R_{1} R
1
是上三角矩陣。要注意的是 Q 1 Q_{1} Q
1
的第一列仍然是 A A A 對應於特征值 λ i \lambda_{i} λ
i
的特征向量,因此有
Q 1 H A Q 1 = [ λ 1 ∗ 0 A 1 ] Q_{1}^{H}AQ_{1} =
[λ10∗A1]
[λ1∗0A1]
Q
1
H
AQ
1
=[
λ
1
0
∗
A
1
]
這里 A 1 ϵ C ( n − 1 ) × ( n − 1 ) A_{1} \epsilon C^{(n-1)\times(n-1)} A
1
ϵC
(n−1)×(n−1)
,它的特征值為 λ 2 , ⋅ ⋅ ⋅ , λ n \lambda_{2},\cdot\cdot\cdot,\lambda_{n} λ
2
,⋅⋅⋅,λ
n
使用同樣的步驟,我們又可以得到一個酉矩陣 Q 2 ϵ C ( n − 1 ) × ( n − 1 ) Q_{2} \epsilon C^{(n-1) \times (n-1)} Q
2
ϵC
(n−1)×(n−1)
,得到
Q 2 H A 1 Q 2 = [ λ 2 ∗ 0 A 2 ] Q_{2}^{H}A_{1}Q_{2} =
[λ20∗A2]
[λ2∗0A2]
Q
2
H
A
1
Q
2
=[
λ
2
0
∗
A
2
]
再令
U 2 = [ 1 0 0 Q 2 ] U_{2} =
[100Q2]
[100Q2]
U
2
=[
1
0
0
Q
2
]
於是有
U 2 H Q 1 H A Q 1 U 2 = [ λ 1 ∗ ∗ 0 λ 2 ∗ 0 0 A 2 ] U_{2}^{H}Q_{1}^{H}AQ_{1}U_{2} =
⎡⎣⎢λ100∗λ20∗∗A2⎤⎦⎥
[λ1∗∗0λ2∗00A2]
U
2
H
Q
1
H
AQ
1
U
2
=
⎣
⎡
λ
1
0
0
∗
λ
2
0
∗
∗
A
2
⎦
⎤
-重復上述步驟,得到酉矩陣 Q i ϵ C ( n − i + 1 ) × ( n − i + 1 ) Q_{i} \epsilon C^{(n-i+1) \times (n-i+1)} Q
i
ϵC
(n−i+1)×(n−i+1)
可以使
Q i H A i − 1 Q i = [ λ i ∗ 0 A i ] Q_{i}^{H}A_{i-1}Q_{i} =
[λi0∗Ai]
[λi∗0Ai]
Q
i
H
A
i−1
Q
i
=[
λ
i
0
∗
A
i
]
以及 U i ϵ C n × n U_{i} \epsilon C^{n \times n} U
i
ϵC
n×n
U i = [ I 0 0 Q i ] U_{i} =
[I00Qi]
[I00Qi]
U
i
=[
I
0
0
Q
i
]
最后矩陣 U = Q 1 U 2 ⋅ ⋅ ⋅ U n − 1 U = Q_{1}U_{2}\cdot\cdot\cdot U_{n-1} U=Q
1
U
2
⋅⋅⋅U
n−1
即為所求的酉矩陣
4.3 Schur分解的缺陷
Schur分解將原方陣轉化為了一個對角線為特征值的上三角矩陣,在這一章節的開頭已經說過Schur分解是很多重要定理推導的基石與出發點。但是矩陣的Schur分解,在更多意義上是一種理論上的存在,在實際中通常不方便通過有限次運算得到,真正要計算時,一般也是通過迭代的方法進行逼近
五、奇異值分解(SVD)
我們在第一章節中就介紹了特征值分解,這是一個很好的提取矩陣特征的方法,但是,特征值分解只能對方陣使用,在實際問題中,我們解決問題所遇到的矩陣往往都不是方陣,那么,我們怎么樣來描述一個普通矩陣的重要特征呢?奇異值分解為我們提供了一種可以用於任意矩陣分解的方法,這是這篇文章中最重要也是最核心的部分
5.1奇異值分解的定義與推導
對於一個矩陣 A ϵ F m × n A\epsilon F^{m\times n} AϵF
m×n
,可將其寫成如下形式
A = U Λ V T A= U\Lambda V^{T} A=UΛV
T
其中 U ϵ F m × m U\epsilon F^{m\times m} UϵF
m×m
的酉矩陣,被稱為左奇異向量; Λ ϵ F m × n \Lambda \epsilon F^{m\times n} ΛϵF
m×n
的半正定對角矩陣; V H ϵ F n × n V^{H}\epsilon F^{n\times n} V
H
ϵF
n×n
是 V V V的共軛轉置,被稱為右奇異向量。這樣的分解就叫做奇異值分解, Λ \Lambda Λ對角線上的元素 λ i \lambda_{i} λ
i
即為原矩陣 A A A的奇異值, 奇異值一般按照從大到小排列,即
λ 1 > = λ 2 > = ⋅ ⋅ ⋅ > = λ m i n ( n , m ) \lambda_{1} >= \lambda_{2} >= \cdot\cdot\cdot >= \lambda_{min(n,m)} λ
1
>=λ
2
>=⋅⋅⋅>=λ
min(n,m)
奇異值分解的推導可以從特征值分解開始
首先,我們對n階對稱方陣 A T A A^{T}A A
T
A 作特征值分解,得到
A T A = V Λ V T A^{T}A= V\Lambda V^{T} A
T
A=VΛV
T
通過特征值分解我們得到一組正交基 V = ( v 1 , v 2 , ⋅ ⋅ ⋅ , v n ) V = (v_{1},v_{2},\cdot\cdot\cdot,v_{n}) V=(v
1
,v
2
,⋅⋅⋅,v
n
),滿足如下性質
( A T A ) v i = λ i v i (A^{T}A)v_{i} = \lambda_{i}v_{i} (A
T
A)v
i
=λ
i
v
i
由於 A T A A^{T}A A
T
A為對稱矩陣, v i v_{i} v
i
之間兩兩相互正交,所以有
< A v i , A v j > = v i T ( A T A ) v j = v i T λ j v j = λ j v i T v j = 0 <Av_{i},Av_{j}> = v^{T}_{i}(A^{T}A)v_{j} = v^{T}_{i}\lambda_{j}v_{j} = \lambda_{j}v^{T}_{i}v_{j} = 0 <Av
i
,Av
j
>=v
i
T
(A
T
A)v
j
=v
i
T
λ
j
v
j
=λ
j
v
i
T
v
j
=0
因為 r a n k ( A T A ) = r a n k ( A ) = r rank(A^{T}A) = rank(A) = r rank(A
T
A)=rank(A)=r,我們可以得到另一組正交基 A v 1 , A v 1 , ⋅ ⋅ ⋅ , A v r {Av_{1},Av_{1},\cdot\cdot\cdot,Av_{r}} Av
1
,Av
1
,⋅⋅⋅,Av
r
將其標准化有
u i = A v i ∣ A v i ∣ = 1 λ A v i u_{i} = \frac{Av_{i}}{|Av_{i}|} = \frac{1}{\sqrt{\lambda}}Av_{i} u
i
=
∣Av
i
∣
Av
i
=
λ
1
Av
i
A v i = λ i u i = δ i u i Av_{i} = \sqrt{\lambda_{i}}u_{i} =\delta_{i}u_{i} Av
i
=
λ
i
u
i
=δ
i
u
i
注:
∣ A v i ∣ 2 = < A v i , A v i > = λ i v i T v i = λ i |Av_{i}|^{2}=<Av_{i},Av_{i}>=\lambda_{i}v^{T}_{i}v_{i} = \lambda_{i} ∣Av
i
∣
2
=<Av
i
,Av
i
>=λ
i
v
i
T
v
i
=λ
i
將向量組 ( u 1 , u 2 , ⋅ ⋅ ⋅ , u r ) (u_{1},u_{2},\cdot\cdot\cdot,u_{r}) (u
1
,u
2
,⋅⋅⋅,u
r
)擴充為 F m F^{m} F
m
中的標准正交基 ( u 1 , u 2 , ⋅ ⋅ ⋅ , u r , ⋅ ⋅ ⋅ , u m ) (u_{1},u_{2},\cdot\cdot\cdot,u_{r},\cdot\cdot\cdot,u_{m}) (u
1
,u
2
,⋅⋅⋅,u
r
,⋅⋅⋅,u
m
)則:
A V = A ( v 1 , v 2 , ⋅ ⋅ ⋅ , v n ) = ( A v 1 , A v 2 , ⋅ ⋅ ⋅ , A v r , 0 , ⋅ ⋅ ⋅ , 0 ) = ( δ 1 u 1 , δ 2 u 2 , ⋅ ⋅ ⋅ , δ r u r , 0 , ⋅ ⋅ ⋅ , 0 ) = U Λ AV = A(v_{1},v_{2},\cdot\cdot\cdot, v_{n}) = (Av_{1},Av_{2},\cdot\cdot\cdot,Av_{r},0,\cdot\cdot\cdot,0) = (\delta_{1}u_{1},\delta_{2}u_{2},\cdot\cdot\cdot,\delta_{r}u_{r},0,\cdot\cdot\cdot,0) = U\Lambda AV=A(v
1
,v
2
,⋅⋅⋅,v
n
)=(Av
1
,Av
2
,⋅⋅⋅,Av
r
,0,⋅⋅⋅,0)=(δ
1
u
1
,δ
2
u
2
,⋅⋅⋅,δ
r
u
r
,0,⋅⋅⋅,0)=UΛ
由此,可以得到奇異值分解的形式
A = U Λ V T A= U\Lambda V^{T} A=UΛV
T
5.2 奇異值分解的求解
我們現在已經知道了奇異值分解的具體形式,那么奇異值和奇異向量到底怎樣求解呢?
5.2.1奇異值的計算
對於較小維度的矩陣,我們可以從奇異值分解的推導中看出,奇異值 δ i = λ i \delta_{i} = \sqrt{\lambda_{i}} δ
i
=
λ
i
。於是可以通過求解原矩陣的轉置與其自身相乘得到的矩陣的特征值,再對該特征值求平方根的方法求得矩陣的奇異值
高緯度的矩陣的奇異值的計算是一個難題,是一個O(N^3)的算法,隨着規模的增長,計算的復雜度會呈現出3次方的擴大,感興趣的朋友可以看這里
5.2.1奇異向量的計算
在奇異值分解中,有一個十分重要的推論,那就是在式 A = U Λ V T A= U\Lambda V^{T} A=UΛV
T
里,U的列向量為 A A T AA^{T} AA
T
的特征向量,V的列向量為 A T A A^{T}A A
T
A的特征向量。知道這一推論,我們在計算出特征值之后就可以較為方便的求出矩陣的特征向量
5.3 奇異值分解的意義
奇異值分解的目的在於,找到一組正交基,使得矩陣在變換過后是正交的,這是奇異值分解的精髓所在。
5.3.1 數據降維壓縮
奇異值往往對應着矩陣中隱含的重要信息,且重要性和奇異值的大小正相關,對於這一解釋的最大應用就在與圖像的壓縮。可以將矩陣表示為若干個秩一矩陣之和
A = δ 1 u 1 v 1 T + δ 2 u 2 v 2 T + ⋅ ⋅ ⋅ + δ r u r v r T A = \delta_{1}u_{1}v^{T}_{1} + \delta_{2}u_{2}v^{T}_{2} + \cdot\cdot\cdot + \delta_{r}u_{r}v^{T}_{r} A=δ
1
u
1
v
1
T
+δ
2
u
2
v
2
T
+⋅⋅⋅+δ
r
u
r
v
r
T
我們知道,矩陣的奇異值一般按照降序排列即
λ 1 > = λ 2 > = ⋅ ⋅ ⋅ > = λ m i n ( n , m ) > 0 \lambda_{1} >= \lambda_{2} >= \cdot\cdot\cdot >= \lambda_{min(n,m)} >0 λ
1
>=λ
2
>=⋅⋅⋅>=λ
min(n,m)
>0
一般來說, 前10%甚至1%的奇異值之和就可以占到全部奇異值的99%以上,也就是說,我們可以使用奇異值較大的一些特征來表示圖像,省略去較小的奇異值(絕大多數奇異值),來實現圖像的降維壓縮,這里以知乎上的一名 匿名網友的回答為例
左上:原圖 ; 右上:保留前五項 ; 左下:保留前二十項 ; 右下:保留前五十項
原圖的維度遠遠超過10000維,而通過奇異值分解,從上圖可以看出,我們只需要保留前50項,就可以很好的復原圖像,即實現圖像的壓縮。除了實現對圖像的壓縮外,奇異值分解在好友推薦算法,工業過程故障診斷等領域均有廣泛應用。
5.3.2 幾何的線性變換
奇異值分解的幾何意義與特征值分解也極為相似,即奇異向量代表着線性變換的方向,而奇異值表示着在這個方向上變化的大小。這里舉一個較為有名的橢圓變換為例
假設矩陣A的奇異值分解為
A = [ u 1 u 2 ] [ 3 0 0 1 ] [ v 1 T v 2 T ] A =
[u1u2]
[u1u2]
[3001]
[3001]
[vT1vT2]
[v1Tv2T]
A=[
u
1
u
2
][
3
0
0
1
][
v
1
T
v
2
T
]
其中 u 1 , u 2 , v 1 , v 2 u_{1},u_{2},v_{1},v_{2} u
1
,u
2
,v
1
,v
2
是二維平面的向量,根據奇異值分解的性質, u 1 , u 2 u_{1},u_{2} u
1
,u
2
線性無關, v 1 , v 2 v_{1},v_{2} v
1
,v
2
線性無關。那么對二維平面上任意的向量 x x x,都可以表示為: x = a 1 v 1 + a 2 v 2 x = a_{1}v_{1} + a_{2}v_{2} x=a
1
v
1
+a
2
v
2
,當A作用在 x x x上時
y = A x = A [ v 1 v 2 ] [ a 1 T a 2 T ] = [ u 1 u 2 ] [ 3 0 0 1 ] [ v 1 T v 2 T ] [ v 1 v 2 ] [ a 1 T a 2 T ] = 3 a 1 u 1 + a 2 u 2 y = Ax = A
[v1v2]
[v1v2]
[aT1aT2]
[a1Ta2T]
=
[u1u2]
[u1u2]
[3001]
[3001]
[vT1vT2]
[v1Tv2T]
[v1v2]
[v1v2]
[aT1aT2]
[a1Ta2T]
= 3a_{1}u_{1} + a_{2}u_{2} y=Ax=A[
v
1
v
2
][
a
1
T
a
2
T
]=[
u
1
u
2
][
3
0
0
1
][
v
1
T
v
2
T
][
v
1
v
2
][
a
1
T
a
2
T
]=3a
1
u
1
+a
2
u
2
令 η 1 = 3 a 1 , η 2 = a 2 \eta_1=3a_1,~\eta_2=a_2 η
1
=3a
1
, η
2
=a
2
,我們可以得出結論:如果 x x x是在單位圓 a i 1 2 + a i 2 2 = 1 ai_1^2+ai_2^2=1 ai
1
2
+ai
2
2
=1上,那么 y y y正好在橢圓 η 1 2 / 3 2 + η 2 2 / 1 2 = 1 \eta_1^2/3^2+\eta_2^2/1^2=1 η
1
2
/3
2
+η
2
2
/1
2
=1上。這表明:矩陣A將二維平面中單位圓變換成橢圓,而兩個奇異值正好是橢圓的兩個半軸長,長軸所在的直線是 s p a n { u 1 } {\rm span}\{u_1\} span{u
1
},短軸所在的直線是 s p a n { u 2 } {\rm span}\{u_2\} span{u
2
}
推廣到一般情形:一般矩陣A將單位球 ∥ x ∥ 2 = 1 \|x\|_2=1 ∥x∥
2
=1變換為超橢球面 E m = { y ∈ F m : y = A x , x ∈ F n , ∥ x ∥ 2 = 1 } E_m=\{y\in {\bf F}^m:~y=Ax,~x\in{\bf F}^n,~\|x\|_2=1\} E
m
={y∈F
m
: y=Ax, x∈F
n
, ∥x∥
2
=1},那么矩陣A的每個奇異值恰好就是超橢球的每條半軸長度。
參考文獻:
特征值分解部分
[1] http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[2] http://blog.csdn.net/jinshengtao/article/details/18448355
[3] https://wenku.baidu.com/view/3ec0a4ddaeaad1f346933f42.html
[4] http://www.doc88.com/p-9009713157157.html
[5] https://wenku.baidu.com/view/f14c18215901020207409c97.html
[6] https://www.zhihu.com/question/22548386
[7] https://github.com/LiangjunFeng/Machine-Learning/blob/master/8.PCA.py
[8] Bhushan Datta K. Linear system theory and design, by Chi‐Tsong Chen, Oxford University Press, New York, 1999, 334 pages, ISBN 0‐19‐511777‐8[J]. International Journal of Robust & Nonlinear Control, 2015, 10(15):1360-1362.
相似對角化部分
[1] https://wenku.baidu.com/view/c22c4a708e9951e79b892760.html
[2] https://www.zhihu.com/question/36187051
[3] https://wenku.baidu.com/view/347b97466edb6f1aff001f98.html
[4] https://wenku.baidu.com/view/21cd4a9f32d4b14e852458fb770bf78a65293ac2.html
[5] https://en.wikipedia.org/wiki/Shear_stress
[6] http://www.doc88.com/p-7178359679199.html
[7] https://wenku.baidu.com/view/f83d600084254b35effd3401.html
[8] https://wenku.baidu.com/view/41a43f0316fc700abb68fca5.html
[9] https://en.wikipedia.org/wiki/Orthogonal_matrix
QR分解部分
[1] https://wenku.baidu.com/view/bf00c82cf8c75fbfc77db2da.html
[2] http://blog.sina.com.cn/s/blog_3f41287a0101ke2s.html
[3] http://blog.csdn.net/zhaogang1993/article/details/42562009
[4] http://johnhany.net/2016/05/from-qr-decomposition-to-pca-to-face-recognition/
Schur分解部分
[1] https://baike.baidu.com/item/%E9%85%89%E7%9F%A9%E9%98%B5/2967660
[2] https://wenku.baidu.com/view/65aff9174431b90d6c85c7b9.html
[3] https://wenku.baidu.com/view/257d4dc10722192e4436f654.html
[4] http://www.doc88.com/p-6791891160524.html
[5] http://blog.csdn.net/makeway123/article/details/17803991
[6] https://www.zhihu.com/question/20903131
奇異值分解部分
[1] http://blog.csdn.net/zhongkejingwang/article/details/43053513
[2] https://www.zhihu.com/question/22237507
[3] http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[4] http://blog.csdn.net/jinshengtao/article/details/18448355
[5] https://wenku.baidu.com/view/38693ef2e109581b6bd97f19227916888486b916.html
[6] https://wenku.baidu.com/view/3ec0a4ddaeaad1f346933f42.html
[7] http://www.cnblogs.com/liangzh/archive/2013/03/05/2841025.html
[8] http://www.ams.org/samplings/feature-column/fcarc-svd
[9] http://charleshm.github.io/2016/03/Singularly-Valuable-Decomposition/
[10] http://blog.csdn.net/zhuiqiuk/article/details/69390357
————————————————
版權聲明:本文為CSDN博主「Liangjun_Feng」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/liangjun_feng/article/details/78457377
前言
在高等代數里,矩陣分解是一個十分基礎與重要的內容,任何一個學校對於理工科的研究生教育都會開設相應的課程,如:矩陣分析、矩陣論、線性系統等。看了不少社區的問答、筆記和博客,在它們的基礎上加入一些自己的理解,寫下這篇概念詳解,博客中借鑒了不少前人的觀點,這里感謝他們的付出
目錄
前言
一、特征值分解(EVD)
1.1 特征值分解、特征值、特征向量
1.2 特征向量的求解
1.3 特征值與特征向量的意義解釋
二、相似對角化
2.1 相似矩陣的定義
2.2 相似對角化的條件與推論
2.2.1 推論一
2.2.2 推論二
2.2.3 推論三
2.3 實對稱矩陣與相似對角化
2.3.1 實對稱矩陣的特征值與特征向量
2.3.2 實對稱矩陣正交相似於對角矩陣
2.4 相似對角化與特征值分解的區別
三、QR分解
3.1 QR分解的定義與推導
3.2 QR分解的應用
四、Schur分解
4.1 什么是酉矩陣?
4.1.1 "等距"(isometry)
4.1.2 "協等距"(co-isometry)
4.1.3 酉矩陣(unitary matrix)
4.2 Schur分解的定義與推導
4.3 Schur分解的缺陷
五、奇異值分解(SVD)
5.1奇異值分解的定義與推導
5.2 奇異值分解的求解
5.2.1奇異值的計算
5.2.1奇異向量的計算
5.3 奇異值分解的意義
5.3.1 數據降維壓縮
5.3.2 幾何的線性變換
六、更多資源下載
一、特征值分解(EVD)
把特征值分解(EigenValue Decomposition,EVD)放在最前面說是因為這是一個相對來說更基礎的概念,后面的一些分解方式會在這一基礎上進行推導
1.1 特征值分解、特征值、特征向量
特征值分解,是指將矩陣分解為由其特征值和特征向量表示的矩陣之積的方法。一個NxN的方陣A可以有下式:
A v = λ v Av = \lambda v Av=λv
此時 λ \lambda λ被稱為方陣A的特征值,v被稱為特征值 λ \lambda λ 對應的特征向量。上式可以化為
( λ I − A ) v = 0 (\lambda I-A)v = 0 (λI−A)v=0
令 d e t ∣ λ I − A ∣ = 0 det|\lambda I-A |= 0 det∣λI−A∣=0 (此式被稱為矩陣A的特征多項式)我們可以得到下式:
( λ − λ 1 ) n 1 ( λ − λ 2 ) n 2 ⋅ ⋅ ⋅ ( λ − λ l ) n l = 0 (\lambda - \lambda _{1})^{n_{1}}(\lambda - \lambda _{2})^{n_{2}}\cdot \cdot \cdot (\lambda - \lambda _{l})^{n_{l}} = 0 (λ−λ
1
)
n
1
(λ−λ
2
)
n
2
⋅⋅⋅(λ−λ
l
)
n
l
=0
∑ i = 1 l n i = N \sum_{i = 1}^{l}n_{i} = N ∑
i=1
l
n
i
=N
這樣我們便可以得到矩陣A的 l l l 種不同的特征值,每種特征值有 n i n_{i} n
i
個重復,共N個特征值。對於特征向量的求解,我們放在下一小節。從這里我們可以看出矩陣A可以有多個特征值和多個特征向量,每一個特征值對應一個或多個特征向量(此時該對應的特征值有重復),不同特征值對應的特征向量之間線性不相關,重根對應的多個特征向量之間不一定不相關。特征值分解將矩陣分解成為了如下形式
A = Q Λ Q − 1 A = Q\Lambda Q^{-1} A=QΛQ
−1
對於沒有重根的情況 Λ = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ n ) \Lambda = diag(\lambda_{1},\lambda_{2},\cdot \cdot \cdot,\lambda_{n}) Λ=diag(λ
1
,λ
2
,⋅⋅⋅,λ
n
) ,對於有重根的情況 Λ \Lambda Λ 為Jordan標准型。這里的Q是以特征向量為列向量的NxN矩陣
1.2 特征向量的求解
求解特征向量有多種方法這里介紹最簡單也是最常用的方法
計算A的特征多項式 d e t ∣ λ I − A ∣ = 0 det|\lambda I-A |= 0 det∣λI−A∣=0,從而求得特征值 λ i \lambda_{i} λ
i
對於單根特征值來說,求齊次方程 ( λ i I − A ) v i = 0 (\lambda_{i} I-A)v_{i} = 0 (λ
i
I−A)v
i
=0,即可求得該特征值對應的特征向量
對於有重根的特征值來說,可以使用一下公式,依次迭代求解
v 1 : A v 1 = λ v 1 v_{1} : Av_{1} = \lambda v_{1} v
1
:Av
1
=λv
1
v 2 : A v 2 = v 1 + λ v 2 v_{2} : Av_{2} =v_{1} + \lambda v_{2} v
2
:Av
2
=v
1
+λv
2
v 3 : A v 3 = v 2 + λ v 3 v_{3} : Av_{3} =v_{2} + \lambda v_{3} v
3
:Av
3
=v
2
+λv
3
⋅ ⋅ ⋅ \cdot \cdot \cdot ⋅⋅⋅
v N : A v N = v N − 1 + λ v N v_{N} : Av_{N} =v_{N-1} + \lambda v_{N} v
N
:Av
N
=v
N−1
+λv
N
1.3 特征值與特征向量的意義解釋
上面介紹了特征值分解、特征值與特征向量的數學定義與求解方式,但是看到這里,可能讀者對於特征值分解的具體意義與作用還是模糊的,這也確實是一個比較難理解的地方。
我們知道,矩陣乘法其實是對應着一個線性變換,是把任意一個向量變成另一個方向或者長度的新向量。在這個變換中,原向量主要發生旋轉、伸縮的變化。如果矩陣對某一個向量或某些向量只發生伸縮變換,而不對這些向量產生旋轉效果,那么這些向量就稱為這個矩陣的特征向量,伸縮的比例就是特征值
例如,對於矩陣 M = [ 3 0 0 1 ] M=
[3001]
[3001]
M=[
3
0
0
1
] 它對應的線性變換為
M矩陣是對稱的,所以這個變換是一個對x,y軸的拉伸變換,此處將原方塊在x軸方向拉長了三倍。對於不是對稱的情況,如 M = [ 1 1 0 1 ] M=
[1011]
[1101]
M=[
1
0
1
1
] ,對應的線性變換為
看到這里,大家應該明白了,特征向量與特征值對於一個矩陣的意義,每一個特征向量都對應着這個矩陣在對另一個對象作線性變換時所產生變換的方向,而特征值則表示着這個變化的大小。也就是說,矩陣A的信息可以由其特征值和特征向量表示。對於矩陣為高維的情況下,這個變換就對應着很多方向的變化,我們通過特征值分解得到的對應特征值較大的前N個特征向量,便表示了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣的變換,而著名的主成分分析(Principle Conponent Analysis,PCA)便是基於這一原理實現的。
總而言之,通過特征值分解我們可以得到特征值與特征向量,特征向量表示這個特征是什么,而特征值表示着這個特征有多重要。同時,我們要意識到特征值分解也有一定的局限性,它的對象必須是方陣,而實際中的矩陣往往不是方陣,后面要說的奇異值分解將其演化到了普通形式的矩陣
二、相似對角化
2.1 相似矩陣的定義
設A、B是兩個n階方陣,如果存在可逆矩陣T,使得 T − 1 A T = B T^{-1}AT= B T
−1
AT=B 則稱A與B相似,記作A~B,從A到B的這種變化稱為相似變換,T稱為相似變換矩陣。
矩陣的相似關系是一種等價關系(並不是相等),相似矩陣滿足以下特性
自反性:A~A
對稱性:若A~B,則B~A
傳遞性:若A~B,B~A,則A~C
2.2 相似對角化的條件與推論
N階方陣A與對角陣相似的前提是:A有N個線性無關的特征向量。可以對角化即意味着存在某組基,使得這個矩陣所代表的線性變換在這組基的每一個方向上都是伸縮變換(復向量上的復“伸縮變換“近似於在某種意義上非剛性但依然線性的伸縮旋轉),不能對角化即意味着找不到這樣一組基
注:對於相似變換來說,有一些東西是變換前后沒有改變的
若 A ∼ Λ = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N ) A \sim \Lambda = diag(\lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N}) A∼Λ=diag(λ
1
,λ
2
,⋅⋅⋅,λ
N
) ,則A與 Λ \Lambda Λ 的特征值相同, Λ \Lambda Λ 的主對角線元素 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
為A的全部特征值。相似變換的變換矩陣為 P = ( p 1 , p 2 , ⋅ ⋅ ⋅ , p N ) P = (p_{1},p_{2},\cdot\cdot\cdot,p_{N}) P=(p
1
,p
2
,⋅⋅⋅,p
N
),則列向量 p 1 , p 2 , ⋅ ⋅ ⋅ , p N p_{1},p_{2},\cdot\cdot\cdot,p_{N} p
1
,p
2
,⋅⋅⋅,p
N
依次是 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
對應的特征向量
相似變換矩陣不唯一,因為特征向量的排列順序可以發生變化
A ∼ Λ A\sim\Lambda A∼Λ,若不計 Λ i \Lambda_{i} Λ
i
的排列順序,則 Λ \Lambda Λ唯一,稱為A的相似標准型
基於相似轉換的定義以及以上特性,我們可以得到一些重要的推論
2.2.1 推論一
若N階方陣A的n個特征值互不相同,則A與對角陣相似,這是顯然的,因為對應於不同特征值的特征向量線性無關,由此N個特征向量可以產生N個線性無關的基向量
2.2.2 推論二
設 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
是A的 l l l個互不相同的特征值,重數依次為 r 1 , r 2 , ⋅ ⋅ ⋅ , r N r_{1},r_{2},\cdot\cdot\cdot,r_{N} r
1
,r
2
,⋅⋅⋅,r
N
,且有 r 1 + r 2 + ⋅ ⋅ ⋅ + r l = N r_{1} + r_{2}+\cdot\cdot\cdot +r_{l} = N r
1
+r
2
+⋅⋅⋅+r
l
=N,則A可以相似對角化的充分必要條件為:A的 r i r_{i} r
i
重特征值 λ i \lambda_{i} λ
i
恰有 r i r_{i} r
i
個線性無關的特征向量 ( i = 1 , 2 , ⋅ ⋅ ⋅ , l ) (i = 1,2,\cdot\cdot\cdot,l) (i=1,2,⋅⋅⋅,l)
注:此處的 r i r_{i} r
i
又被稱為代數重數,而實際的線性無關的特征向量的個數稱為幾何重數 R i R_{i} R
i
。我們有 R i < = r i R_{i} <= r_{i} R
i
<=r
i
總是成立的,推論二是指只有當 R i = r i R_{i} = r_{i} R
i
=r
i
時方陣A才可以相似對角化
推論二的證明較為繁瑣,感興趣的可以點擊這里
2.2.3 推論三
如果N階方陣A可以對角化,則A的秩等於A的非零特征值的個數。這也是很容易理解的,若A可以對角化,設與其相似的對角陣為 Λ \Lambda Λ,即存在可逆矩陣P,使得 P − 1 A P = Λ P_{-1}AP = \Lambda P
−1
AP=Λ。因此A與 Λ \Lambda Λ等價,由此 rank(A) = rank( Λ \Lambda Λ) ,所以 Λ \Lambda Λ對角線上的非零元素個數為rank(A)。又因為A與 Λ \Lambda Λ相似,所以A的特征值與 Λ \Lambda Λ的特征值相同,所以A的秩矩陣的秩等於A的非零特征值的個數
那么,對於那些不能對角化的矩陣我們該如何理解呢?這里我借用知乎上一位匿名答主的回答向大家解釋:
可對角化的矩陣舉例如下,左圖為原圖,右圖為經過可以對角化的矩陣線性變換后的結果,箭頭表示着伸縮的方向,長度表示變換的大小
不能對角化的兩個變換如下,注意這種時候發生了切變,下圖的變換均不能表示為各個方向獨立的伸縮,也不能表示為帶伸縮的旋轉。圖中不從原點出發的箭頭表示切變的大小和方向
同時我們也應該注意到以上的四幅圖中,第二幅圖可以對角化的矩陣,它的jordan標准型是對角化的,而三、四幅圖,它的Jordan標准型不是對角化的。實際上第二幅圖的Jordan標准型就是變換矩陣對角相似化后的對角矩陣(在這里我們也稱它為對角標准型),對角標准型是Jordan標准型的特例
相似對角化是矩陣分析當中最基礎也是最重要的內容,在高等代數與工程問題中被廣泛運用,可以極大的簡化矩陣的運算,如計算方陣的高次冪、求矩陣行列式等
2.3 實對稱矩陣與相似對角化
看了第二節之后,我們知道,對於一般的方陣我們常常無法進行相似對角化來簡化矩陣,同時對於高維矩陣來說,對角化的條件難於判斷。在這一小節,要介紹一類一定可以實現對角化的矩陣——實對稱矩陣
2.3.1 實對稱矩陣的特征值與特征向量
實對稱矩陣的特征值為實數,對應的特征向量為實向量。設 λ \lambda λ是A的特征值,v是對應 λ \lambda λ的特征向量,若A為實對稱矩陣,則有一下性質
A T = A A^{T} = A A
T
=A , A ˉ = A \bar{A} = A
A
ˉ
=A
A v = λ v , v ≠ 0 Av = \lambda v , v \neq 0 Av=λv,v
=0
可以據此推導
v ˉ T A v = v ˉ T A T v = ( A v ˉ ) T v = ( A v ‾ ) T v \bar{v}^{T}Av = \bar{v}^{T}A^{T}v = (A\bar{v})^{T}v = (\overline{Av})^{T}v
v
ˉ
T
Av=
v
ˉ
T
A
T
v=(A
v
ˉ
)
T
v=(
Av
)
T
v
λ v ˉ T v = λ ˉ v ˉ T v \lambda \bar{v}^{T}v = \bar{\lambda} \bar{v}^{T}v λ
v
ˉ
T
v=
λ
ˉ
v
ˉ
T
v
所以
λ = λ ˉ \lambda = \bar{\lambda} λ=
λ
ˉ
λ \lambda λ為實數,因此 d e t ∣ A − λ E ∣ x = 0 det|A-\lambda E|x= 0 det∣A−λE∣x=0必有實的基礎解系,從而對應的特征向量可以取實向量
2.3.2 實對稱矩陣正交相似於對角矩陣
若A是N階實對稱矩陣, λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N} λ
1
,λ
2
,⋅⋅⋅,λ
N
是A的特征值,則有正交矩陣Q,使得
Q − 1 A Q = Q T A Q = Λ = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ N ) Q^{-1}AQ = Q^{T}AQ = \Lambda = diag(\lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{N}) Q
−1
AQ=Q
T
AQ=Λ=diag(λ
1
,λ
2
,⋅⋅⋅,λ
N
)
此時稱A正交相似於 Λ \Lambda Λ。這里有一個非常重要的結論: 實對稱矩陣的所有特征向量之間是線性無關的,我們之前提到的方陣A的特征向量之間線性無關,僅僅限於不同特征值之間的特征向量,對於同一特征值的不同特征向量之間,普通的方陣並不能保證他們線性無關
那么,這個正交變換矩陣該如何求出來呢?可以按照以下步驟:
求出A的全部特征值
求出每個特征值所對應的全部特征向量
以特征向量為列向量寫出變換矩陣
使用Schmidt 正交化將變換矩陣正交化,單位化,得到正交矩陣Q
2.4 相似對角化與特征值分解的區別
相似對角化與特征值分解乍看上去是極為相似的,它們都需要用到特征值與特征向量的概念,但其實有較大差別
目的:特征值分解的目的在於矩陣分解,求得矩陣對應的特征值與特征向量;而相似對角化的目的在於通過變換矩陣的線性變換將原方陣轉換為對角矩陣
條件:所有的方陣都可以進行特征值分解得到對應的特征值與特征向量;只有當方陣的幾何重數與代數重數相等(方陣的最小多項式無重根)時,方陣才可以實現對角化
結果:通過特征值分解得到的特征向量與特征值可以構成對角標准型與jordan標准型(前者是后者的特例),其中Jordan標准型不是對角矩陣;而相似對角化得到的矩陣一定是對角矩陣
三、QR分解
QR分解是目前求取一般矩陣全部特征值的最有效並且廣泛應用的辦法,它是將矩陣分解成為一個正交矩陣Q和一個上三角矩陣R,所以稱為QR分解。這一分解方法除了用於特征值計算外,在參數估計和通信領域也有着廣泛的應用
3.1 QR分解的定義與推導
若 A ϵ R n × m A \epsilon R^{n\times m} AϵR
n×m
,且 n > = m n >= m n>=m,則存在列正交矩陣 Q ϵ R n × m Q \epsilon R^{n\times m} QϵR
n×m
和上三角矩陣 R ϵ R m × m R \epsilon R^{m\times m} RϵR
m×m
,使得 A = Q R A=QR A=QR。
當 m = n m=n m=n 時 , Q Q Q為正交矩陣。如果A是非奇異的 n × n n \times n n×n 矩陣,則R的所有對角線元素均為正,並且在這種情況下, Q Q Q和 R R R是唯一的。若A是復矩陣,則 Q Q Q和 R R R取復值
關於QR分解的證明,這里根據Schmidt 正交化的方法給出當A為列滿秩情況下的證明:
將 A A A 表示為 A = [ x 1 , x 2 , ⋅ ⋅ ⋅ , x m ] A = [x_{1},x_{2},\cdot\cdot\cdot,x_{m}] A=[x
1
,x
2
,⋅⋅⋅,x
m
]
由於 A A A滿秩,所以 x i x_{i} x
i
之間線性獨立,通過Schmidt 正交化我們可以得到一組正交向量和一個上三角矩陣如下
[ u 1 u 2 ⋅ ⋅ ⋅ u m ] = [ x 1 x 2 ⋅ ⋅ ⋅ x m ] [u_{1} u_{2}\cdot\cdot\cdot u_{m}] = [x_{1} x_{2}\cdot\cdot\cdot x_{m}] [u
1
u
2
⋅⋅⋅u
m
]=[x
1
x
2
⋅⋅⋅x
m
] [ t 11 ⋅ ⋅ ⋅ t 1 m 0 ⋱ ⋮ 0 0 t m m ]
⎡⎣⎢⎢t1100⋅⋅⋅⋱0t1m⋮tmm⎤⎦⎥⎥
[t11⋅⋅⋅t1m0⋱⋮00tmm]
⎣
⎢
⎡
t
11
0
0
⋅⋅⋅
⋱
0
t
1m
⋮
t
mm
⎦
⎥
⎤
U = A T U = AT U=AT
這里的T矩陣是Schmidt 正交化的變換矩陣,由於
t i i = ∥ x i − ∑ j = 1 i − 1 < u j , x i > u j ∥ − 1 t_{ii} =
∥∥xi−∑i−1j=1<uj,xi>uj∥∥
‖xi−∑j=1i−1<uj,xi>uj‖
^{-1} t
ii
=
∥
∥
∥
x
i
−∑
j=1
i−1
<u
j
,x
i
>u
j
∥
∥
∥
−1
矩陣T是非奇異的,同時 T − 1 T^{-1} T
−1
也同樣為上三角矩陣,令 Q = U Q = U Q=U, R = T − 1 R = T^{-1} R=T
−1
,我們便可以得到 A = Q R A = QR A=QR
對於矩陣的QR分解其實還有很多種方法除了上面提到的Schmidt 正交化,還有利用矩陣的初等變換、利用Givens變換求QR分解等方法
3.2 QR分解的應用
QR分解在實際工程問題中得到了廣泛的應用,其核心還是圍繞着利用QR分解求解矩陣的特征值進行的,這里列舉出一些常見的例子
利用QR分解求取矩陣的全部特征值
使用QR分解解決最小二乘法
QR分解在參數估計中的應用
QR分解在通信系統中的應用
簡化PCA算法用於人臉識別
四、Schur分解
基於QR分解我們可以推導出Schur分解,同時,Schur分解也是很多重要理論推導的基石,是很多重要定理證明的出發點。在介紹Schur分解之前,我們需要先了解一下什么是酉矩陣(unitary matrix)
4.1 什么是酉矩陣?
4.1.1 “等距”(isometry)
對於一個矩陣 U ϵ F n × m U\epsilon F^{n\times m} UϵF
n×m
,如果 U H U = I U^{H}U = I U
H
U=I (H為共軛轉置)我們便稱 U U U 為一個等距(isometry),它的所有列向量是正交的。等距作為一個線性變換時是保內積運算,同時也是保模長運算,即
< U x , U y > = < x , y > <Ux,Uy> = <x,y> <Ux,Uy>=<x,y>
∥ U x ∥ = < U x , U y > 1 / 2 = < x , y > 1 / 2 = ∥ x ∥
∥Ux∥
‖Ux‖
= <Ux,Uy>^{1/2} = <x,y>^{1/2} =
∥x∥
‖x‖
∥
∥
Ux
∥
∥
=<Ux,Uy>
1/2
=<x,y>
1/2
=
∥
∥
x
∥
∥
4.1.2 “協等距”(co-isometry)
對於一個矩陣 U ϵ F n × m U\epsilon F^{n\times m} UϵF
n×m
,如果 U U H = I UU^{H} = I UU
H
=I 我們便稱 U U U 為一個協等距(isometry),它的所有的行向量是正交的。
4.1.3 酉矩陣(unitary matrix)
一個矩陣如果既滿足等距,又滿足協等距,我們便就稱它為酉矩陣,它的最大特點在於 U − 1 = U H U^{-1} = U^{H} U
−1
=U
H
。酉矩陣其實是正交矩陣在復數域上的推廣,它滿足
U U H = U H U = I UU^{H} = U^{H}U = I UU
H
=U
H
U=I
4.2 Schur分解的定義與推導
方陣 A ϵ F n × n A\epsilon F^{n\times n} AϵF
n×n
具有特征值 λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ n \lambda_{1},\lambda_{2},\cdot\cdot\cdot,\lambda_{n} λ
1
,λ
2
,⋅⋅⋅,λ
n
,則存在一個酉矩陣 U ϵ C n × n U\epsilon C^{n\times n} UϵC
n×n
使得
U H A U = T U^{H}AU = T U
H
AU=T
T T T為一個上三角矩陣,它的對角線元素 t i i = λ i t_{ii} = \lambda_{i} t
ii
=λ
i
。現在來證明Schur分解的存在
記 x i x_{i} x
i
為對應於特征值 λ i \lambda_{i} λ
i
的特征向量,令 X 1 = [ x 1 , x 2 , ⋅ ⋅ ⋅ , x n ] X_{1} = [x_{1},x_{2},\cdot\cdot\cdot,x_{n}] X
1
=[x
1
,x
2
,⋅⋅⋅,x
n
]
對 X 1 X_{1} X
1
進行QR分解,可以得到 X 1 = Q 1 R 1 X_{1} = Q_{1}R_{1} X
1
=Q
1
R
1
, Q 1 Q_{1} Q
1
這里是酉矩陣, R 1 R_{1} R
1
是上三角矩陣。要注意的是 Q 1 Q_{1} Q
1
的第一列仍然是 A A A 對應於特征值 λ i \lambda_{i} λ
i
的特征向量,因此有
Q 1 H A Q 1 = [ λ 1 ∗ 0 A 1 ] Q_{1}^{H}AQ_{1} =
[λ10∗A1]
[λ1∗0A1]
Q
1
H
AQ
1
=[
λ
1
0
∗
A
1
]
這里 A 1 ϵ C ( n − 1 ) × ( n − 1 ) A_{1} \epsilon C^{(n-1)\times(n-1)} A
1
ϵC
(n−1)×(n−1)
,它的特征值為 λ 2 , ⋅ ⋅ ⋅ , λ n \lambda_{2},\cdot\cdot\cdot,\lambda_{n} λ
2
,⋅⋅⋅,λ
n
使用同樣的步驟,我們又可以得到一個酉矩陣 Q 2 ϵ C ( n − 1 ) × ( n − 1 ) Q_{2} \epsilon C^{(n-1) \times (n-1)} Q
2
ϵC
(n−1)×(n−1)
,得到
Q 2 H A 1 Q 2 = [ λ 2 ∗ 0 A 2 ] Q_{2}^{H}A_{1}Q_{2} =
[λ20∗A2]
[λ2∗0A2]
Q
2
H
A
1
Q
2
=[
λ
2
0
∗
A
2
]
再令
U 2 = [ 1 0 0 Q 2 ] U_{2} =
[100Q2]
[100Q2]
U
2
=[
1
0
0
Q
2
]
於是有
U 2 H Q 1 H A Q 1 U 2 = [ λ 1 ∗ ∗ 0 λ 2 ∗ 0 0 A 2 ] U_{2}^{H}Q_{1}^{H}AQ_{1}U_{2} =
⎡⎣⎢λ100∗λ20∗∗A2⎤⎦⎥
[λ1∗∗0λ2∗00A2]
U
2
H
Q
1
H
AQ
1
U
2
=
⎣
⎡
λ
1
0
0
∗
λ
2
0
∗
∗
A
2
⎦
⎤
-重復上述步驟,得到酉矩陣 Q i ϵ C ( n − i + 1 ) × ( n − i + 1 ) Q_{i} \epsilon C^{(n-i+1) \times (n-i+1)} Q
i
ϵC
(n−i+1)×(n−i+1)
可以使
Q i H A i − 1 Q i = [ λ i ∗ 0 A i ] Q_{i}^{H}A_{i-1}Q_{i} =
[λi0∗Ai]
[λi∗0Ai]
Q
i
H
A
i−1
Q
i
=[
λ
i
0
∗
A
i
]
以及 U i ϵ C n × n U_{i} \epsilon C^{n \times n} U
i
ϵC
n×n
U i = [ I 0 0 Q i ] U_{i} =
[I00Qi]
[I00Qi]
U
i
=[
I
0
0
Q
i
]
最后矩陣 U = Q 1 U 2 ⋅ ⋅ ⋅ U n − 1 U = Q_{1}U_{2}\cdot\cdot\cdot U_{n-1} U=Q
1
U
2
⋅⋅⋅U
n−1
即為所求的酉矩陣
4.3 Schur分解的缺陷
Schur分解將原方陣轉化為了一個對角線為特征值的上三角矩陣,在這一章節的開頭已經說過Schur分解是很多重要定理推導的基石與出發點。但是矩陣的Schur分解,在更多意義上是一種理論上的存在,在實際中通常不方便通過有限次運算得到,真正要計算時,一般也是通過迭代的方法進行逼近
五、奇異值分解(SVD)
我們在第一章節中就介紹了特征值分解,這是一個很好的提取矩陣特征的方法,但是,特征值分解只能對方陣使用,在實際問題中,我們解決問題所遇到的矩陣往往都不是方陣,那么,我們怎么樣來描述一個普通矩陣的重要特征呢?奇異值分解為我們提供了一種可以用於任意矩陣分解的方法,這是這篇文章中最重要也是最核心的部分
5.1奇異值分解的定義與推導
對於一個矩陣 A ϵ F m × n A\epsilon F^{m\times n} AϵF
m×n
,可將其寫成如下形式
A = U Λ V T A= U\Lambda V^{T} A=UΛV
T
其中 U ϵ F m × m U\epsilon F^{m\times m} UϵF
m×m
的酉矩陣,被稱為左奇異向量; Λ ϵ F m × n \Lambda \epsilon F^{m\times n} ΛϵF
m×n
的半正定對角矩陣; V H ϵ F n × n V^{H}\epsilon F^{n\times n} V
H
ϵF
n×n
是 V V V的共軛轉置,被稱為右奇異向量。這樣的分解就叫做奇異值分解, Λ \Lambda Λ對角線上的元素 λ i \lambda_{i} λ
i
即為原矩陣 A A A的奇異值, 奇異值一般按照從大到小排列,即
λ 1 > = λ 2 > = ⋅ ⋅ ⋅ > = λ m i n ( n , m ) \lambda_{1} >= \lambda_{2} >= \cdot\cdot\cdot >= \lambda_{min(n,m)} λ
1
>=λ
2
>=⋅⋅⋅>=λ
min(n,m)
奇異值分解的推導可以從特征值分解開始
首先,我們對n階對稱方陣 A T A A^{T}A A
T
A 作特征值分解,得到
A T A = V Λ V T A^{T}A= V\Lambda V^{T} A
T
A=VΛV
T
通過特征值分解我們得到一組正交基 V = ( v 1 , v 2 , ⋅ ⋅ ⋅ , v n ) V = (v_{1},v_{2},\cdot\cdot\cdot,v_{n}) V=(v
1
,v
2
,⋅⋅⋅,v
n
),滿足如下性質
( A T A ) v i = λ i v i (A^{T}A)v_{i} = \lambda_{i}v_{i} (A
T
A)v
i
=λ
i
v
i
由於 A T A A^{T}A A
T
A為對稱矩陣, v i v_{i} v
i
之間兩兩相互正交,所以有
< A v i , A v j > = v i T ( A T A ) v j = v i T λ j v j = λ j v i T v j = 0 <Av_{i},Av_{j}> = v^{T}_{i}(A^{T}A)v_{j} = v^{T}_{i}\lambda_{j}v_{j} = \lambda_{j}v^{T}_{i}v_{j} = 0 <Av
i
,Av
j
>=v
i
T
(A
T
A)v
j
=v
i
T
λ
j
v
j
=λ
j
v
i
T
v
j
=0
因為 r a n k ( A T A ) = r a n k ( A ) = r rank(A^{T}A) = rank(A) = r rank(A
T
A)=rank(A)=r,我們可以得到另一組正交基 A v 1 , A v 1 , ⋅ ⋅ ⋅ , A v r {Av_{1},Av_{1},\cdot\cdot\cdot,Av_{r}} Av
1
,Av
1
,⋅⋅⋅,Av
r
將其標准化有
u i = A v i ∣ A v i ∣ = 1 λ A v i u_{i} = \frac{Av_{i}}{|Av_{i}|} = \frac{1}{\sqrt{\lambda}}Av_{i} u
i
=
∣Av
i
∣
Av
i
=
λ
1
Av
i
A v i = λ i u i = δ i u i Av_{i} = \sqrt{\lambda_{i}}u_{i} =\delta_{i}u_{i} Av
i
=
λ
i
u
i
=δ
i
u
i
注:
∣ A v i ∣ 2 = < A v i , A v i > = λ i v i T v i = λ i |Av_{i}|^{2}=<Av_{i},Av_{i}>=\lambda_{i}v^{T}_{i}v_{i} = \lambda_{i} ∣Av
i
∣
2
=<Av
i
,Av
i
>=λ
i
v
i
T
v
i
=λ
i
將向量組 ( u 1 , u 2 , ⋅ ⋅ ⋅ , u r ) (u_{1},u_{2},\cdot\cdot\cdot,u_{r}) (u
1
,u
2
,⋅⋅⋅,u
r
)擴充為 F m F^{m} F
m
中的標准正交基 ( u 1 , u 2 , ⋅ ⋅ ⋅ , u r , ⋅ ⋅ ⋅ , u m ) (u_{1},u_{2},\cdot\cdot\cdot,u_{r},\cdot\cdot\cdot,u_{m}) (u
1
,u
2
,⋅⋅⋅,u
r
,⋅⋅⋅,u
m
)則:
A V = A ( v 1 , v 2 , ⋅ ⋅ ⋅ , v n ) = ( A v 1 , A v 2 , ⋅ ⋅ ⋅ , A v r , 0 , ⋅ ⋅ ⋅ , 0 ) = ( δ 1 u 1 , δ 2 u 2 , ⋅ ⋅ ⋅ , δ r u r , 0 , ⋅ ⋅ ⋅ , 0 ) = U Λ AV = A(v_{1},v_{2},\cdot\cdot\cdot, v_{n}) = (Av_{1},Av_{2},\cdot\cdot\cdot,Av_{r},0,\cdot\cdot\cdot,0) = (\delta_{1}u_{1},\delta_{2}u_{2},\cdot\cdot\cdot,\delta_{r}u_{r},0,\cdot\cdot\cdot,0) = U\Lambda AV=A(v
1
,v
2
,⋅⋅⋅,v
n
)=(Av
1
,Av
2
,⋅⋅⋅,Av
r
,0,⋅⋅⋅,0)=(δ
1
u
1
,δ
2
u
2
,⋅⋅⋅,δ
r
u
r
,0,⋅⋅⋅,0)=UΛ
由此,可以得到奇異值分解的形式
A = U Λ V T A= U\Lambda V^{T} A=UΛV
T
5.2 奇異值分解的求解
我們現在已經知道了奇異值分解的具體形式,那么奇異值和奇異向量到底怎樣求解呢?
5.2.1奇異值的計算
對於較小維度的矩陣,我們可以從奇異值分解的推導中看出,奇異值 δ i = λ i \delta_{i} = \sqrt{\lambda_{i}} δ
i
=
λ
i
。於是可以通過求解原矩陣的轉置與其自身相乘得到的矩陣的特征值,再對該特征值求平方根的方法求得矩陣的奇異值
高緯度的矩陣的奇異值的計算是一個難題,是一個O(N^3)的算法,隨着規模的增長,計算的復雜度會呈現出3次方的擴大,感興趣的朋友可以看這里
5.2.1奇異向量的計算
在奇異值分解中,有一個十分重要的推論,那就是在式 A = U Λ V T A= U\Lambda V^{T} A=UΛV
T
里,U的列向量為 A A T AA^{T} AA
T
的特征向量,V的列向量為 A T A A^{T}A A
T
A的特征向量。知道這一推論,我們在計算出特征值之后就可以較為方便的求出矩陣的特征向量
5.3 奇異值分解的意義
奇異值分解的目的在於,找到一組正交基,使得矩陣在變換過后是正交的,這是奇異值分解的精髓所在。
5.3.1 數據降維壓縮
奇異值往往對應着矩陣中隱含的重要信息,且重要性和奇異值的大小正相關,對於這一解釋的最大應用就在與圖像的壓縮。可以將矩陣表示為若干個秩一矩陣之和
A = δ 1 u 1 v 1 T + δ 2 u 2 v 2 T + ⋅ ⋅ ⋅ + δ r u r v r T A = \delta_{1}u_{1}v^{T}_{1} + \delta_{2}u_{2}v^{T}_{2} + \cdot\cdot\cdot + \delta_{r}u_{r}v^{T}_{r} A=δ
1
u
1
v
1
T
+δ
2
u
2
v
2
T
+⋅⋅⋅+δ
r
u
r
v
r
T
我們知道,矩陣的奇異值一般按照降序排列即
λ 1 > = λ 2 > = ⋅ ⋅ ⋅ > = λ m i n ( n , m ) > 0 \lambda_{1} >= \lambda_{2} >= \cdot\cdot\cdot >= \lambda_{min(n,m)} >0 λ
1
>=λ
2
>=⋅⋅⋅>=λ
min(n,m)
>0
一般來說, 前10%甚至1%的奇異值之和就可以占到全部奇異值的99%以上,也就是說,我們可以使用奇異值較大的一些特征來表示圖像,省略去較小的奇異值(絕大多數奇異值),來實現圖像的降維壓縮,這里以知乎上的一名 匿名網友的回答為例
左上:原圖 ; 右上:保留前五項 ; 左下:保留前二十項 ; 右下:保留前五十項
原圖的維度遠遠超過10000維,而通過奇異值分解,從上圖可以看出,我們只需要保留前50項,就可以很好的復原圖像,即實現圖像的壓縮。除了實現對圖像的壓縮外,奇異值分解在好友推薦算法,工業過程故障診斷等領域均有廣泛應用。
5.3.2 幾何的線性變換
奇異值分解的幾何意義與特征值分解也極為相似,即奇異向量代表着線性變換的方向,而奇異值表示着在這個方向上變化的大小。這里舉一個較為有名的橢圓變換為例
假設矩陣A的奇異值分解為
A = [ u 1 u 2 ] [ 3 0 0 1 ] [ v 1 T v 2 T ] A =
[u1u2]
[u1u2]
[3001]
[3001]
[vT1vT2]
[v1Tv2T]
A=[
u
1
u
2
][
3
0
0
1
][
v
1
T
v
2
T
]
其中 u 1 , u 2 , v 1 , v 2 u_{1},u_{2},v_{1},v_{2} u
1
,u
2
,v
1
,v
2
是二維平面的向量,根據奇異值分解的性質, u 1 , u 2 u_{1},u_{2} u
1
,u
2
線性無關, v 1 , v 2 v_{1},v_{2} v
1
,v
2
線性無關。那么對二維平面上任意的向量 x x x,都可以表示為: x = a 1 v 1 + a 2 v 2 x = a_{1}v_{1} + a_{2}v_{2} x=a
1
v
1
+a
2
v
2
,當A作用在 x x x上時
y = A x = A [ v 1 v 2 ] [ a 1 T a 2 T ] = [ u 1 u 2 ] [ 3 0 0 1 ] [ v 1 T v 2 T ] [ v 1 v 2 ] [ a 1 T a 2 T ] = 3 a 1 u 1 + a 2 u 2 y = Ax = A
[v1v2]
[v1v2]
[aT1aT2]
[a1Ta2T]
=
[u1u2]
[u1u2]
[3001]
[3001]
[vT1vT2]
[v1Tv2T]
[v1v2]
[v1v2]
[aT1aT2]
[a1Ta2T]
= 3a_{1}u_{1} + a_{2}u_{2} y=Ax=A[
v
1
v
2
][
a
1
T
a
2
T
]=[
u
1
u
2
][
3
0
0
1
][
v
1
T
v
2
T
][
v
1
v
2
][
a
1
T
a
2
T
]=3a
1
u
1
+a
2
u
2
令 η 1 = 3 a 1 , η 2 = a 2 \eta_1=3a_1,~\eta_2=a_2 η
1
=3a
1
, η
2
=a
2
,我們可以得出結論:如果 x x x是在單位圓 a i 1 2 + a i 2 2 = 1 ai_1^2+ai_2^2=1 ai
1
2
+ai
2
2
=1上,那么 y y y正好在橢圓 η 1 2 / 3 2 + η 2 2 / 1 2 = 1 \eta_1^2/3^2+\eta_2^2/1^2=1 η
1
2
/3
2
+η
2
2
/1
2
=1上。這表明:矩陣A將二維平面中單位圓變換成橢圓,而兩個奇異值正好是橢圓的兩個半軸長,長軸所在的直線是 s p a n { u 1 } {\rm span}\{u_1\} span{u
1
},短軸所在的直線是 s p a n { u 2 } {\rm span}\{u_2\} span{u
2
}
推廣到一般情形:一般矩陣A將單位球 ∥ x ∥ 2 = 1 \|x\|_2=1 ∥x∥
2
=1變換為超橢球面 E m = { y ∈ F m : y = A x , x ∈ F n , ∥ x ∥ 2 = 1 } E_m=\{y\in {\bf F}^m:~y=Ax,~x\in{\bf F}^n,~\|x\|_2=1\} E
m
={y∈F
m
: y=Ax, x∈F
n
, ∥x∥
2
=1},那么矩陣A的每個奇異值恰好就是超橢球的每條半軸長度。
參考文獻:
特征值分解部分
[1] http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[2] http://blog.csdn.net/jinshengtao/article/details/18448355
[3] https://wenku.baidu.com/view/3ec0a4ddaeaad1f346933f42.html
[4] http://www.doc88.com/p-9009713157157.html
[5] https://wenku.baidu.com/view/f14c18215901020207409c97.html
[6] https://www.zhihu.com/question/22548386
[7] https://github.com/LiangjunFeng/Machine-Learning/blob/master/8.PCA.py
[8] Bhushan Datta K. Linear system theory and design, by Chi‐Tsong Chen, Oxford University Press, New York, 1999, 334 pages, ISBN 0‐19‐511777‐8[J]. International Journal of Robust & Nonlinear Control, 2015, 10(15):1360-1362.
相似對角化部分
[1] https://wenku.baidu.com/view/c22c4a708e9951e79b892760.html
[2] https://www.zhihu.com/question/36187051
[3] https://wenku.baidu.com/view/347b97466edb6f1aff001f98.html
[4] https://wenku.baidu.com/view/21cd4a9f32d4b14e852458fb770bf78a65293ac2.html
[5] https://en.wikipedia.org/wiki/Shear_stress
[6] http://www.doc88.com/p-7178359679199.html
[7] https://wenku.baidu.com/view/f83d600084254b35effd3401.html
[8] https://wenku.baidu.com/view/41a43f0316fc700abb68fca5.html
[9] https://en.wikipedia.org/wiki/Orthogonal_matrix
QR分解部分
[1] https://wenku.baidu.com/view/bf00c82cf8c75fbfc77db2da.html
[2] http://blog.sina.com.cn/s/blog_3f41287a0101ke2s.html
[3] http://blog.csdn.net/zhaogang1993/article/details/42562009
[4] http://johnhany.net/2016/05/from-qr-decomposition-to-pca-to-face-recognition/
Schur分解部分
[1] https://baike.baidu.com/item/%E9%85%89%E7%9F%A9%E9%98%B5/2967660
[2] https://wenku.baidu.com/view/65aff9174431b90d6c85c7b9.html
[3] https://wenku.baidu.com/view/257d4dc10722192e4436f654.html
[4] http://www.doc88.com/p-6791891160524.html
[5] http://blog.csdn.net/makeway123/article/details/17803991
[6] https://www.zhihu.com/question/20903131
奇異值分解部分
[1] http://blog.csdn.net/zhongkejingwang/article/details/43053513
[2] https://www.zhihu.com/question/22237507
[3] http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[4] http://blog.csdn.net/jinshengtao/article/details/18448355
[5] https://wenku.baidu.com/view/38693ef2e109581b6bd97f19227916888486b916.html
[6] https://wenku.baidu.com/view/3ec0a4ddaeaad1f346933f42.html
[7] http://www.cnblogs.com/liangzh/archive/2013/03/05/2841025.html
[8] http://www.ams.org/samplings/feature-column/fcarc-svd
[9] http://charleshm.github.io/2016/03/Singularly-Valuable-Decomposition/
[10] http://blog.csdn.net/zhuiqiuk/article/details/69390357
————————————————
版權聲明:本文為CSDN博主「Liangjun_Feng」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/liangjun_feng/article/details/78457377