系列导航
第一幕(5 篇)+ 第二幕(5 篇)→ 查看全部▹ 第十一篇:向量——给万物一个坐标▹ 第十二篇:矩阵——空间的变形术▹ 第十三篇:概率——拥抱不确定▸ 第十四篇(本文):高维——超越想象力▹ 第十五篇:梯度下降——数学会学习▹ 第十六篇:终章——数学是人类的望远镜
第一章:你无法想象的空间
第十一篇 里我们说过:一杯咖啡是 3 维向量,一个游戏角色是 5 维,一个词向量是 768 维。
你可以画出 1 维(数轴)、2 维(平面)、3 维(立体)。
但 4 维呢?10 维呢?768 维呢?
1 维:一条线上的点 你能想象 ✓
2 维:平面上的点 你能想象 ✓
3 维:空间中的点 你能想象 ✓
4 维:??? 你开始困难了
10 维:??? 完全无法想象
768 维:GPT 的词向量空间 ???
但数学不需要"想象"。
数学只需要"计算"。
768 维的向量 = 768 个数字排成一列。
两个 768 维向量的距离 = 对应位置差的平方和再开根号。
计算方法和 2 维、3 维完全一样——
只是多了 765 个维度。
这就是数学的超能力:它不受人类想象力的限制。 你画不出 768 维的空间,但你可以精确地在里面计算距离、角度、相似度。
一句话记住: 高维不是"更多的方向",高维是"更多的特征"。768 维的词向量不是"768 个方向",而是"这个词在 768 个方面的属性"。
第二章:高维的三大反直觉
高维空间不是"把三维空间再多加几个方向"。它有很多违背直觉的性质。
反直觉一:所有体积都在"壳"上
一个橘子(3 维球):
90% 的体积在外层 30% 的厚度里
剥掉皮,里面还有很多果肉
一个 100 维的"球":
99.99999...% 的体积集中在最外层的薄壳上
"内部"几乎是空的
维度越高,体积越集中在表面。
这意味着什么?在高维空间中随机取一个点,它几乎一定在"表面"附近。高维空间的"内部"几乎不存在。
反直觉二:随机向量几乎都"垂直"
2 维空间:随机选两个方向,它们的夹角随机分布
3 维空间:随机选两个方向,它们更可能接近垂直
100 维空间:随机选两个方向,它们几乎一定接近 90°
768 维空间:任意两个随机向量的余弦相似度 ≈ 0
直觉上:
维度越高,"方向"越多,
两个随机方向碰巧相似的概率越小。
这解释了为什么 第十一篇 的词向量能工作:在 768 维空间里,有足够多的"独立方向",让每个词都能找到自己独特的位置,不会互相"挤"在一起。
反直觉三:数据变得极度稀疏
把一条线(1 维)分成 10 段,需要 10 个点来"填满"
把一个正方形(2 维)分成 10×10 格,需要 100 个点
把一个立方体(3 维)分成 10×10×10 格,需要 1,000 个点
把一个 10 维空间分成 10^10 格,需要 100 亿个点
把一个 100 维空间分成 10^100 格,需要 ...
10^100 = 1 后面跟 100 个零
> 整个宇宙的原子数量(约 10^80)
哪怕每格只放一个数据点,
你需要的数据量也超过了宇宙的原子数。
这就是"维度灾难"——维度越高,需要的数据量呈指数级增长。
这就是为什么 AI 需要那么多训练数据。768 维的空间太空旷了,如果数据不够多,模型看到的只是一片"荒漠",无法学到有意义的模式。
一句话记住: 维度灾难告诉我们:高维空间大得超乎想象,数据在里面像沙漠里的几粒沙。所以 AI 要么需要海量数据,要么需要"降维"。
第三章:降维——看见高维的"影子"
既然人类想象不了高维,也缺乏足够的数据来填满它——怎么办?
降维。
想象你站在一栋高楼上看下面的人群。
3D 的人群 → 2D 的俯视图
你丢失了身高信息,但保留了每个人的位置关系:
谁挨着谁、谁在哪个区域、哪里人多人少
——这些"结构"在降维后依然可见。
AI 的降维也是同样的思路:
把 768 维的数据投影到 2 维
丢失一些细节
但保留"谁和谁相似"的结构
常见的降维方法:
| 方法 | 思想 | 用途 |
|---|---|---|
| PCA | 找到数据方差最大的方向,只保留最重要的几个维度 | 去噪、压缩 |
| t-SNE | 保留"邻近关系"——近的还是近,远的还是远 | 可视化词向量 |
| UMAP | 类似 t-SNE,但更快 | 大规模数据可视化 |
降维让你能"看见"高维数据。那些词向量可视化图(国王和女王靠在一起,男人和女人靠在一起)就是把 768 维降到 2 维后画出来的。
第四章:连接 AI——为什么 Transformer 要用高维?
既然高维有"维度灾难",为什么 AI 偏偏要用 768 维、1024 维、甚至 12288 维?
因为高维 = 表达能力。
如果用 2 维来描述一个词:
你只能表达两个方面,比如"积极/消极"和"具体/抽象"
"国王"和"女王"几乎无法区分
如果用 768 维来描述一个词:
你有 768 个独立的方面来刻画含义
性别、权力、时代、具体性、情感色彩、正式程度...
每个方面贡献一点信息
合起来就精确地描述了一个词的全部含义
GPT-4 用的维度可能高达 12288
→ 12288 个维度来编码人类语言的全部复杂性
AI 对抗维度灾难的方法不是"降低维度",而是"用海量数据来填满高维空间"。
GPT-3 的训练数据:几千亿个词
GPT-4 的训练数据:可能上万亿个词
这么多数据,才勉强让 768 维空间
不至于太"空旷"。
还有一个精妙的设计:第十二篇 讲的矩阵变换(QKV 投影),本质上就是一种有监督的降维——把 768 维的通用空间投影到更小的子空间,只保留与当前任务相关的信息。
一句话记住: 高维空间是一把双刃剑:维度越高,表达能力越强,但需要的数据也越多。AI 的核心挑战之一,就是在"表达力"和"数据需求"之间找平衡。
第五章:“看不见"才是常态
这一篇是第三幕的核心隐喻:
人类只能"看见"三维。 但数学能让你在 768 维空间里计算距离、找到"邻居”、发现"方向"。你不需要"看见"高维空间——你只需要在里面计算。
数学就是给你一双"看不见之眼"。
庄子说过:“吾生也有涯,而知也无涯。” 人类的感官有限——只能看见三维、只能听到 20Hz-20kHz、只能感知到很窄的电磁波谱。但数学没有这些限制。数学可以描述任意维度、任意频率、任意尺度。数学是人类感官的延伸。
动手实验
实验:高维空间的反直觉
import random
import math
def random_vector(dim):
"""生成一个随机单位向量"""
v = [random.gauss(0, 1) for _ in range(dim)]
norm = math.sqrt(sum(x**2 for x in v))
return [x / norm for x in v]
def cosine_sim(a, b):
"""余弦相似度"""
dot = sum(x*y for x, y in zip(a, b))
return dot # 已经是单位向量,所以点积就是余弦
# 在不同维度下,随机向量的余弦相似度
for dim in [2, 10, 100, 768]:
sims = []
for _ in range(1000):
a = random_vector(dim)
b = random_vector(dim)
sims.append(abs(cosine_sim(a, b)))
avg = sum(sims) / len(sims)
print(f"{dim:>4} 维: 平均 |余弦相似度| = {avg:.4f}")
# 你会看到:维度越高,随机向量越接近垂直(相似度→0)
本篇小结
一、人类想象力止步于三维
- 但数学不需要"想象",只需要"计算"
- 768 维的运算法则和 3 维完全一样
二、高维的三大反直觉
- 体积集中在薄壳上、随机向量几乎垂直、数据极度稀疏
三、降维——看见高维的影子
- PCA、t-SNE、UMAP 把高维数据投影到 2D 来可视化
四、AI 需要高维来表达语言的复杂性
- 768 维 = 768 个独立方面来刻画词义
- 海量数据对抗维度灾难
五、数学是"看不见之眼"
- 你不需要看见高维空间,你只需要在里面计算
下一篇预告
我们有了向量(描述事物)、矩阵(变换空间)、概率(管理不确定)、高维空间(容纳复杂性)。
还差最后一块拼图:AI 怎么"学习"?
一个新生的 AI 模型,参数都是随机的,输出一团乱码。但经过训练后,它能写诗、翻译、对话。
从"一团乱码"到"能写诗",中间发生了什么?
答案是:梯度下降——一种让数学自己"找到答案"的方法。而它的核心,就是 第九篇 里学过的导数。
下一篇:看见数学(十五):梯度下降——数学会学习
《看见数学》系列 — 从结绳记事到 AI,看见数学之美。
本文首发于「AI 学习笔记」博客:https://Jason-Azure.github.io/ai-blog/
微信公众号:AI-lab学习笔记
系列文章完整列表见 标签:看见数学
