4 AI 数学:最小必要基础

第 4 章只解决一件事:让模型里的数学变成能运行、能解释的工具,而不是一面公式墙。
先看模型数学闭环

先看图。本课程里大多数 AI 数学都服务于这个闭环:
表示数据 -> 衡量不确定性 -> 衡量损失 -> 更新参数
向量和矩阵负责表示数据,概率负责表达不确定性,损失告诉模型错得多不多,梯度告诉模型往哪里改。
学习顺序与任务表
先学理论,再做完整工作坊。工作坊放在最后,因为它是把这些概念串起来,而不是从零介绍概念。
| 页面 | 跟着做 | 留下的证据 |
|---|---|---|
| 4.1 线性代数 | 用向量、矩阵、点积、范数和余弦相似度比较样本 | 一次向量相似度计算 |
| 4.2 概率与统计 | 模拟不确定性、分布、均值、方差、熵和损失 | 一条概率或熵的说明 |
| 4.3 微积分与优化 | 跟踪导数、梯度、学习率和梯度下降 | 一张参数更新表 |
| 4.4 完整数学工作坊 | 用一个可运行脚本串起向量相似度、概率、熵/损失和梯度下降 | ch04_math_workshop_evidence/ |
本章常见术语:
| 术语 | 含义 |
|---|---|
Embedding | 文本、图片、用户或物品的向量表示 |
dot product | 两个向量方向有多一致 |
norm | 向量长度或强度 |
entropy | 不确定性或惊讶程度 |
loss | 衡量模型错误的数字 |
gradient | 让数值变化最快的方向 |
GD / SGD | 梯度下降 / 随机梯度下降:沿损失往低处走 |
第一个可运行闭环
如果还没有 NumPy,先安装:
python -m pip install numpy
然后运行下面脚本。它会先让你看到:为什么向量相似度会出现在 Embedding 和检索里。
import numpy as np
python_topic = np.array([1.0, 1.0, 0.0])
data_topic = np.array([1.0, 0.8, 0.2])
unrelated_topic = np.array([0.0, 0.1, 1.0])
def cosine(a, b):
return a @ b / (np.linalg.norm(a) * np.linalg.norm(b))
print("Python vs data:", round(cosine(python_topic, data_topic), 3))
print("Python vs unrelated:", round(cosine(python_topic, unrelated_topic), 3))
预期输出:
Python vs data: 0.982
Python vs unrelated: 0.071
代码很小,但这个想法后面会反复出现在 Embedding、检索、推荐、注意力和 RAG 里。
常见失败
| 现象 | 先检查什么 | 常见修复 |
|---|---|---|
| 公式太抽象 | 它支持哪个模型动作 | 翻译成表示、比较、衡量不确定性、衡量损失或更新参数 |
| 向量例子看不懂 | 每个维度是什么意思 | 计算前先给维度写标签 |
| 概率概念混在一起 | 什么是随机变量,什么是事件 | 用小表列出样本、结果和概率 |
| 梯度下降发散 | 学习率是否太大 | 每步打印或画出 loss,并调小学习率 |
| 工作坊像魔法 | 是否跳过了理论 | 先读 4.1、4.2、4.3 的路线页 |
通关检查
能回答下面五个问题,就可以进入第 5 章:
- 一个样本怎样变成向量?
- 为什么模型输出可以理解成概率或置信度?
- 损失衡量的是什么?
- 梯度怎样告诉参数往哪里移动?
- 能不能运行 4.4 完整数学工作坊,并解释生成文件?
需要打印式清单时,打开 4.0 学习指南与任务单。下一章会把这些数学直觉落到 sklearn 模型训练和评估里。