back to index

Linear Algebra Lecture 5: Matrix-vector Product


link |
00:00.000
Matrix跟Vector的相乘,到底是怎麼回事?
link |
00:05.000
我知道在高中其實是有定義過Matrix跟Vector的相乘的。
link |
00:11.000
那在這邊呢,我們再講一次,看看跟你在高中學的時候有沒有什麼不一樣的地方。
link |
00:18.000
好,Matrix跟Vector的相乘,怎麼定義呢?
link |
00:22.000
我有一個MatrixA,它的Dimension是MxN,它有N個Row,有N個Column。
link |
00:32.000
那我有一個VectorX,它有N個Component。
link |
00:37.000
那我們在高中都學過,你要讓這個A可以乘上這個X,那這個X的Dimension一定要是N,
link |
00:45.000
如果是其他Dimension不Match就不能乘。那A乘上X的定義是什麼呢?
link |
00:52.000
我想你可能就都看過這個事。
link |
00:55.000
A乘上X的定義就是把X的第一個Element乘上它,加上第二個Element乘上它,
link |
01:05.000
一直再加到第N個Element乘上它,得到的值把它放在第一位。
link |
01:12.000
X1乘上X21,X2乘上X22,加到XN乘上X22,放在第二位,
link |
01:18.000
以此類推,一直到X1它乘上它,它乘上它,一直到它乘上它,當作最後一個Dimension。
link |
01:28.000
那我相信大家在高中其實都學過這個東西。
link |
01:33.000
有沒有問題?有問題其實你可以隨時提出來。
link |
01:38.000
好,那這個式子你有沒有看得很熟悉呢?
link |
01:44.000
它其實就是多元一次連立方程式的左邊,對不對?
link |
01:51.000
所以多元一次連立方程式,如果我們把它的未知數的部分,X的部分,
link |
01:57.000
X1,X2到XN排成一個Vector,把它的Coefficient,A11,A12,一直到ANN,把它排成一個Matrix。
link |
02:08.000
那這個多元一次連立方程式的左邊,其實就是一個VectorX跟一個MatrixA的相乘,
link |
02:17.000
所以這個左邊就是A乘上X,右邊B1,B2,BN這個常數項你可以把它看作是一個VectorB。
link |
02:25.000
所以一個多元一次連立方程式,你可以用矩陣跟向量的乘法,你可以用Matrix跟Vector的誇張來描述它。
link |
02:34.000
所以這個多元一次連立方程式,你就可以寫成AX等於T。
link |
02:39.000
或者是如果我們用這個線性系統來想它的話呢,所謂的A乘上X的意思是什麼呢?
link |
02:46.000
所謂的A乘上X的意思就是,我有一個線性系統,
link |
02:50.000
它裡面的Coefficient,描述這個線性系統的參數,描述這個線性系統的參數,
link |
02:57.000
就是這個MatrixA,這個MatrixA呢,它有NxN個,它有NxN個Element,
link |
03:05.000
這個Element呢,就定義了這個線性系統,這個線性系統的參數就是A。
link |
03:10.000
當我把一個輸入X丟到這個線性系統裡面的時候,現在輸入其實有N的輸入,把這個N的輸入丟到這個線性系統裡面的時候,
link |
03:24.000
它的輸出是什麼呢?它的輸出就是A乘上X等於B。
link |
03:31.000
所以A乘上X這件事情,你可以想成A是一個系統,X是一個輸入,A是一個系統,X是一個輸入,我們把它相乘的時候,就是把X放到這個A這個系統裡面得到的輸出。
link |
03:45.000
那要怎麼看待這個Matrix跟Vector相乘這件事呢?有兩個可能的看法,其實也沒有誰比較好啦,那就是不同的看法。
link |
03:56.000
你要把兩個看法都放到你的直覺裡面,放到你的潛意識裡面。
link |
04:02.000
第一個是Row的看法,Row的看法怎麼看呢?Row的看法說,這個A乘上X啊,意思就是呢,我們今天把這個X這個Vector對A的每一個Row都去做內積,都去做Inner Product。
link |
04:22.000
我們把這個跟它做Inner Product以後呢,做兩個Vector有一樣Dimension可以做Inner Product,做完以後就得到一個Scalar嘛。
link |
04:31.000
這兩個Vector做Inner Product得到一個Scalar,它是這個A乘上X的第一個Component,這個Vector乘上第二個Row。
link |
04:42.000
這個Vector乘上它,得到這一個Scalar,然後一直到呢,這一個Vector,這一個它乘上最後一個Row,然後得到最後一個Scalar。
link |
04:56.000
你可以用這個Vector跟Row做Inner Product這個方式呢,來理解Vector跟Matrix的相乘。
link |
05:05.000
那我們也有另外一個理解方式是從Column的角度來理解。
link |
05:12.000
那一般我覺得多數人比較直覺會習慣從這個Row的角度來理解,但是如果有時候你用Column來理解的話,有些問題會比較容易。
link |
05:21.000
如果我們用Column來理解的話呢,是怎麼樣呢?
link |
05:24.000
如果我們用Column來理解的話呢,我們可以把A的每一個Column都看作是一個Vector,我們可以把這每一排都看作是一個Vector。
link |
05:45.000
這邊總共有N個Vector,N個Column就是N個Vector,每個Vector的Dimension都是大M,每個Vector的Dimension都是大M。
link |
05:55.000
那這個Column的看法是怎樣呢?
link |
05:58.000
Column的看法是說,今天A乘上S的意思就是說,我把這一個Vector乘上X1這一個Scalar,Vector跟Scalar的相乘大家都知道。
link |
06:10.000
我們把這一個Vector乘上這一個Scalar,你就可能把它放大或者縮小,或者是反轉變成另外一個方向。
link |
06:20.000
然後我們再把X的第二個Component乘上A的第二個Vector,你就等於是把A的第二個Vector又做了一下轉換,你可能把它延伸變長縮短或者是讓它反向。
link |
06:33.000
一直到最後一個Column,第N個Column,我們把它乘上Xn,把它做一些變化。
link |
06:40.000
那我們把每一個Column乘上一些Scalar,讓它做了種種的變化以後,再把這些變化過的Column,再把它通通加起來。
link |
06:50.000
變化過的Column都是Vector,把這些Vector通通加起來,那就變成Matrix跟Vector的相乘。
link |
06:58.000
如果你把這邊加起來的話,它就是X1乘A11加X2乘A12加Xn乘A1n,就是這邊。
link |
07:05.000
那X1乘An1,X2乘An2加到N乘Ann,就是這邊。
link |
07:11.000
所以它也是符合這個Matrix Vector的定義。
link |
07:15.000
那我們來舉一個例子,來說明一下Row的觀點和Column的觀點。
link |
07:22.000
假設我有一個最簡單的二元的連立方程式,我就寫成這個樣子。
link |
07:32.000
一次的連立方程式,你可以把它看作是一個系統。
link |
07:37.000
這個系統的參數,我寫成大A,Matrix大A,這個A就是1,4,-3,2。
link |
07:47.000
它的輸入就是X1X2,輸出就是B1B2,而這個B1B2就等於A乘上X1X2。
link |
07:58.000
如果你把這個X1X2拼起來變成一個二維的Vector的話,當我把這個Vector放到這個輸入進去這個Linear System的時候,
link |
08:08.000
它的Output就是這個Vector跟A的相乘等於AX。
link |
08:13.000
那如果我們從Row的觀點和從Column的觀點來看,會有什麼不一樣的地方呢?
link |
08:20.000
假設我們今天輸入的值是-2,0.5,那輸出會是什麼呢?
link |
08:26.000
如果從Row的觀點來看,我們先看Row有兩個,一個是1,4,-3,2。
link |
08:32.000
1,4畫出來就在這邊,然後-3,2畫出來就在這邊,沒畫錯吧?
link |
08:41.000
那當我輸入-2,0.5的時候是什麼意思呢?
link |
08:44.000
我現在有一個Vector,它是-2,0.5,那我得到的Output,第一個OutputB1,
link |
08:53.000
就是這個輸入,紅色的這個箭頭跟Row1的Inner Product,紅色這個箭頭跟Row1的Inner Product,
link |
09:03.000
那這邊他們Inner Product是什麼呢?就是-2乘以1加上0.5乘以4,正好是0,所以他們是垂直的。
link |
09:11.000
這個紅色的箭頭跟Row1是垂直的,所以第一個Output是0。
link |
09:16.000
那第二個Output是什麼呢?這個紅色這個箭頭跟Row2這個箭頭,
link |
09:22.000
他們方向指的差不多,所以相乘應該蠻大的,-2乘以-3是6,-2乘以0.5是1,
link |
09:29.000
所以得到的結果是7,所以第二個Output就是7,這是從Row的觀點來看。
link |
09:35.000
那如果從Column的觀點來看的話呢,我們有兩個Column,一個是1-3,一個是4-2,
link |
09:42.000
所以一個是1-3,1-3要寫在這邊,這是第一個Column,然後另外一個是4-2,4-2大概就在這邊吧,
link |
09:52.000
誒,不對,我說錯了,4-2應該就在這邊吧,4-2應該就在這邊。
link |
10:00.000
那當我輸入是-2-0.5的時候,從Column的觀點來看,這個線性系統做什麼事呢?
link |
10:09.000
它做的事情是這樣,我們把-2乘上第一個Column做一下變換,-2乘上第一個Column,
link |
10:19.000
-2乘1-3得到-2-6,所以它變成反向,然後又擴增,又延長兩倍,反向又延長兩倍,所以變成綠色虛線這個箭頭。
link |
10:31.000
那第二個Input做的事情,它是把0.5乘上第二個Column,得到的結果就是會把第二個Column縮一半,
link |
10:44.000
本來是4-2乘上0.5變成2-1,那從Column的角度來看,從Column的觀點來看,當我Input這兩個值的時候,
link |
10:54.000
就是把兩個Column各自做一下伸縮,然後再加起來,所以我們把這個綠色的虛線跟這個綠色的虛線加起來,
link |
11:02.000
它得到的結果是這個樣子,是0.7,所以左邊跟右邊算出來是一樣的,但是這個就是橫看城裡側城峰的概念,
link |
11:15.000
而它們的觀點是不一樣的,雖然得到的結果是一樣的。再來就是這個Matrix跟Vector它們相乘的Size要是Match的,這個我想大家應該都知道。
link |
11:32.000
這個A跟這個X它們不能相乘,不管從Raw或Column的觀點都不能相乘。從Raw的觀點來看,你要把它跟Raw做Inner Product,Dimension不一樣,不能做Inner Product,所以從Raw的觀點來看它們不能相乘。
link |
11:42.000
從Column的觀點來看,也不能相乘。Column的觀點是說,我們要把這三個Vector做Combination,做一下變換以後加起來。
link |
11:51.000
這件事情其實叫Linear Combination,但是我現在還沒有講到,所以我不該用這個詞,但是沒關係。
link |
11:57.000
就是把這些Column相加做Combine,那你要有三個數值才能把三個Column做Combine,兩個數值是行不通的,所以這兩個東西顯然不能相乘。那怎麼樣才能相乘呢?
link |
12:13.000
Column的數目必須要跟這個Vector的Dimension的數目,它的Element的數目一樣才能相乘,所以A'跟X就可以相乘,可以做Inner Product,可以做Combination。
link |
12:24.000
A'跟X它們也可以相乘,相信這個大家應該都沒有問題。
link |
12:31.000
再來是一些Matrix跟Vector的Product的一些性質,我們也很快地放逐過去。
link |
12:40.000
A跟B都是MxN的Matrix,U跟V是Vector,它們Dimension都是Rn,所以U跟V都可以和A跟B相乘,那C是一個Scalar。
link |
12:49.000
A乘上U加V就是AU加AB,然後A乘上CU,把C先提出來,A先乘上U再乘C,把C先乘A再乘U。
link |
13:02.000
然後A加V乘U等於AU加BU,其實這些東西都是課本上有的,我發現大家好像都還沒有課本的樣子,這個就只是從課本上抄下來。
link |
13:11.000
A乘上0就是Zero Vector,A乘上Zero Vector還是Zero Vector,但是要注意一下,這個Zero Vector你要跟A相乘,它是N-Dimension的對不對?
link |
13:22.000
對,它是N-Dimension,相乘以後它變成另外一個Zero Vector,它是N-Dimension。
link |
13:29.000
那O乘上V呢,這個Zero Vector,Zero Matrix乘上任何Vector都還是得到Zero Vector,但是這個V跟這個Zero Vector它們的Dimension不一定是一樣。
link |
13:42.000
然後任何Vector乘上這個Identity Matrix會得到自己。
link |
13:50.000
這個大家有問題嗎?我想這個大家應該沒有問題,就記得說任何Vector乘上Identity Matrix會得到自己這樣子。
link |
14:02.000
再來這個是最後一個問題,就是假設A跟B它們都是MxN的Matrix,那如果AW永遠都等於BW,就是你不管找任何的Vector W,把它跟A相乘,把它跟B相乘,它們永遠都相等。
link |
14:26.000
那A跟B它們會是相等的嗎?這是一個問題,我們來問一下大家的意見。
link |
14:35.000
我覺得我要給大家一點提示,這個顯然是成立的,你直覺上想就是成立的,但是既然被拿出來問,那直覺上成立的應該就是不成立的。但是從另外一個角度來看,我也知道大家會這麼想,所以這可能是集中計,所以它其實是成立的。
link |
14:58.000
我想給大家多多時間思考,有些同學覺得它是成立的,有些同學覺得它是不成立的。
link |
15:14.000
那先告訴大家答案,答案是成立的,這是集中計。重點是為什麼它是成立的呢?這個東西的重要性在哪裡呢?
link |
15:28.000
你可以看一下這個,我們再說另外一個定理,如果A乘上一個Standard Vector Ej,Ej的意思就是只有第j為1,其他都是0。
link |
15:44.000
它的得到的結果就是Aj,也就是說是A的第j一個column,這樣講可能太抽象了,所以我們實際來算一下。假設我們這邊有一個Standard Vector E1,它是第一個Dimension是1,然後其他的Dimension都是0。
link |
16:04.000
那我有一個Matrix A,我把Matrix A乘上E1,那這個Matrix A它有n個column,每一個column都可以想成是一個Vector,那我們就把這些Vector排成一排,A1到An。
link |
16:20.000
我們把A1到An乘上E1,也就是只有E為1,其他都是0。我們得到的結果是什麼呢?如果我們從column的觀點來看,column的觀點是把所有的column做combine。
link |
16:38.000
今天我們在相乘的時候,只有第一個Dimension是1,其他都是0。那如果一個Vector乘0,它就變成Zero Vector,它就不見了。所以今天如果我們把它做相乘以後,其他的column除了1以外的column都是乘0,只有column A1是乘1,所以其他column都不見了。
link |
17:01.000
所以我最後得到的結果就是A1。那當然其他Dimension也可以以此類推,乘上第這個Standard Vector,也就是第J為1的那個Standard Vector,得到的結果就是Matrix的第這個column。
link |
17:18.000
如果大家沒有懷疑的話,要知道這件事情是很容易的。既然所有的W都可以讓AW等於BW,那我今天把這個W換成E1,那A乘E1等於B乘E1。
link |
17:47.000
那A乘E1是什麼呢?A乘E1就是A1,B乘E1就是B1。A乘E1就是A的第一個column,B乘E1就是B的第一個column。
link |
18:00.000
所以今天如果A乘E1等於B乘E1,意味著A跟B的第一個column是一樣的,那A乘E2等於B乘E2,所以第二個column是一樣的,一直到A乘En等於B乘En,所以第N個column是一樣的。因為AB兩個Matrix的每一個column通通都是一樣的,所以A就等於B。
link |
18:22.000
沒有問題,你可以很明顯的看出這件事。那這個東西它有趣在哪裡呢?有趣在說,我今天要知道說兩個Matrix是不是一樣的,或者是每一個Matrix就代表一個線性系統,我想知道兩個系統是不是一模一樣的系統。
link |
18:39.000
我其實不需要把所有的輸入都代進去,看看它們的輸出是不是都是一樣的。我其實只要代這N個standard的vector,代這N個vector,如果它們的輸出都是一樣的,那這兩個系統其實就是一樣的。
link |
18:55.000
我們今天其實就上到這邊,那今天的重點就是有一個role aspect,有一個color aspect,你有問題嗎?如果W是0嗎?你的問題是說,如果今天W是0,可是今天它是說對所有的W。
link |
19:16.000
當然如果W是0,不管A跟B是什麼東西,乘0都是一模一樣的。但是今天A跟B不只是只有乘W的時候是0,是乘所有東西的時候是0,所以它們是一樣的。
link |
19:32.000
我今天表達的意思是說,你不用那麼麻煩檢查說是不是所有的W都可以當AW跟BW相等,你其實只要檢查standard vector就夠了,你只要檢查說兩個系統它們是不是放standard vector進去,output都是一樣,那你就可以知道它們是不是一樣的東西。
link |
19:50.000
大家好,有沒有什麼問題?如果沒有問題的話,我們今天上課就上到這邊,謝謝。