跳转至

P2-1.1 数学在 AI 计算中扮演什么角色

Section ID: P2-1.1 Version: v2026.09.08

在 Part 1,我们是从规则、模型、学习、生成、服务结构这张大地图上看 AI 的。从 Part 2 开始,我们要恢复阅读这张地图所需的基础。第一个问题就是:如果要重新学习 AI,到底需要懂多少数学。

这一节的答案并不简单。你不需要把所有数学都证明出来。但如果你完全读不懂数学记号想表达什么,那么在读模型(model)、数据(data)、损失(loss)、概率(probability)、优化(optimization)、嵌入(embedding)时,就会反复卡住。

因此,这里把数学看成的不是为了答对题目的考试科目,而是用来阅读 AI 计算的语言(language)、结构(structure)和压缩记法(notation)。

这里重新看数学的原因,更接近于 恢复阅读 Part 3 和 Part 4 中 X、y、loss、metric 等表达所需的识读能力,而不是 为了考试去做题。一旦这个标准立住,后面也更容易读懂为什么向量、导数、概率、优化会被放进同一个 Part。

这里会重新整理 数学的角色、计算语言、压缩记法、损失 和 优化。在后面的章节真正把各类符号和数学主题分开展开之前,这一节先回答 为什么必须把数学重新读成 AI 计算识读能力的一部分。

先抓住的共同场景

Chapter 1 会反复使用一个小型数据场景。假设四名学生的学习时间和小测成绩如下。

学生 学习时间 x 小测分数 y
A 1 小时 55 分
B 2 小时 65 分
C 3 小时 80 分
D 4 小时 90 分

这个场景之后会以多个问题重新出现。

  • 如果计算平均值,就能看到分数的大致中心位置。
  • 如果把 x 和 y 放在一起看,就能读出输入(input)和输出(output)的关系。
  • 如果加上模型(model),就能把它变成一个预测(prediction)问题:学习时间增加时,分数会怎样变化?
  • 如果加上损失(loss),就能用一个数字计算“预测和真实分数差了多少”。

也就是说,这里数学不是一个专门学习困难符号的独立科目,而是把这种小表重新读成 平均值、函数、误差、优化 语言的工具。读者如果不想在后面遇到 sigma、向量、导数时迷路,就需要先抓住这个标准:数学最终是在帮助我们读取、比较和调整这样的数据。

核心判断标准:数学在 AI 计算中扮演什么角色

  • 能从表达和计算的角度,而不是从证明的角度,说明 AI 中为什么需要数学。
  • 能把公式(formula)看成要通过代码和数据重新确认的对象,而不是只靠背诵的对象。
  • 能说明 Part 2 中各类数学主题分别服务于什么目的。
  • 能减轻“我不会数学”的负担,同时理解如果完全跳过数学记号会遇到什么限制。

三个判断标准

这里首先需要的不是证明,而是角色区分。

标准 为什么重要
数学是 计算语言,不是 考查答题对错的科目 这样即使不能推完所有公式,也还能抓住阅读文档的起点。
数学会解释 数据的形状 和 学习的方向 这会连接起为什么向量、矩阵、损失和梯度会在同一个 Part 里出现。
公式最终必须通过 代码和结果 再次确认 因为 AI 学习不会停留在读完公式就结束。

数学会把计算压缩显示出来

在 AI 文档里,数学会把很长的计算过程压缩起来。例如,当数据有很多个时,“求平均值”也可以用日常语言解释。如果把这个过程展开成句子,那就是把所有值相加,再除以值的个数。

公式会把这个过程写得更短。

\[ \mathrm{mean} = \frac{x_1 + x_2 + \cdots + x_n}{n} \]

使用 sigma 记号,可以写得更简洁。

\[ \mathrm{mean} = \frac{1}{n}\sum_{i=1}^{n}x_i \]

这里,x_i 表示每个数据值,n 表示数据的个数。即使数值或个数发生变化,全部相加,再除以个数 这一计算规则仍然相同。公式把适用于多种情况的规则压缩表达出来。只要对符号的含义有共同理解,处理不同数据的人也能传达并核对同一个计算标准。数学记号由此成为交流通用计算规则的工具。

