LESSON 04 · 卷I 基础数学

矩阵的常见运算

一天的成本会算了,一周呢?从批量算账走进矩阵乘法、转置与运算顺序。

第 1 站

一天会算了,一周怎么办?

上一课,你已经替奶茶店发明了一张配方表 W。每一行是一杯饮品,每一列是一种原料。把今天的原料单价 x 放进去,Wx 就会吐出三杯饮品的成本。

可老板又递来一张纸:「下周每天的价格都不一样,能不能把整周的成本一次算出来?」最小方案很直接:每天各算一次 Wx,再把答案排在一起。这能用,但七天要写七遍同样的动作。

昨天用一个向量装一天的价格。现在有很多天,该拿什么装?
第 2 站

矩阵乘矩阵:每一列都是熟悉的 Wx

先只看两天。我们沿用原来的配方,第一天价格是 [1,2,1,0],第二天是 [2,1,2,1]。把它们作为两列,X 就是一张 4×2 的价格表。

配方 W:3 款饮品 × 4 种原料
饮品茶奶糖珍珠
珍珠奶茶2103
奶霸布丁0412
古早甜茶1031
价格 X:4 种原料 × 2 天
原料第一天第二天
茶12
奶21
糖12
珍珠01
W3×4 X4×2 = Y3×2
Y 的第 j 列 = W × X 的第 j 列

于是第一列成本是 [4,9,4],第二列是 [8,8,9]。合起来,Y 的每行是一款饮品,每列是一天。任意一个格子 Yᵢⱼ,都来自W 的第 i 行与 X 的第 j 列做点积。所谓「行乘列」,原来就是老朋友点积。

Am×n Bn×k = Cm×k; Cᵢⱼ = Σr=1…n Aᵢᵣ Bᵣⱼ

中间两个 n 必须相等,它们对应要配对相乘的项数;结果保留外侧的 m 行与 k 列。不匹配的形状不是算得不准,而是这个矩阵乘法根本没有定义。

第 3 站

转置不是乘法,逐元素乘法也不是

老板习惯「一天一行」的报表,我们刚才却把一天放在一列。怎么办?把行和列交换,得到转置 Xᵀ:原来的 4×2 变成 2×4,格子 Xᵢⱼ 搬到 Xᵀⱼᵢ。数字没改,排列和轴的角色变了。

(Xᵀ)ⱼᵢ = Xᵢⱼ; (Xᵀ)ᵀ = X

另一个容易认错的亲戚是逐元素乘法 A⊙B:同样大小的两张表,对应格子各自相乘,不求和,结果仍是同样的形状。它适合给每个位置单独打折、加门控或遮罩。

三种动作,不要混在一起
动作在做什么形状示例
矩阵乘法行与列点积,重新组合信息(3×4)(4×2) → 3×2
转置交换行轴与列轴4×2 → 2×4
逐元素乘法对应位置分别相乘(3×4)⊙(3×4) → 3×4
把边界说清楚

这里的逐元素乘法先要求形状相同。实际框架还允许某些形状通过广播对齐,第 06 课张量会解释这个补充规则。

第 4 站

先后顺序,真的会改变结果

给图片先旋转再横向拉宽,与先横向拉宽再旋转,最后的形状可能不同。计算也如此:B(Ax)=(BA)x,最靠近 x 的矩阵先作用。

取 x=[1,0],A=横向放大 2 倍,B=逆时针转 90°
顺序中间结果最终结果
先 A 后 B:BAx[2,0][0,2]
先 B 后 A:ABx[0,1][0,1]

所以通常 AB≠BA,有时交换顺序后连形状都不匹配。不过结合方式可以变:(AB)C=A(BC),只要各次乘法有定义。下一课会把「矩阵代表动作」这个几何视角展开。

W 是 3×4,X 是 4×2。WX 能算,XW 也能算吗?
第 5 站

动手算:同一个动作,重复执行

把第二天的珍珠价格调高,看三杯饮品的成本分别增加多少。哪款配方用珍珠最多,哪款成本就对这个价格最敏感。再换成错误形状,看看为什么无法开始算。

奶茶店 · 一次算出两天的成本

神经网络处理一批输入时,也在重复这个逻辑:同一组权重,对多个向量做同一种变换。到了注意力章节,QKᵀ 则会把一组查询与一组键的点积排成整张匹配表。先理解这里的行、列与配对,后面就不会只看到一串陌生符号。

第 6 站

总结:从一列,到一整张表

💡 章节速记 · 本课核心

矩阵乘矩阵不是新魔法,而是把矩阵乘向量成批执行。先看形状,再看每一行和每一列怎样配对,最后看动作的先后顺序。

💡 用大白话梳理:这一课的核心直觉

  • 矩阵乘法:内部维度匹配,结果保留外部维度。
  • 转置:交换行列;逐元素乘法:同位置相乘,概念不同。
  • BAx 表示先做 A 再做 B;通常不能把 BA 改成 AB。
  • 下一课换成几何视角:这些乘法怎样搬动整个空间?
小测验

学习小测验

动动脑筋:核心直觉小测验(选出你的答案后点击「提交」,即可查看生动通俗的详细解析)

Q1A 是 3×4,B 是 4×2,AB 的形状是什么?
Q2矩阵 X 的转置 Xᵀ,做了哪件事?