写在前面:这个系列想做什么?
很多人告诉我:“我对 AI 很好奇,但一看到公式就劝退了。”
也有人说:“我数学从初中就开始掉队,现在完全看不懂你写的那些向量、矩阵。”
我反思了一下,问题不在你身上。问题在于——没有人帮你建立数学思想。
学校教你算术、方程、函数、微积分,一路往上堆。但从来没有人停下来告诉你:
为什么要学这个?它在描述什么?人类为什么需要它?
这个系列,就是来补这一课的。
我不会按照教科书的顺序(线性代数、微积分、概率论……),而是按照人类认知进化的顺序——从最朴素的地方开始,一步一步走到 AI。
从今天开始,我们的旅程从一万年前的一根绳子开始。
系列导航
▸ 第一篇(本文):结绳记事——人类第一次抽象如果你已经读过 《AI 的数学语言》系列,这个系列会帮你理解那些公式背后更深层的"为什么"。
第一章:一个牧羊人的难题
一万年前,某个黄昏。
一个牧羊人把羊群赶进了围栏。他需要确认一件事:有没有羊丢了?
他没有数字。没有"1, 2, 3"。甚至没有"多少"这个概念。
但他想到了一个办法。
早上,每出去一只羊,他在一根绳子上打一个结。
傍晚,每回来一只羊,他解开一个结。
如果最后绳子上没有结了——羊全回来了。
如果还有结——丢了。
他不需要知道自己有"多少"只羊。他只需要建立一个一一对应的关系:
🐑 ←→ 🪢
🐑 ←→ 🪢
🐑 ←→ 🪢
🐑 ←→ 🪢
🐑 ←→ 🪢
一只羊 = 一个绳结
不需要"数数",只需要"对应"
这是人类历史上最早的"数学运算"。
而它的核心思想——用一个东西代表另一个东西——直到今天,仍然是整个数学、整个计算机科学、整个 AI 的基石。
第二章:从"三只羊"到"三"
结绳记事解决了"有没有丢"的问题。但人类的大脑不满足于此。
慢慢地,人们开始注意到一件奇怪的事:
三只羊、三块石头、三棵树、三个人……
它们长得完全不一样,但有一个东西是一样的。
什么是一样的?
“三”。
这就是人类思维史上最伟大的一次飞跃——抽象。
🐑🐑🐑 三只羊
🪨🪨🪨 三块石头 → "3" ← 一个纯粹的概念
🌳🌳🌳 三棵树
👤👤👤 三个人
它们之间没有任何相似之处
唯一相同的是"数量"——一个你看不见、摸不到的东西
“3"不是三只羊。“3"不是三块石头。“3"是一个你看不见、摸不到、但确实存在的概念。
你可能觉得这没什么了不起。但请想一想:
- 世界上所有的动物都能分辨"多"和"少”——乌鸦知道两堆食物哪堆更多。
- 但没有任何动物能理解"3"这个独立于具体事物的概念。
能做到这一步的,只有人类。
一句话记住: 数学的起点不是计算,是抽象——从具体事物中提取出纯粹的模式。
第三章:符号的力量——从刻痕到 0123456789
有了"数量"的概念,下一步是:怎么记录它?
人类试过很多方法:
| 时代 | 方法 | 例子 | 局限 |
|---|---|---|---|
| 原始 | 刻痕 | ` | |
| 古埃及 | 象形符号 | 𓆼 = 1000 | 符号太多,不好算 |
| 古罗马 | 字母组合 | XIV = 14 | 做乘法要命 |
| 古巴比伦 | 楔形 + 位值 | 𒐕𒐕 | 60 进制,太复杂 |
| 印度-阿拉伯 | 0-9 + 位值 | 14 | 完美。沿用至今 |
为什么最终赢的是印度-阿拉伯数字系统?
因为它有一个天才的设计:位值制(place value)。
同一个符号"2”,放在不同位置,含义完全不同:
2 → 二(个位)
20 → 二十(十位)
200 → 二百(百位)
2000 → 两千(千位)
你只需要学 10 个符号(0-9),就能表达任意大的数。
而罗马数字呢?来,试试用罗马数字做这道乘法:
XXXVIII 38
× XLIV × 44
───────── ──────
??? 1672
左边几乎不可能心算。右边小学生就能做。
符号系统不是"审美问题”。它决定了你能不能高效计算。 罗马帝国用了上千年的 IVXLCDM,直到采用阿拉伯数字,欧洲的科学和商业才真正起飞。
一句话记住: 好的符号不只是记录工具,它释放思维的算力。这就是为什么数学家花大量时间发明符号——从 +、-、=、x,到 ∫、∑、∂。每一个符号都是一次"思维压缩"。
第四章:为什么是"十"进制?
你有没有想过——为什么我们用十进制?
答案简单得有点好笑:因为我们有十根手指。
✋🤚
左手 5 根 + 右手 5 根 = 10
数完 10 根手指 → "进一位"
这就是十进制的全部来历
但"十"不是唯一的选择。不同文明选了不同的"基数":
| 进制 | 谁用的 | 为什么 | 今天的遗产 |
|---|---|---|---|
| 十进制 | 大多数文明 | 10 根手指 | 日常生活 |
| 十二进制 | 古代商人 | 12 个指节(一只手 4 根手指 × 3 节) | 12 个月、12 小时、一打 |
| 二十进制 | 玛雅人 | 10 根手指 + 10 根脚趾 | 法语 80 = quatre-vingts(4个20) |
| 六十进制 | 巴比伦人 | 60 的因数多(1,2,3,4,5,6,10,12,15,20,30,60),方便分割 | 60 秒、60 分钟、360 度 |
| 二进制 | 计算机 | 电路只有开/关两种状态 | 整个数字世界 |
看最后一行。
计算机用二进制,不是因为数学家觉得它好,而是因为物理世界给的约束——电路只有"通电"和"断电"两种状态。
- 通电 = 1
- 断电 = 0
就这两个符号,足以表达一切。文字、图片、音乐、视频——你手机里的所有东西,底层都是 0 和 1。
十进制的 42,在二进制里是:
42 = 32 + 8 + 2
= 2⁵ + 2³ + 2¹
= 101010
每一位要么是 0,要么是 1
就像电路的每个开关要么关要么开
一句话记住: 进制不是"数学规定",是人类用什么来数数的结果。手指 → 十进制。开关 → 二进制。选择什么进制,取决于你的"硬件"。
第五章:数学的本质——压缩
走到这里,让我们停下来想一想。
从结绳记事到十进制,人类做的事情本质上只有一件:
压缩。
- 一只羊 → 一个绳结(把一只活生生的羊压缩成一个结)
- 三只羊、三块石头、三棵树 → “3”(把无数具体事物压缩成一个符号)
- 一千 → “1000”(用 4 个字符表达一个很大的数量)
自然语言(中文):
"有一个数,它乘以自己再加上这个数的三倍
等于二十八"
数学语言:
x² + 3x = 28
一段话 → 一行公式
这就是压缩
后面你会看到,数学的每一次进步都是一次更强的压缩:
- 方程把"关系"压缩成一行
- 函数把"变化规律"压缩成一个表达式
- 微积分把"无穷多个无穷小的东西"压缩成一个符号 ∫
- 矩阵把"一大堆方程"压缩成一个符号
- 神经网络把"人类语言的全部规律"压缩成一组参数
你还记得我的博客开篇语叫什么吗?
《压缩即智能》。
AI(大语言模型)做的事情,本质上就是压缩——把人类语言的所有模式压缩到一组数字参数里。
而数学本身,就是人类发明的终极压缩工具。
第六章:连接 AI——从绳结到 Token
现在我们来看一件惊人的事。
GPT 处理一句话时,做的第一件事是什么?
把文字变成数字。
这个过程叫 Tokenization(分词编码)。
"今天天气真好" → [10211, 3922, 8847, 2345]
每个词/字 对应 一个数字编号
等等,这不就是……结绳记事吗?
结绳记事: 一只羊 → 一个绳结 (实物 → 符号)
Tokenizer:一个词 → 一个数字编号 (文字 → 数字)
核心思想完全一样:用一个东西代表另一个东西。
从一万年前的牧羊人,到今天的 GPT,人类一直在做同一件事——建立映射。
来,我们实际看看。下面是在我们的 AI 实验机器上,用 OpenAI 的 tokenizer 把一句话变成数字:
azureuser@ai-lab:~$ source ~/ai-lab-venv/bin/activate
(ai-lab-venv) azureuser@ai-lab:~$ python3 -c "
import tiktoken
enc = tiktoken.encoding_for_model('gpt-4')
text = '今天天气真好'
tokens = enc.encode(text)
print(f'原文: {text}')
print(f'Token IDs: {tokens}')
print(f'Token 数量: {len(tokens)}')
print()
# 反过来:数字 → 文字
for tid in tokens:
print(f' {tid} → \"{enc.decode([tid])}\"')
"
原文: 今天天气真好
Token IDs: [108386, 99978, 109413]
Token 数量: 3
108386 → "今天"
99978 → "天气"
109413 → "真好"
看到了吗?
- “今天” → 108386
- “天气” → 99978
- “真好” → 109413
每个词对应一个数字。绳结变成了数字,但原理没变。
我们再试试英文:
>>> text_en = "Mathematics is the language of the universe"
>>> tokens_en = enc.encode(text_en)
>>> print(f'Token 数量: {len(tokens_en)}')
Token 数量: 7
>>> for tid in tokens_en:
... print(f' {tid} → "{enc.decode([tid])}"')
68019 → "Mathematics"
374 → " is"
279 → " the"
4221 → " language"
315 → " of"
279 → " the"
15861 → " universe"
7 个英文 token。每个词变成一个数字编号。
从结绳记事到 Tokenization,中间隔了一万年。但核心思想一模一样:
一个事物 → 一个符号 → 一个数字。
这就是抽象。这就是数学的起点。
第七章:“数量"之外的抽象
数学的抽象不止于"数量”。
事实上,你每天都在做各种各样的"抽象"——只是你没意识到而已:
| 你做的事 | 其实是在做什么 |
|---|---|
| 看地图找路 | 把三维城市压缩成二维平面 |
| 用表情包回复 | 把复杂情绪压缩成一张图 |
| 给照片打标签 | 把图像内容压缩成几个词 |
| 评分(8/10分) | 把主观感受压缩成一个数字 |
| 画流程图 | 把复杂过程压缩成方框和箭头 |
| 说"差不多" | 把精确差异压缩成一个模糊判断 |
抽象 = 忽略细节,保留本质。
这恰好也是 AI 在做的事情:
- 词嵌入(Word Embedding):把一个词的"含义"压缩成 768 个数字
- 注意力机制(Attention):从一句话里提取出"谁和谁有关系"
- 模型训练:把人类语言的全部规律压缩成几十亿个参数
数学和 AI 的共同起点,就是抽象。
本篇小结
一、数学的起点是抽象
- 从三只羊到"3":忽略一切具体细节,只保留"数量"
- 这一步看似简单,但人类是唯一能做到的物种
二、符号释放算力
- 好的符号系统(阿拉伯数字 + 位值制)不只是"写法不同"
- 它决定了你能不能高效思考和计算
三、进制是"硬件决定的"
- 十进制 ← 十根手指
- 二进制 ← 电路开关
- 进制没有"对错",只有"适不适合你的硬件"
四、数学是压缩语言
- 从绳结到方程到神经网络,数学一直在做同一件事:压缩
- AI 的核心也是压缩——把人类语言的模式压缩到参数里
五、结绳记事 = Tokenization
- 一万年前:一只羊 → 一个绳结
- 今天:一个词 → 一个数字编号
- 核心思想没变:用一个东西代表另一个东西
下一篇预告
我们学会了用数来描述"有多少"。但还有一个问题:
“没有"怎么表示?
一个牧羊人可以用绳结表示 1, 2, 3, 4, 5……但他怎么表示"一只羊都没有”?
0——这个看似无足轻重的符号——是人类数学史上最伟大的发明之一。它的出现,打开了一扇通往负数、无穷、甚至虚数的大门。
动手实验
如果你想亲手体验"从文字到数字"的过程,可以试试这个简单的 Python 实验:
# 不需要安装任何库,纯 Python 即可
text = "数学是人类的望远镜"
# 最朴素的"tokenizer":把每个字变成它的 Unicode 编码
for char in text:
print(f" '{char}' → {ord(char)}")
# 输出:
# '数' → 25968
# '学' → 23398
# '是' → 26159
# '人' → 20154
# '类' → 31867
# '的' → 30340
# '望' → 26395
# '远' → 36828
# '镜' → 38236
每个字都变成了一个数字。这就是数字世界的"结绳记事"。
《看见数学》系列 — 从结绳记事到 AI,看见数学之美。
本文首发于「AI 学习笔记」博客:https://Jason-Azure.github.io/ai-blog/
微信公众号:AI-lab学习笔记
系列文章完整列表见 标签:看见数学
