想學人工智慧,先從理解矩陣乘法開始

Python貓發表於2018-10-26

花下貓說:眾所周知,人工智慧如今火得很,而想要進入這個領域,至少需要跨過高等數學的門檻。線性代數就是其一。今天分享阮一峰老師的一篇博文,讓我們一起來真正理解矩陣乘法。

轉自:阮一峰的網路日誌

公眾號:阮一峰的網路日誌

原標題:《理解矩陣乘法》

http://www.ruanyifeng.com/blog/2015/09/matrix-multiplication.html

想學人工智慧,先從理解矩陣乘法開始

大多數人在高中,或者大學低年級,都上過一門課《線性代數》。這門課其實是教矩陣。

剛學的時候,還蠻簡單的,矩陣加法就是相同位置的數字加一下。

想學人工智慧,先從理解矩陣乘法開始

矩陣減法也類似。

矩陣乘以一個常數,就是所有位置都乘以這個數。

想學人工智慧,先從理解矩陣乘法開始

但是,等到矩陣乘以矩陣的時候,一切就不一樣了。

想學人工智慧,先從理解矩陣乘法開始

這個結果是怎麼算出來的?

教科書告訴你,計算規則是,第一個矩陣第一行的每個數字(2和1),各自乘以第二個矩陣第一列對應位置的數字(1和1),然後將乘積相加( 2 x 1 + 1 x 1),得到結果矩陣左上角的那個值3。

想學人工智慧,先從理解矩陣乘法開始

也就是說,結果矩陣第m行與第n列交叉位置的那個值,等於第一個矩陣第m行與第二個矩陣第n列,對應位置的每個值的乘積之和。

怎麼會有這麼奇怪的規則?

我一直沒理解這個規則的含義,導致《線性代數》這門課就沒學懂。研究生時發現,線性代數是向量計算的基礎,很多重要的數學模型都要用到向量計算,所以我做不了複雜模型。這一直讓我有點傷心。

前些日子,受到一篇文章的啟發,我終於想通了,矩陣乘法到底是什麼東西。關鍵就是一句話,矩陣的本質就是線性方程式,兩者是一一對應關係。如果從線性方程式的角度,理解矩陣乘法就毫無難度。

下面是一組線性方程式。

想學人工智慧,先從理解矩陣乘法開始

矩陣的最初目的,只是為線性方程組提供一個簡寫形式。

想學人工智慧,先從理解矩陣乘法開始

老實說,從上面這種寫法,已經能看出矩陣乘法的規則了:係數矩陣第一行的2和1,各自與 x 和 y 的乘積之和,等於3。不過,這不算嚴格的證明,只是線性方程式轉為矩陣的書寫規則。

下面才是嚴格的證明。有三組未知數 x、y 和 t,其中 x 和 y 的關係如下。

想學人工智慧,先從理解矩陣乘法開始

x 和 t 的關係如下。

想學人工智慧,先從理解矩陣乘法開始

有了這兩組方程式,就可以求 y 和 t 的關係。從矩陣來看,很顯然,只要把第二個矩陣代入第一個矩陣即可。

想學人工智慧,先從理解矩陣乘法開始

從方程式來看,也可以把第二個方程組代入第一個方程組。

想學人工智慧,先從理解矩陣乘法開始

上面的方程組可以整理成下面的形式。

想學人工智慧,先從理解矩陣乘法開始

最後那個矩陣等式,與前面的矩陣等式一對照,就會得到下面的關係。

想學人工智慧,先從理解矩陣乘法開始

矩陣乘法的計算規則,從而得到證明。

相關文章