加課 · 矩陣乘法 · Row × Column
獻給研究所時期的你
(A·B)ij = Σk Aik·Bkj
矩陣乘法 · 為什麼是「橫列點直行」
它不是怪招 —— 是「接力 + 線性」唯一誠實的記帳法。而且你在 Excel 裡早就會了。
📜 公式的身世
一篇標題挑釁的論文
兩千年來沒人懷疑「n×n 矩陣相乘就該要 n³ 次乘法」,直到 1969 年 Strassen 的論文,標題直接挑釁:《高斯消去法並非最優》 —— 2×2 矩陣相乘,7 次乘法就夠,不用 8 次;遞迴下去,複雜度掉到 n^2.81。此後半世紀,這個指數被全世界一路磨到 2.37 附近,而理論下限 2 仍無人觸及;2022 年 DeepMind 的 AlphaTensor 讓 AI 自己搜,又翻出幾招人類沒見過的。一道小學生都會列的乘法,至今是懸而未決的開放問題。
🌍 它今天在哪裡上工
🤖
AI 的軍火 —— ChatGPT 每生成一個字,背後是上兆次乘加 —— 輝達的市值神話,本質是全世界在搶購「矩陣乘法機」。
🎬
皮克斯的渲染農場 —— 一格畫面 = 幾何變換+光線計算,全是矩陣;演算法快一成,電費省千萬 —— Strassen 們省的是真金白銀。
📱
手機的即時美顏 —— 能「即時」,是晶片裡的矩陣運算單元(NPU)在扛 —— 複雜度每降一點,續航就多一點。
你說研究所看那些矩陣乘來乘去,總覺得突兀 —— 這不是你的問題,是教材漏了一章。幾乎所有課本都先教「橫列點直行」的招式,卻不說它從哪來、也不說同一顆乘積其實有好幾種讀法。只會招式不懂讀法,看誰的論文都突兀。
🍱今天的第一句話就先拆彈:矩陣乘法 = 一大批 SUMPRODUCT 同時開工。你替里家寶算便當成本時 —— 一橫列的單價、點上一直行的配方、加總 —— 那就是矩陣乘法的一格。你已經用它做了很多年的生意。
四章:先用便當成本試算表把規則變成常識;再回到空間,看規則怎麼從「接力施工」自己長出來(它是被逼出來的,不是被規定的);然後發你一副四種讀法的眼鏡 —— 治本的就是這章;最後進深水區:為什麼括號可以亂放、順序不能交換、以及乘積其實是「一疊薄片」。
Part 1 · 拉了就懂(白話)
I
第一章 · 便當成本試算:你早就會矩陣乘法了
橫列(屬性)× 直行(配方)= 一格答案 —— Excel 的 SUMPRODUCT,批次開工。
🍱中央廚房出兩款便當:🍗 雞腿飯、🥦 蔬食餐。配方表 B(直行 = 菜色,橫列 = 食材):雞腿飯要米 2、雞 1、菜 1;蔬食餐要米 2、雞 0、菜 3。屬性表 A(橫列 = 屬性):每單位食材的成本 (10, 45, 8) 與蛋白質 (4, 25, 2)。請問「雞腿飯的成本」?—— 你心算的動作是:單價那一橫列,逐項乘上配方那一直行,加總:10×2 + 45×1 + 8×1 = 73 元。恭喜,你剛做完 (A·B) 的一格。四格全算完,就是整顆乘積 —— 一張「菜色 × 屬性」的成本營養總表。
互動 · 點一格答案,看它的橫列與直行在哪裡相遇
選中的格子雞腿飯的成本
展開式(橫列 · 直行)10×2 + 45×1 + 8×1 = 73 元
雞腿單價45 元
玩玩看,注意這些
- 點任一格答案:它的橫列帶(金)與直行帶(青)在畫面上真的相交於那一格 —— 課本那句「第 i 列點第 j 行」,原來是幾何事實。
- 看排版:A 的欄和 B 的列都是「米/雞/菜」—— 中間維度必須是同一批東西,這就是為什麼 (2×3) 只能乘 (3×2):食材清單要對得上,對不上是語法錯誤。
- 拉「雞腿單價」:成本那一橫列的兩格裡,只有雞腿飯在動,蔬食餐紋風不動(配方裡雞是 0)。矩陣乘法是一台機器:改一個輸入,所有相關輸出即時更新 —— 這正是報表、模擬、神經網路要它做的事。
一句話帶走:(AB)ᵢⱼ = 第 i 個屬性 × 第 j 份配方的總帳 = 一次 SUMPRODUCT。矩陣乘法 = 整張成本表批次開工 —— 你早就會了。
II
第二章 · 規則不是規定 —— 它從「接力」自己長出來
追蹤一支箭頭走完兩段變形,「橫列點直行」被逼著現身。
🧭回到 012 的變形舞台。兩道工序接力:先 B、再 A。總效果也是一個線性變換,叫 A·B —— 但它的每一格憑什麼是橫列點直行?親眼看一次:追蹤基準箭頭 î。第一站,B 把它送到 B 的第一欄;第二站,A 要搬這個點 —— 靠線性拆開:「它是 1 份 î 加 0.7 份 ĵ,那就搬成 1 份 (A的第一欄) 加 0.7 份 (A的第二欄)」。把終點的 x 座標寫出來 —— A 的第一橫列,點 B 的第一直行。規則,是被逼出來的。
互動 · B=直向剪切、A=旋轉45° —— 追蹤一支箭頭的兩段旅程
第一站:B 送到(= B 的那一欄)—
第二站:A 直接施工的終點—
公式算 x 座標(橫列·直行)—
怎麼看這張圖
- 按播放:金點先被 B 抬高(第一站),再被 A 轉走(第二站)。終點的紫色點就是 (A·B) 那一欄。
- 完工後看終點旁的兩支組合箭頭:實線 = 1×(A的第一欄)、虛線 = +0.7×(A的第二欄)—— 頭尾相接,剛好落在紫點上。線性 = 可以拆開來搬。
- 對照讀數:「直接施工」和「橫列點直行」算出同一個數 —— 因為後者就是前者的記帳。切到 ĵ 再看一次,那是乘積的另一欄。
✦ 把剛剛的動作寫成一行,規則現形:終點 = A(Bê) = A(b₁·î + b₂·ĵ) = b₁·(A第一欄) + b₂·(A第二欄)。取它的第 i 個座標:Σₖ Aᵢₖ·bₖ —— 橫列點直行。它是「接力 + 線性」之下,唯一可能的算法;歷史上也是這樣來的:凱萊 1858 年定義矩陣乘法,就是為了讓「兩次代換接力」算得剛好正確。
一句話帶走:橫列點直行不是發明,是推論 —— 先 B 後 A、加上「線性可拆搬」,規則被逼著長成這個樣子。
Part 2 · 帶入深度
III
第三章 · 四種讀法:治「突兀感」的正式處方
同一顆 A·B,四副眼鏡 —— 看情境換著戴,論文從此是流水線。
👓突兀感的病根,是只有一副眼鏡(元素觀)卻要看所有場合。其實同一顆乘積有四種合法讀法,高手是看情境切換的:要算一個數用元素觀;要追一筆資料(向量)用欄觀;要看一個輸出分量怎麼組成用列觀;要理解整條式子用機器觀 —— ABCx 從右往左唸成流水線。切換自如,就再也不突兀。
互動 · 同一顆乘積 A·B = C,換四副眼鏡看
四副眼鏡的使用時機
- ① 元素觀(轉機求和):一格 = 橫列點直行。何時用?要手算或驗算一個數字的時候 —— 也是第一章的成本試算。
- ② 欄觀:C 的第 j 欄 = A×(B 的第 j 欄)。何時用?追資料 —— B 的每一欄是一筆資料(一位客戶、一張圖、一個基底),A 是加工;C 就是「每筆資料加工後的樣子」。資料科學裡最常戴的一副。
- ③ 列觀:C 的第 i 列 = (A 的第 i 列)×B。何時用?追量測 —— A 的每一列是一支探測器(成本尺、蛋白質尺),讓它「穿過」B 去量每一欄。
- ④ 機器觀:A·B 是一台新機器:先 B 後 A。何時用?讀一長串 —— 看到 ABCx,從最右邊讀起:「x 先進 C,再進 B,再進 A」;整串就是一條流水線,再長也不慌。
📖 下次看論文的實戰口訣:先用④把整條式子讀成流水線(從右往左);想知道某筆資料的下場,切②盯那一欄;想知道某個輸出從哪來,切③或①拆那一列/那一格。突兀感,來自用①硬看②③④的場合。
一句話帶走:元素觀算一格、欄觀追資料、列觀追量測、機器觀讀整串(從右往左)—— 四副眼鏡換著戴,矩陣從此不突兀。
IV
第四章 · 深水區:括號亂放、順序不換、一疊薄片
結合律是論文不寫括號的底氣;外積和是 SVD 與推薦系統的種子。
🥞最後三件武器。其一,結合律:(AB)C = A(BC) —— 接力再接力,怎麼分組都是同一條流水線,所以論文放心寫 ABCDx 不加括號;3D 繪圖更把整串先乘成一顆矩陣,GPU 對百萬個點一次套用。其二,不可交換(012 演過):先襪後鞋。其三,最漂亮的一副隱藏眼鏡 —— 乘積是一疊薄片:A·B = (A的第1欄⊗B的第1列) + (A的第2欄⊗B的第2列) + ⋯,每一片都是最簡單的「rank-1」薄片。
互動 · 同一顆 C,拆成兩片 rank-1 薄片再疊回去
怎麼看這張圖
- 「第 1 片」:A 的第一欄配 B 的第一列,每格 = 縱橫兩數相乘 —— 一張最簡單的乘法表(rank-1)。
- 「疊起來」:兩片逐格相加,分毫不差回到 C —— 和橫列點直行殊途同歸(其實是同一條 Σₖ,換了分組方式)。
- 這副眼鏡的威力:把一顆大矩陣拆成「少數幾片最重要的薄片」= SVD / 主成分分析 / 推薦系統(用戶×口味的薄片疊出整張評分表)、也是圖片壓縮的原理 —— 本季後面會再相見。
✦ 轉機求和的字面版(把第一章的比喻變成定理):把城市畫成點、航線畫成箭頭,鄰接矩陣 M 的 (i,j) 格 = 從 j 直飛 i 的航線數。那 M² 的 (i,j) 格 = Σₖ MᵢₖMₖⱼ = 「經一次轉機從 j 到 i」的走法總數 —— 橫列點直行,數的就是路徑。M³ 數兩次轉機…… 圖論、社群網路分析、Google 早期的 PageRank,全站在這格上。
一句話帶走:結合律讓括號自由(流水線隨你分段)、交換律不存在(先襪後鞋)、外積和把乘積拆成 rank-1 薄片 —— 三件武器,收進工具箱。
把整堂課收成一句話,寄給當年的你 ——
矩陣乘法從來不是怪招:
一格,是轉機求和(你的成本試算表);
一欄,是 A 去搬 B 的目的地;一列,是量尺穿過 B;
整串 ABCx,是從右往左的流水線 ——
括號隨便放(結合律),順序不能換(先襪後鞋)。
它是「接力 + 線性」唯一誠實的記帳法。
下次在論文裡遇見,請點頭致意,不必皺眉。