这是「矩阵数学」系列的第一篇。所有大模型——从 Attention 到 LoRA 到卷积——剥开包装后都是矩阵运算,但很多人对矩阵的理解停留在"数字表格按规则相乘"。这个系列从几何直觉出发,把矩阵当成"对空间做的变换"来理解,一路走到现代 AI 架构里矩阵的每个化身。第一篇讲最核心的图景:矩阵 = 线性变换,矩阵乘法 = 变换的复合。

1. 向量:一枚硬币的两面

向量 v=(2,1) 有两种等价的读法:

  • 几何视角:平面上一根从原点出发的箭头,长度 √5、方向约 26.6°;
  • 数据视角:两个数排成一列——可以是(身高, 体重),也可以是一个词的 2 维 embedding。

线性代数的一切力量来自这两个视角的互相翻译:数据视角让计算机存储它,几何视角让人类理解它。神经网络里 token 的 4096 维向量,几何视角依然是"高维空间里的一个箭头"——只是画不出来,但方向、夹角、长度的概念全部有效(余弦相似度就是夹角)。

2. 矩阵的本质:基向量的落点清单

对平面做一次"线性变换"——旋转、拉伸、剪切、镜像——整块空间跟着变形。线性的准确含义是两条军规:直线保持直线(不弯折)、原点不动。由此推出一个决定性事实:

变换的全部信息,全部包含在两个基向量的落点里。

因为任何向量 v = x·i + y·j(i、j 是 x/y 轴单位向量),线性变换保持线性组合:T(v) = x·T(i) + y·T(j)。知道 i、j 去哪了,就知道一切向量去哪了。

把两个落点按列写下来,就是矩阵:

        ┌              ┐
M = │  a    b  │      第 1 列 = i 的落点 (a, c)
    │  c    d  │      第 2 列 = j 的落点 (b, d)
        └              ┘

于是矩阵乘向量 Mv 有了几何读法——把 v 的分量当作配方,混合基向量的新落点:

M · [x]   =   x · (i 的落点) + y · (j 的落点)
    [y]

拖动下面的滑块亲手试:a/c 控制 i 的落点、b/d 控制 j 的落点,蓝色网格是变形后的整个世界。看剪切、旋转、镜像时基向量分别去了哪;把 det 拖到 0 看整个平面坍缩成一条线:

三个值得盯着的现象:

  1. 行列式 = 面积缩放因子:那个平行四边形是原单位方形的像,det=2 意味着任何图形面积翻倍;det<0 意味着空间被"翻了个面"(镜像);
  2. det=0 = 信息湮灭:平面被压扁成一条线(甚至一个点),无数不同的向量被映射到同一点,变换不可逆——这就是"奇异矩阵"的几何含义,也是数值里"满秩/退化"的来源;
  3. 橙色箭头是特征向量(下一篇的主角):变形中方向不变的轴,矩阵的一切"轴对称性"都藏在这里。

3. 矩阵乘法 = 变换的复合

先旋转 45° 再剪切,效果等价于某一个单独的变换——这个"合成变换"的矩阵,恰好等于 剪切矩阵·旋转矩阵。矩阵乘法的几何定义就是复合:

(M₂ · M₁) · v  =  M₂ · (M₁ · v)     先做 M₁,再做 M₂(从右往左读!)

这也解释了矩阵乘法为什么不可交换:先旋转再剪切 ≠ 先剪切再旋转——在下面的组件里想象两次操作顺序对调,结果显然不同。

4. 乘法的四种视角:AI 代码里的四张面孔

C = A·B 这一个公式,在 AI 系统里以四种面目反复出现。下面的组件用同一个 3×4 · 4×3 的例子在四种视角间切换,每种视角在右侧标注了它对应哪个 AI 场景:

① 元素视角(行·列点积):C[i][j] = A 的 i 行 · B 的 j 列。这是教科书定义,也是 GPU/NPU 众核并行的方式——每个输出元素一个任务(硬件篇的 Cube 单元干的就是这个)。

② 列视角(A 的列组合):C 的第 j 列 = A · (B 的第 j 列),B 的列元素是"把 A 的各列怎么混合"的配方。神经网络的一层 y = Wx 正是这个视角:x 的分量是配方,W 的列是新基。Embedding 查表也是它——one-hot 的 1 就是"只选第 k 列"的配方。

③ 行视角(B 的行组合):C 的第 i 行 = (A 的 i 行) · B。Attention 输出的每一行(每个 token 的新表示)= 按注意力权重混合 V 的行——推理篇"狗 = 0.6·V[小] + 0.4·V[追]"就是行视角的实例。

④ 外积和(秩一累加):C = Σₖ (A 的第 k 列) ⊗ (B 的第 k 行)——若干个秩一矩阵相加。这是最不直观却最重要的视角:LoRA 的"ΔW 低秩"假设直接对话它(训练篇),反向传播的权重梯度 dW = g·xᵀ 恰好就是一个外积(第三篇展开)。

四种视角是同一个数学对象,切换的时机取决于你要解释什么:讲并行看①,讲层与表示看②③,讲低秩与反传看④。

5. 从 2D 到 4096D:直觉的迁移

真实模型的矩阵是 [4096×4096] 起步,画不出网格——但所有几何概念原样迁移:

  • "列是基向量落点" → 模型学到的 4096 个方向就是它内部的"概念坐标系";
  • "矩阵乘 = 换坐标系" → 每一层都在把表示投影到新的坐标系,再用非线性折叠弯曲空间(第三篇);
  • "det=0 信息丢失" → 可逆性判据在数值上变成条件数与秩,决定梯度是否稳定(第二篇);
  • "复合从右往左" → 前向传播的代码顺序、链式法则的书写顺序,都源于此。

6. 小结

  • 矩阵 = 线性变换的完整编码:列是基向量落点,Mv = 用 v 的分量混合这些落点;
  • det 是面积因子,det=0 是信息坍缩;矩阵乘法 = 变换复合(从右往左执行);
  • 乘法四视角各有 AI 化身:元素→硬件并行、列→线性层与 embedding、行→注意力输出、外积和→LoRA 与反传梯度;
  • 2D 的几何直觉在高维全部有效,这是读架构论文时最趁手的思维工具。

下一篇进入矩阵的"骨架分析":特征值与 SVD——找到变换的不变方向,以及"低秩"为什么能以小博大。