本文是吳恩達《機器學習》視頻筆記第15篇,對應第1周第15個視頻。
“Linear Algebra review(optional)——Matrix-vector multiplication”
上一小節講了矩陣的加法、矩陣和标量相乘;除此之外,矩陣還可以和矩陣相乘,本節講稍微特殊一點的情況,即矩陣和向量相乘。
一個示例如下圖,讓一個3×2的矩陣和一個2維的列向量相乘,會得到什麼樣的結果呢?
其運算的規則如下圖,
從上圖可知,矩陣和向量的乘法規則比較有意思,一個矩陣和一個向量乘得到一個新的列向量。而列向量的維數就是矩陣的行數,等式左邊的矩陣和向量的形狀也比較意思,矩陣的列數必須等于向量的維數,隻有這樣才能進行矩陣和向量的乘法。上面這個例子,一個3×2的矩陣和一個2×1的向量相乘,得到一個3×1的向量。
矩陣、向量相乘的過程把上面的特例抽象成更一般的形式如下圖:
一個m×n的矩陣乘一個n×1的向量,這裡要注意矩陣的列數必須等于向量的行數才能相乘,得到的結果是一個m×1的向量。
而且我們還可以看出,在做矩陣和向量的乘法時,它們的次序也很重要。一個列向量和矩陣乘,矩陣必須在前面、列向量必須在後面。比如:
那麼,我們費事巴拉地規定這種矩陣和向量的乘法有啥用呢?
我們還是以賣房子的事為例,假設我有四套房,每個房的面積不同,而房屋面積和房屋售價之間的線性模型我已經确定了。
如下圖:
上圖中,如果把左邊四套房的面積代入右邊的式子中,就可以得分别得到四套房的售價。如果我們用剛剛講到的矩陣和向量的乘法表示上面這個事,寫出來的式子會非常漂亮。如下圖:
我們把模型中的兩個參數揪出來組成一個列向量。然後呢,因為-40參數對應的是1,而0.25對應的是x,所以得到一個4×2的一個矩陣,而矩陣的第1列都是1. 就會得到上面圖中下半部分的這樣的一個矩陣與向量乘法的式子,再利用前面講的矩陣與向量乘法的運算規則,可以用一個式子就表示出4套房子的售價的運算,厲害吧?
有些同學可能覺得這種寫法多此一舉,更加麻煩。要注意,現在我們基礎的運算都是用計算機來實現的,如果用代碼來寫這樣的過程就更加容易了,這樣一件事用一行代碼就搞定了,而且房子的套數增加不會影響程序的結構,非常方便。如果沒有這樣的規定,我們可能需要for循環在代碼中實現這個事情,這就有點麻煩了。
下一講将介紹更一般的矩陣和矩陣的乘法。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!