讀古今文學網 > 機器學習實戰 > B.2 矩陣求逆 >

B.2 矩陣求逆

當處理矩陣代數方程時,經常會碰到矩陣的逆矩陣。如果XY=I,其中I是單位陣(單位陣I的對角線元素均為1,而其他元素都是0。任意矩陣乘以單位陣仍為原始矩陣),則稱XY的逆矩陣。逆矩陣的一個實際缺陷是當矩陣不止幾個元素時計算很麻煩且基本不可能通過手工計算。瞭解矩陣什麼時候才有逆很有幫助,這樣就可以避免程序的錯誤。矩陣B的逆矩陣通常表示為B-1

矩陣要可逆必須要是方陣。這裡所謂方陣,是指矩陣的行數等於列數。即使矩陣是方陣,它也可能不可逆。如果某個矩陣不可逆,則稱它為奇異(singular)或退化(degenerate)矩陣。如果某個矩陣的一列可以表示為其他列的線性組合,則該矩陣是奇異矩陣。如果能夠這樣表示,則可以把一列全部歸約為0。圖B-9給出了這樣的一個矩陣樣例。將計算矩陣的逆時,出現這種矩陣就非常麻煩,因為出現了除零運算。後面會介紹這一點。

圖B-9 一個奇異矩陣的例子。該矩陣有一列為0,意味著該矩陣不能求逆

有很多矩陣求逆的方法,一種方法是對矩陣進行重排然後每個元素除以行列式。所謂行列式是與方陣關聯的一個特殊值,通過它能反映矩陣的一些信息。圖B-10給出了一個2×2矩陣的手工矩陣求逆過程。注意一下行列式det的計算方法。這裡每個元素都要除以行列式。如果矩陣的某列全是0,則行列式也為0。這就會導致除零運算,由於此時無法運算,因此該矩陣無法求逆。這就是要求逆的矩陣必須滿秩的原因。

圖B-10 方陣B的逆矩陣求解。由於每個矩陣元素都要乘上1/det(B),因此det(B)不能為0。如果B為奇異矩陣,則det(B)為0,此時無法對B求逆。

上面已經看到一個2×2矩陣的求逆過程。接下來看看3×3的矩陣如何求逆,你會發現這次要複雜得多。圖B-11給出了一個3×3矩陣的求逆計算過程。

圖B-11 一個3x3的矩陣C的逆矩陣求解過程。矩陣更大,手工求解的難度也加大。一個大小為n的方陣的行列式包含n!個元素

一個值得吸取的教訓就是由於行列式有n!個元素,多元素的矩陣求逆十分複雜。通常情況下不會只處理上面那麼小的矩陣,因此矩陣求逆通常使用計算機完成。