這是《機器學習中的數學基礎》系列的第4篇。
上一篇我們知道了,矩陣其實就是一個線性變換,矩陣的各列就是由原來的基向量變換而來。在此基礎上,假如我們把兩個矩陣放在一起,也就是說,讓兩個矩陣做乘法,它又有什麼含義呢?
矩陣乘法我們還是先從矩陣和向量的乘法看起:
矩陣乘以一個向量,得到一個新向量。如果我們把新向量再乘以一個矩陣呢?又得到一個向量:
把(1)式代入(2)式,就得到:
我們已經知道矩陣是一個線性變換,從上面的式子可以看出,兩個矩陣相乘,就相當於連續進行兩個線性變換,作用還是將一個舊向量變成一個新向量。那我們不禁會想,肯定存在一個複合矩陣,它的效果等同於兩個矩陣相乘。用公式表示就是:
很明顯,我們要找的這個複合矩陣,就是兩個矩陣的乘積:
思路有了,那複合矩陣到底怎麼算呢?別急,我們還是從基的角度去解決這個問題。
上式中的矩陣[a,b;c,d]就是由原來的基向量i和j變換而來,我們把它看做新的基(a,c)和(b,d)。那麼新的基再乘以矩陣[i,j;k,l]是什麼含義呢?就相當於把新的基分別再做了一次線性變換。因此,複合矩陣就相當於:
複合矩陣的第一列,就是矩陣[i,j;k,l]與向量(a,c)的乘積;複合矩陣的第二列,就是矩陣[i,j;k,l]與向量(b,d)的乘積。把上式展開,得到複合矩陣為:
這就是矩陣乘法的定義,我們從另一個角度去理解了它的內涵。
行列式接下來,我們來看矩陣的行列式在幾何上的意義。這裡先放結論,行列式就是線性變換前後,面積的縮放倍數。到底是怎麼回事呢?我們先看下圖:
如圖,是我們的i、j基向量所圍成的面積。現在讓它乘以一個矩陣[2,0;0,2],看看有什麼變化:
從上圖可以很容易看出,在矩陣的作用下,i變為原來的2倍,j也變為原來的2倍,因此新的基向量圍成的面積是原來的4倍。
所以,矩陣[2,0;0,2]的行列式就等於4.
哦,或許你還是有點不明白。沒關係,我們把它一般化,看看行列式的公式到底怎麼來的。二維矩陣行列式的公式如下:
我們用det()來表示矩陣的行列式,那上面的公式是怎麼得出的呢?我們來畫個圖:
如圖,OA就是新的基向量(a,c),而OC就是基向量(b,d)。那麼平行四邊形OABC就是新的兩個基向量圍成的面積,如何計算這個面積呢?我們可以把它補成一個長方形,如下圖:
不難看出,平行四邊形的面積等於長方形的面積減去邊角的面積。其中,長方形的面積為(a+b)(c+d)。邊角的面積由4個三角形和2個小長方形構成,它們的面積是:ac+bd+2bc。然後用長方形的面積減去邊角的面積,就是平行四邊形的面積:
(a+b)(c+d)-(ac+bd+2bc)=ac+bc+ad+bd-ac-bd-2bc=ad-bc
而ad-bc正是上面公式最後的結果。
今天分享的這些,你都明白了嗎?歡迎留言討論。