系列导航

第一幕(5 篇)+ 第二幕(5 篇)→ 查看全部
▹ 第十一篇:向量——给万物一个坐标
▸ 第十二篇(本文):矩阵——空间的变形术
▹ 第十三篇:概率——拥抱不确定
▹ 第十四篇:高维——超越想象力
▹ 第十五篇:梯度下降——数学会学习
▹ 第十六篇:终章——数学是人类的望远镜

第一章:一台"空间变形机"

上一篇我们说,向量是"一组数",可以描述任何事物——一杯咖啡、一个词的含义、一张脸。

现在问一个新问题:如果你想同时改变一大堆向量,怎么办?

想象你是一个画家
你画了一只猫。猫是由很多点(向量)组成的。

现在你想:
  把猫放大 2 倍      → 所有点的坐标 ×2
  把猫旋转 45 度     → 所有点重新计算位置
  把猫翻转成镜像     → 所有 x 坐标取反

每一种变换,都是对"所有向量"施加同一种操作。
做这件事的数学工具,就是矩阵。

矩阵 = 一台空间变形机。 你输入一个向量(一个点的位置),它输出变换后的向量(新位置)。

但它不只变换一个点——它同时变换整个空间里的所有点

向量: [1, 2, 3]                ← 一行数字,描述一个事物

矩阵: [[2, 0, 0],             ← 一张数字表格
        [0, 2, 0],
        [0, 0, 2]]

矩阵 × 向量 = [2, 4, 6]       ← 每个维度都放大了 2 倍

这个矩阵做的事情很简单——把所有东西放大 2 倍。但矩阵能做的事远不止这个。

一句话记住: 向量是"一个事物"。矩阵是"对事物的一种变换"。向量是名词,矩阵是动词。


第二章:旋转、缩放、翻转——矩阵的三板斧

让我们看看矩阵能做什么样的变换。为了直观,先在 2D 平面上演示:

三种经典变换
原始点: [1, 0](向右 1 步)

【缩放】放大 3 倍
  矩阵 = [[3, 0],     结果 = [3, 0]
           [0, 3]]     → 向右 3 步

【旋转】逆时针 90°
  矩阵 = [[0, -1],    结果 = [0, 1]
           [1,  0]]    → 向上 1 步(转了 90°)

【翻转】左右镜像
  矩阵 = [[-1, 0],    结果 = [-1, 0]
           [ 0, 1]]    → 向左 1 步(镜像)

关键洞察:不同的矩阵 = 不同的变换方式。 矩阵里的数字决定了空间会怎么"变形"。

生活中的矩阵变换
你做的事其实是矩阵变换
手机照片旋转 90°旋转矩阵
Photoshop 水平翻转翻转矩阵
地图放大缩小缩放矩阵
3D 游戏里视角变化透视投影矩阵
抖音特效"瘦脸"非均匀缩放矩阵

你每天都在用矩阵变换,只是软件帮你做了数学。

一句话记住: 每次你在手机上旋转、放大照片,背后都有一个矩阵在工作。矩阵就是"空间变形的指令"。


第三章:矩阵乘法——变换的叠加

如果一个矩阵是"一次变换",那两个矩阵相乘是什么?

答案出奇简单:先做一次变换,再做一次变换。

矩阵乘法 = 变换的叠加
A = 旋转 90° 的矩阵
B = 放大 2 倍的矩阵

A × B = "先放大 2 倍,再旋转 90°"

一步到位!

这就是为什么矩阵乘法的定义
看起来那么奇怪(行×列求和)——
因为它在算"两次变换叠加后的效果"。

这就回答了一个很多人学线性代数时的困惑:为什么矩阵乘法不是"对应位置相乘"?

因为矩阵乘法不是在"合并两张表格"——它是在组合两次变换。行乘列求和的规则,恰好让"变换的叠加"在数学上成立。

为什么矩阵乘法不满足交换律? A × B ≠ B × A。因为"先旋转再放大"和"先放大再旋转"可能得到不同结果——就像"先穿袜子再穿鞋"和"先穿鞋再穿袜子"完全不同。变换的顺序很重要。

一句话记住: 矩阵乘法不是"数字的计算技巧",而是"两次变换的合成"。理解了这一点,线性代数的大门就打开了。


第四章:连接 AI——Transformer 里的矩阵

现在来看矩阵在 AI 里最核心的用法。

还记得 上一篇 说的吗?AI 把每个词变成一个向量(768 维的数列表)。

但这个向量只是"原始含义"。Transformer 要做的事情是:从不同角度重新审视每个词。

QKV 投影 = 矩阵变换
一个词的原始向量 x = [0.2, 0.5, 0.1, ..., 0.8]  (768维)

Transformer 用三个矩阵,把 x 变成三个不同的向量:

  Q = Wq × x     "我在找什么?"(查询)
  K = Wk × x     "我能提供什么?"(键)
  V = Wv × x     "我的内容是什么?"(值)

Wq、Wk、Wv 是三个不同的矩阵(变换器)。
同一个词,从三个不同角度被"审视"。

这就是矩阵在 AI 里最核心的角色:投影(projection)。

投影是什么?想象你拿着一个立体的地球仪,从正面拍一张照片——你得到一个 2D 的平面图。这就是把 3D 空间"投影"到 2D。信息有损失,但换来了一个特定视角。