读公式时,可以用下面几个问题把它拆开。

  • 它接收什么输入?
  • 它在相加或比较什么?
  • 它想减少或增大什么?
  • 在代码里,结果会变成哪个变量?

如果回到前面的学习时间-小测分数表,那么平均分就是把 55、65、80、90 加起来再除以学生人数的计算。公式只是把这种重复简短写下,后面的代码则会把它展开成真实执行步骤。读者在这里真正该抓住的,不是符号本身,而是 一次处理多个值的重复结构。

数学会规定数据的形状

AI 模型并不会直接处理原始的句子、图片、声音或表格。它们大多会被转换成数组(array)、向量(vector)、矩阵(matrix)、张量(tensor)这类可计算形式。

句子可以变成 token、数字 ID,再变成向量;图片可以变成像素值数组和张量;表格数据可以变成拥有行和列的矩阵或 DataFrame。

这里,数学解释的是 这些数据是什么形状。向量是值的列表,矩阵是把值按行和列摆放的结构,张量则可以看作拥有更多轴(axis)的数组。

这个视角在重新阅读 Part 1 中的嵌入和向量检索时很重要。所谓“把文本表示成向量”,不是人手工给意义写坐标,而是把文本转换成模型与检索系统都能计算的数值空间表示(representation)。

如果用同样的标准回看前面的表,那么 x 列和 y 列最终也只是数字列表。对人来说,它看起来像“学习时间”和“分数”的故事;但对模型来说,它会被读成 输入向量 和 输出向量,或者一张小型表格数据。没有这种转换感,后面出现的 X、y、shape、feature、target 就会像一个全新的主题。

数学会解释学习到底改变了什么

在 AI 中,学习(learning)并不是一种模糊的“变聪明过程”。它通常被解释为:通过调整模型参数(parameter)来让损失(loss)下降的过程。如果把这个流程按顺序展开,就是输入数据进入,模型生成输出,再把输出和参考标准比较以计算损失,然后沿着能让损失降低的方向去调整参数,并不断重复。

这个流程会附着上多个数学概念。

  • 函数(function):表达把输入变成输出的关系
  • 损失函数(loss function):用数字表达模型错了多少
  • 导数(derivative)和梯度(gradient):寻找往哪个方向改值会让损失下降
  • 优化(optimization):不断寻找更好的数值
  • 概率(probability)和统计(statistics):处理不确定数据中的模式和误差

这里并不是要立刻把这些概念全算出来,而是先整理:为什么这些概念会一再出现在 AI 学习说明里。

不妨想象一下,在学习时间和分数这张表上贴一条很简单的直线。如果模型预测“学习 1 小时会得几分”,而它和真实分数差得很大,那么损失就会变大。学习就是不断微调这条线的斜率和位置,让差距越来越小。这个小小场景里,输入、输出、预测、误差、损失、优化就都已经出现了。

数学必须和代码一起检查

只读数学记号时,它会显得抽象。代码会把这种抽象表达变成可执行的步骤。尤其像 NumPy 这样的数组计算工具,会让你直接在代码里检查向量与矩阵计算。

问题情境:

  • 即使像平均值(mean)这样熟悉的数学概念,只看公式也可能显得抽象

输入(input):

  • 数字数组 x = [1, 2, 3, 4]

期望输出(output):

  • 平均值 2.5

要确认的概念:

  • 写成公式的平均值计算,也可以在代码中以同样含义执行
  • 小数组例子是把数学记号和真实计算结果连接起来的最简单起点
# 这个例子用 NumPy 数组保存学习时间数据,并检查用于平均值计算的输入值。
import numpy as np

# x 是用来确认平均值的小型数字数组。
x = np.array([1, 2, 3, 4])

# mean 是代表 x 中这些值的平均值。
mean = x.mean()

print(mean)

示例运行结果:

2.5

这段代码是用小数据去检查“平均值”这个数学概念。这里的关键点不是高级库的用法,而是公式、数据、代码其实是在用不同方式表达同一个计算。当读者看到 2.5 的那一刻,就能直接确认:平均值已经从抽象符号回到了真实数值。

  1. 公式会用压缩形式展示计算结构。
  2. 数据提供成为计算对象的数值。
  3. 代码把计算实际执行出来。
  4. 结果让你确认这个计算到底做了什么。

