人工智慧通識-數學-零基礎矩陣運算
歡迎關注我的專欄( つ•̀ω•́)つ【人工智慧通識】
單個數字
韓梅梅開了個淘寶手機店,只賣華為mate20,全年賣了1000臺,可以用表格表示:
店主 | mate20銷量 |
---|---|
韓梅梅 | 1000 |
或者計作:
一維數列
小明也開了個淘寶手機店,有iphone7、iphone8和iphoneX三個商品,各種手機的年銷量可以表示成下表:
店主 | iphone7銷量 | iphone8銷量 | iphoneX銷量 |
---|---|---|---|
小明 | 10 | 20 | 30 |
或者計作:
二維數列
我們都知道小明還有兩個哥哥,他們也都開了淘寶手機店,由於兄弟幾個進貨渠道一樣,所以也都是隻賣這三種手機:
店主 | iphone7銷量 | iphone8銷量 | iphoneX銷量 |
---|---|---|---|
大毛 | 30 | 30 | 20 |
二毛 | 20 | 20 | 30 |
小明 | 10 | 20 | 30 |
或者計作:
這種數字橫向豎向都有排列的就叫做矩陣 。
矩陣加法
後來三兄弟發覺搞錯了,上面只統計了前10個月的銷量,漏了兩個月沒統計,而這兩個月的銷量表如下:
店主 | iphone7銷量' | iphone8銷量' | iphoneX銷量' |
---|---|---|---|
大毛 | 10 | 10 | 10 |
二毛 | 0 | 10 | 10 |
小明 | 10 | 0 | 0 |
即:
我們需要把兩個表格資料疊加,就是兩個矩陣相加,那麼當然是每個數字銷量對應疊加:
最終正確銷量表格就是:
店主 | iphone7銷量 | iphone8銷量 | iphoneX銷量 |
---|---|---|---|
大毛 | 50 | 50 | 30 |
二毛 | 20 | 30 | 40 |
小明 | 20 | 20 | 30 |
從這個例子看出,矩陣加法針對矩陣中每個數字的操作,兩個做加法的矩陣應該行列數量一致(都是3行3列),如果缺少的話應該用0或者空位補齊之後再相加。
思考題:假設小明的爸爸和媽媽也分別開了各自的淘寶手機店,當然也只售賣這三個iphone商品(因為進貨渠道一樣...),那麼也可以有一個另外的表格統計毛爸和毛媽商店每個商品的銷量。那麼請問,能不能把三兄弟的表格矩陣和毛爸毛媽的表格矩陣相加?(解析在結尾)
為什麼需要矩陣相乘?
假設最終完整統計小明一家五個淘寶手機店的三種商品銷售數量如下:
店主 | iphone7銷量 | iphone8銷量 | iphoneX銷量 |
---|---|---|---|
大毛 | 50 | 50 | 30 |
二毛 | 20 | 30 | 40 |
小明 | 20 | 20 | 30 |
毛爸 | 50 | 50 | 60 |
毛媽 | 60 | 30 | 40 |
並且五個店手機售價完全一樣,假設我們有:
商品型號 | 銷售價(千) |
---|---|
iphone7 | 3 |
iphone8 | 4 |
iphoneX | 7 |
我們希望利用矩陣運算,得到一家五口每個人的總銷售額表格,類似:
店主 | 總銷售額 |
---|---|
大毛 | 50x3+50x4+30x7 |
二毛 | 20x3+30x4+40x7 |
小明 | 20x3+20x4+30x7 |
毛爸 | 50x3+50x4+60x7 |
毛媽 | 60x3+30x4+40x7 |
即:
我們需要一種運算,能夠實現這個功能,數學上這個運算叫做矩陣的叉乘 ,就是預設情況下矩陣相乘的演算法,但跟不上和數學的乘法不是一回事,為了避免混淆,我們就只叫它叉 。
矩陣叉法運演算法則
矩陣相叉法則可以描述為:
A矩陣叉B矩陣,A的第
行與B的第
列每個對應數字分別相乘再結果相加,就得到結果C矩陣的第
列第
行的值
。
簡單計作
行乘
列得第
行第
列
。
表示出來就是:
從這裡可以看出,雖然口口聲聲說是做矩陣乘法,其實是在做加權求和 ,——如果我們把單個手機售價作為權重考慮,那麼iphone7的權重是3,iphone8權重是4,iphoneX權重是7。
與雙列矩陣相叉
回到小明一家人的手機生意,對於第二個表格,我們增加一列進貨價 ,全家人進貨價一致(因為進貨渠道一致...):
商品型號 | 銷售價(千) | 進貨價(千) |
---|---|---|
iphone7 | 3 | 2 |
iphone8 | 4 | 3 |
iphoneX | 7 | 5 |
依照我們上面的矩陣相叉法則,會得到什麼結果?
五行兩列!多出第二列表示每個人進貨總成本!
如果我們把結果的兩列相減,就得到了每個人店鋪的總利潤:
從這裡看出,雖然大毛和媽媽賣的手機一樣多數量(50+50+50=60+30+40),但還是媽媽多賺了1萬(170-160)。
矩陣叉法的限定
矩陣乘法的現實意義很清晰,就是求矩陣A每一行被矩陣B每一列加權之後的和組成的新矩陣 。
完善一下演算法公式(
):
從上面的定義和公式可以看出,
兩個相叉的矩陣,前一個矩陣的列數必須和後一個矩陣的行數一致,也就是每個數字都應該有對應的權重值(
或
)
。
附加
矩陣的叉乘之外,還有點乘 ,就是和矩陣加法那樣,兩個表的每個對應單元格都直接相乘,在什麼情況下使用到點乘?請大家一起思考。
通過這篇文章,希望大家認識到,所有的數學演算法和數學公式,都是來自於真實應用,也是為了解決現實問題才被髮明和記憶的 ,沒有什麼是空想出來的。
矩陣乘法還有很多應用和含義解釋,在後面的文章中我們會繼續學習。
思考題解析:對於三兄弟表格和爸媽的表格,數學上當然可以相加,但是實際上加在一起的結果沒意義?結果難道是表示大毛+毛爸
...二毛+毛媽
...小明
....這種店主的銷售量嗎?這樣看上去小明真不是親生的....
歡迎關注我的專欄( つ•̀ω•́)つ【人工智慧通識】
每個人的智慧新時代
如果您發現文章錯誤,請不吝留言指正;
如果您覺得有用,請點喜歡;
如果您覺得很有用,歡迎轉載~
END