同样,QKV 矩阵把每个词从"768 维的通用含义空间"投影到"查询空间"、“匹配空间”、“内容空间”——每个空间关注词义的不同侧面。

神经网络 = 矩阵变换链
输入 → [矩阵变换₁] → [激活函数] → [矩阵变换₂] → [激活函数] → ... → 输出

神经网络的每一层:
  1. 矩阵变换:把向量投影到新空间
  2. 激活函数:加入非线性(第二幕里学过的函数!)

GPT-4 可能有上百层。
= 上百次矩阵变换 + 上百次非线性弯折。
= 把原始数据一步步变换到"能预测下一个词"的形态。

如果你想深入了解矩阵乘法的具体计算过程和 Attention 的完整公式推导,可以看我的 《AI 的数学语言(三):矩阵》《AI 的数学语言(四):矩阵乘法与 AI》——那两篇有详细的手算演示和代码实现。

一句话记住: 神经网络做的事情,本质上就是"一层层矩阵变换"。每一层矩阵把数据空间"揉"成新的形状,直到揉成 AI 需要的样子。


第五章:中国古代的"矩阵"

矩阵不是西方的发明。

中国人用矩阵解方程,比欧洲早了一千五百年

《九章算术》第八章:方程术(约公元前 100 年)

“今有上禾三秉,中禾二秉,下禾一秉,实三十九斗……”

翻译成现代语言:

3x + 2y + z = 39

算筹(小棍子)在地上摆成方阵来求解——这就是最早的"矩阵消元法",比欧洲的高斯消元法早了约 1800 年。

“矩阵"这个中文词本身就很有意思:

矩 = 方形的尺(《说文解字》:"矩,规矩之矩")
阵 = 排列、阵法

矩阵 = 方方正正排列的数阵

古人用算筹在地上排出一个"方阵"来解方程,和今天我们在计算机里用矩阵做变换,思想一脉相承。

从算筹到 GPU: 两千年前的数学家把算筹一根根摆在桌上做"矩阵运算”。今天的 GPU(图形处理器)每秒做几万亿次矩阵乘法。工具变了,数学没变。

NVIDIA 的 A100 GPU 的核心卖点不是"跑游戏更流畅"——而是它内置了专门的 Tensor Core,专门加速矩阵乘法。AI 时代的芯片,本质上是一台超级矩阵计算机


动手实验

实验:矩阵变换的效果

import numpy as np

# 原始点(一个三角形的三个顶点)
triangle = np.array([
    [0, 0],   # 原点
    [1, 0],   # 右边
    [0.5, 1], # 上方
])

# 缩放矩阵:放大 2 倍
scale = np.array([[2, 0],
                  [0, 2]])

# 旋转矩阵:逆时针旋转 90 度
rotate = np.array([[0, -1],
                   [1,  0]])

# 翻转矩阵:水平翻转
flip = np.array([[-1, 0],
                 [ 0, 1]])

for name, matrix in [("缩放2倍", scale), ("旋转90°", rotate), ("水平翻转", flip)]:
    result = triangle @ matrix.T   # 每个点做矩阵变换
    print(f"\n{name}:")
    for i, (orig, new) in enumerate(zip(triangle, result)):
        print(f"  点{i}: {orig}{new}")

# 组合变换:先旋转再放大
combined = scale @ rotate    # 矩阵乘法 = 变换叠加
result = triangle @ combined.T
print(f"\n先旋转90°再放大2倍(组合变换):")
for i, (orig, new) in enumerate(zip(triangle, result)):
    print(f"  点{i}: {orig}{new}")

本篇小结

这篇文章讲了什么?

一、矩阵 = 空间变形机

  • 输入一个向量,输出变换后的向量
  • 不同的矩阵 = 不同的变换方式

二、旋转、缩放、翻转——矩阵的三板斧

  • 手机旋转照片、地图缩放、游戏视角——全是矩阵变换

三、矩阵乘法 = 变换的叠加

  • A × B = 先做 B 变换,再做 A 变换
  • 不满足交换律,因为变换顺序很重要

四、AI 的核心操作就是矩阵变换

  • QKV 投影 = 三次矩阵变换
  • 神经网络 = 一层层的矩阵变换链

五、《九章算术》的方程术

  • 中国人用算筹做"矩阵消元",比高斯消元法早 1800 年
  • 从算筹到 GPU,工具变了,数学没变

下一篇预告

矩阵变换是"确定的"——给定输入,输出完全确定。

但现实世界充满了不确定性。明天会不会下雨?这个邮件是不是垃圾邮件?AI 生成下一个词时,到底选哪个?

描述"不确定性"的数学工具叫概率

概率不是"猜"——概率是用数学管理无知。你不知道明天是否下雨,但你可以说"下雨的概率是 60%",然后据此做出最优决策。AI 的每一次预测,都是在做概率判断。

下一篇:看见数学(十三):概率——拥抱不确定


《看见数学》系列 — 从结绳记事到 AI,看见数学之美。
本文首发于「AI 学习笔记」博客:https://Jason-Azure.github.io/ai-blog/
微信公众号:AI-lab学习笔记
系列文章完整列表见 标签:看见数学