原文 | https://mp.weixin.qq.com/s/PRQQvSfmipxPBeF80aEQ1A
一個矩陣有逆矩陣的前提是該矩陣是一個滿秩的方陣。然而很多時候遇到的都是長方矩陣,長方矩陣是否有類似的逆矩陣呢?
先把4個基本子空間的圖貼上,A是m×n的矩陣,其中r是矩陣的秩:
兩側逆(2-sided inverse)
我們通常說的逆矩陣都是針對滿秩方陣而言,此時AA-1 = I = A-1A,A左乘或右乘A-1的結果都是單位矩陣,所以將這種逆矩陣稱為兩側逆。
左逆(Left inverse)
如果A是一個m×n的列滿秩矩陣,意味着A的各列線性無關,A的秩和列數相等,r = n,但A可能存在更多的行,m ≥ n,此時A的零空間只有零向量,並且Ax = b有唯一解(m = n時)或無解(m > n時)。
對於列滿秩矩陣來說,對稱矩陣ATA是一個n×n的滿秩方陣,因此ATA可逆,此時:
我們稱A-1left為A的左逆,是一個n×m的矩陣,左逆也是討論最小二乘問題的核心。
右逆(Right inverse)
如果A是一個m×n的行滿秩矩陣,意味着A的各行線性無關,A的秩和行數相等,r = m,但A可能存在更多的列,m ≤ n。A的左零空間只有零向量,A的零空間是n - r維,因此有n – r個自由變量,當n > m時,Ax = b有無數解。
對於行滿秩矩陣來說,對稱矩陣AAT是一個m×m的滿秩方陣,因此AAT可逆,此時:
通常來說,右乘左逆得不到單位矩陣,僅在m = n時才有AA-1left = I。對於列滿秩的m×n矩陣來說,AA-1left = A(ATA)-1AT = P,P是A的列空間的投影矩陣。同理,左乘右逆也得不到單位矩陣,A-1rightA是A的行空間的投影矩陣。
示例 找出A的右逆:
Numpy的pinv函數可以求得右逆:
1 import numpy as np 2 3 A = np.mat('1 0 1; 0 1 0') 4 print(np.linalg.pinv(A))
偽逆(Pseudoinverse)
逆矩陣可看作矩陣的逆操作,向量x在A的作用下變成了了Ax,Ax通過A-1又得到x:
方陣A是否可逆和是否存在零空間有關,可逆矩陣的零空間和左零空間都只有零向量。零空間的向量是滿足Ax = 0的所有x,假設A存在零空間,那么對於零空間的非零向量來說:
此時A的各列的線性組合是0,這意味着A的列是線性相關的,A一定不是滿秩的,A是奇異矩陣,A不可逆。
列滿秩矩陣的零空間只有零向量,有左逆矩陣;行滿秩矩陣的左零空間只有零向量,有右逆矩陣。但是對於不滿秩的矩陣Am×n(r < n, r < m)來說,兩個零空間都存在,此時它無法得到左逆或右逆。
假設Am×n是不滿秩的矩陣,其行空間和列空間的維數相等。如果此時行空間的一個向量x,經過A的變換,變為列空間的向量Ax,並且x和Ax是一一對應的(如果行空間的兩個向量u ≠ v,則Au ≠ Av),那么在把逆操作限制在行空間和列空間上時,A是可以進行逆操作的,A在這兩個空間上的逆矩陣稱為偽逆,記作A+:
這里的關鍵是x和Ax是一一對應的,如果行空間的兩個向量u ≠ v,則Au ≠ Av,只有這樣,逆操作才成立。為什么會有一一對應?
u和v是行空間的兩個不同的向量,經過A的轉換將變成列空間的另外兩個向量Au和Av。我們假設Au = Av,這相當於Au – Av = 0,即A(u – v) = 0,這意味着u – v屬於零空間。但u和v是行空間的兩個向量,它們的線性組合也屬於行空間,與結論矛盾,因此假設不成立,Au ≠ Av。行空間和列空間的向量是一一對應的。
統計學家非常需要偽逆矩陣,因為他們經常使用最小二乘求解線性回歸問題。統計學家經常做一些試驗,並用矩陣A記錄這些試驗結果(每個結果有多個屬性值),如果試驗存在大量重復的結果,那么A將可能不是列滿秩的,ATA不可逆,無法用過去的方法解決最小二乘。此時偽逆就有了用武之地。怎樣找出偽逆呢?
找出偽逆
Am×n是一個不滿秩矩陣,行數和列數都大於秩,m > r, n > r,找出A+的一個方法是利用奇異值分解。A的奇異值分解是:
∑是一由奇異值構成的對角矩陣:
∑和A的尺寸一致,也是m×n矩陣,它的秩是r,顯然也是一個不可逆矩陣,並且∑T∑和∑∑T都不可逆,也就是說∑也不存在左逆或右逆,只有偽逆:
∑+是一個n×m矩陣,它的秩仍然是r。偽逆是最接近逆的:
U和VT都是正交矩陣,其逆矩陣等於轉置,(VT)-1=V, U-1 = UT,A的偽逆為:
值得注意的是,AA+得到的並不是像∑∑+這樣對角線上只有1和0的矩陣,而是A的行空間的投影矩陣。
偽逆的性質
偽逆滿足4個性質:
綜合示例
,A是否可逆?是否有左逆、右逆或偽逆?
A的行列式是0,A是一個奇異矩陣,故A沒有逆矩陣。
A既不是行滿秩也不是列滿秩,故A沒有左逆或右逆,只有偽逆。
用奇異值分解求解A的偽逆,先對A進行奇異值分解A=UΣVT。
先求得AAT的特征值:
只有一個正的特征值125,對應的奇異值和奇異值矩陣是:
接下來根據根據特征方程求得AAT的特征向量:
U是標准化后的特征向量矩陣:
用同樣的方法求得ATA的特征值和特征向量,進而求得V。
出處:微信公眾號 "我是8位的"
本文以學習、研究和分享為主,如需轉載,請聯系本人,標明作者和出處,非商業用途!
掃描二維碼關注作者公眾號“我是8位的”