既然你已经在大模型与智能 Agent 课程中总结出了实战技巧,甚至生成了避坑指南,说明你对 AI 的应用层面已经有了相当的体感。但在深入 Agent 的底层逻辑,或者尝试从零微调模型时,你可能会发现:数学是那个隐形的门槛。
不要被高等数学吓跑,做 AI 不需要你成为数学家,只需要掌握最核心的"工具数学"。这套 2 周突击计划,帮你补齐短板,让你不仅能用 Agent,还能看懂背后的原理。
第一周:微积分与线性代数(AI 的骨架)
目标:理解"变化"与"空间"
- 核心概念:导数(梯度下降的基础)、矩阵乘法(Transformer 的核心运算)、向量空间。
- 重点突破:不需要手算复杂积分,但要理解导数代表"变化率",矩阵代表"数据的变换"。
Python 实战:用代码理解矩阵运算
线性代数是深度学习的基础。PyTorch 和 TensorFlow 其实就是高效的线性代数运算库。
python
复制
import numpy as np
# 1. 向量与矩阵创建
vector_a = np.array([1, 2, 3])
matrix_b = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print("向量 A:\n", vector_a)
print("矩阵 B:\n", matrix_b)
# 2. 矩阵乘法 (神经网络中权重更新的核心)
# 注意:神经网络本质上就是无数次的矩阵乘法 + 非线性激活
result = np.dot(matrix_b, vector_a)
print("矩阵乘法结果 (B * A):\n", result)
# 3. 转置 (在 Attention 机制中非常常见)
matrix_c = np.array([[1, 2], [3, 4], [5, 6]])
print("矩阵 C 的形状:", matrix_c.shape) # (3, 2)
print("矩阵 C 转置后的形状:", matrix_c.T.shape) # (2, 3)
# 4. 广播机制 - 处理不同维度数据的技巧
# 类似于给 Batch 中的每个样本加上同一个偏置
bias = np.array([100, 200, 300])
data_batch = np.ones((5, 3)) # 5个样本,每个样本3个特征
output = data_batch + bias
print("\n广播加法结果:\n", output)
第二周:概率论与信息论(AI 的决策逻辑)
目标:理解"不确定性"与"信息量"
- 核心概念:概率分布(Softmax 的基础)、贝叶斯定理(条件概率)、期望与方差、熵(衡量信息的丰富度)。
- 重点突破:理解模型输出的
0.8不是"分数",而是"概率";理解 Loss 函数本质是在计算两个概率分布的距离。
Python 实战:从零实现 Softmax 与 交叉熵
这是大模型输出层最核心的数学逻辑,理解它你就理解了模型是如何"做选择题"的。
python
复制
import numpy as np
def softmax(x):
"""
Softmax 函数:将模型的原始输出转换为概率分布
核心数学原理:e^x / sum(e^x)
"""
# 为了数值稳定性(防止 e^x 溢出),通常需要减去最大值
exp_x = np.exp(x - np.max(x))
return exp_x / np.sum(exp_x)
def cross_entropy_loss(y_pred, y_true):
"""
交叉熵损失函数:衡量预测概率分布与真实标签的差距
核心数学原理:- sum(y_true * log(y_pred))
"""
# 加上 1e-15 防止 log(0) 导致的错误
y_pred = np.clip(y_pred, 1e-15, 1 - 1e-15)
loss = -np.sum(y_true * np.log(y_pred))
return loss
# 模拟场景:Agent 在判断用户意图
# 假设有 3 类意图:0-闲聊, 1-查询天气, 2-订票
logits = np.array([2.0, 1.0, 0.1]) # 模型的原始输出
probs = softmax(logits) # 转换成概率
print("模型预测的概率分布:", probs)
print("预测类别:", np.argmax(probs))
# 假设真实意图是"查询天气" (One-hot 编码)
true_label = np.array([0, 1, 0])
loss = cross_entropy_loss(probs, true_label)
print("交叉熵损失:", loss)
数学在 AI 中的实际应用场景
1. 梯度下降(微积分的应用)
这是 Agent 训练的核心引擎。想象你在山上(函数曲面),想要最快下山到谷底(最小 Loss)。梯度就是山势最陡峭的方向,导数告诉你每一步该怎么走。
python
复制
# 简单的梯度下降演示:求函数 f(x) = x^2 的最小值
# 数学上最小值在 x=0 处
x = 10.0 # 初始位置
learning_rate = 0.1 # 学习率(步长)
epochs = 20 # 迭代次数
for i in range(epochs):
# f(x) = x^2 的导数 f'(x) = 2x
gradient = 2 * x
# 更新参数:沿着梯度的反方向走
x = x - learning_rate * gradient
print(f"Epoch {i+1}: x = {x:.4f}, Loss = {x**2:.4f}")
print("\n最终找到的最小值 x:", x)
2. 余弦相似度(线性代数的应用)
在 RAG(检索增强生成)应用中,判断哪段文档最相关,本质上是在计算两个向量的夹角余弦值。
python
复制
def cosine_similarity(vec_a, vec_b):
"""
计算两个向量的余弦相似度
公式:(A . B) / (||A|| * ||B||)
"""
dot_product = np.dot(vec_a, vec_b)
norm_a = np.linalg.norm(vec_a)
norm_b = np.linalg.norm(vec_b)
return dot_product / (norm_a * norm_b)
# 模拟两个句子的 Embedding 向量
sentence_a = np.array([1, 2, 3]) # 比如是用户的问题
sentence_b = np.array([1, 2, 2]) # 比如是知识库中的某条文档
similarity = cosine_similarity(sentence_a, sentence_b)
print(f"两句子的相似度: {similarity:.4f}")
避坑指南:如何高效学习数学
结合你之前总结 Agent 课的经验,数学学习也有捷径:
-
不要死磕证明:工程师只需要懂"是什么"和"怎么用",把繁琐的数学推导交给理论学家。
-
代码反推数学:看不懂公式时,去查对应的 Python 代码(如
torch.nn.CrossEntropyLoss),看代码的输入输出往往比公式直观得多。 -
针对性补强:
- 做 CV(计算机视觉) :多补线性代数(卷积就是矩阵运算)。
- 做 NLP(大模型) :多补概率论和矩阵乘法(Attention 机制)。
这两周的课程,不求你掌握所有细节,但求你建立起数学直觉。当你再次看到 Agent 的架构图,或者模型训练的 Loss 曲线时,你会发现那些原本抽象的符号,都变成了你能掌控的代码逻辑。