Part 2 会不断把这四者连起来。数学不会被单独留下来作为“必须理解的理论”,而会通过小代码和数据重新被确认。

阅读 AI 计算所需的数学路径

Part 2 并不是按“深度证明数学”的顺序来安排,而是按“恢复阅读 AI 计算”的顺序来安排。

  • 公式记法:重新阅读变量(variable)、函数(function)、表达式(expression)、sigma、极限(limit)
  • 线性代数(linear algebra):从数据表示的角度看标量(scalar)、向量(vector)、矩阵(matrix)、矩阵乘法(matrix multiplication)
  • 导数与梯度:把变化率(rate of change)、斜率(slope)、梯度(gradient)看成学习方向的语言
  • 概率与统计:把不确定性(uncertainty)、分布(distribution)、平均值(mean)、方差(variance)、样本(sample)看成数据解释的语言
  • 优化:把它看成反复寻找能够降低损失的数值的方法
  • Python 与 NumPy:确认公式怎样变成可执行代码

这个顺序不是“先学完数学,再去学 AI”。它是为了给读者建立一条最小路径,使他们在读 AI 文档时遇到的数学记号可以重新被使用。

如何减轻“我不会数学”的负担

很久以前学过的数学,大多会在记忆里变得模糊。尤其是极限、sigma、导数、矩阵这类表达,即使名字听起来熟悉,它们的实际用法也可能不能立刻回想起来。这里不会把这种情况视为失败。

但下面两点必须区分。

  1. 在 Part 2 中,看不懂所有证明是被允许的。
  2. 反过来,如果你完全读不出一个公式到底在算什么,那么在读机器学习和深度学习时就会反复卡住。

因此,目标不是成为一名精通数学的专家,而是能够读懂 这个公式在解释数据、模型、损失、学习中的哪一部分。

损失函数把预测值与真实值之间的差异压缩成公式

从前面的学习时间与小测分数表中,选出真实分数为 55 分 和 65 分 的两名学生。假设模型预测两名学生都会得到 60 分。

学生 真实分数 预测分数 预测 − 真实 差的平方
A 55 60 5 25
B 65 60 −5 25

直接把差相加,得到 5 + (−5) = 0。两个预测都与真实分数相差 5 分,但只看总和,却像是没有差异。将每个差平方后,得到 25 + 25 = 50,正负差值就不会相互抵消。再除以学生人数 2,得到 25。这个例子把这样算出的差的平方的平均值用作损失。

把这段计算压缩成公式,就是:

\[ L = \frac{1}{n}\sum_{i=1}^{n}(\hat{y}_i-y_i)^2 \]

y_i 是一名学生的真实分数,\(\hat{y}_i\) 是对这名学生的预测分数。n 是学生人数,L 是损失。\(\sum\) 表示把每名学生对应的计算结果全部相加。因此,这个公式就是把表格最后一列相加,再除以学生人数。代入上面的数值,得到 L = (25 + 25) / 2 = 25。

假设调整模型后,预测分数分别变为 56 分 和 64 分。按同一个标准计算,损失为 (1² + (−1)²) / 2 = 1。这个值小于原来的 25,因此,对于这两名学生,可以判断调整后的预测更接近真实分数。

即使学生人数增加或分数改变,也可以使用同一个公式。用这个公式共享计算标准,其他人就能根据相同的数据和预测值计算损失,并比较模型调整前后的结果。

检查清单

  • 能说明在 AI 里,数学主要是用来阅读计算结构的语言,而不主要是证明。
  • 能把公式(formula)、数据(data)、代码(code)、输出(output)连起来看。
  • 能说明向量(vector)、矩阵(matrix)、张量(tensor)表达的是数据可计算的形状。
  • 能把学习(learning)解释成“为了降低损失而调整参数”的过程。
  • 能说明为什么 Part 2 要重新处理线性代数、导数、概率与统计、优化。
  • 能用数学在 AI 中承担 表示、比较、调整 三项工作这一条线来解释 Part 2。
  • 能说明为什么 sigma、向量与矩阵、导数、概率与统计会一起在同一个 Part 里再次出现。

来源与参考资料