写在前面:这个系列想做什么?

很多人告诉我:“我对 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学习笔记
系列文章完整列表见 标签:看见数学