English version: AI Learning Roadmap 02 · Mathematics for AI
02 · AI 数学基础
AI 学习路线图 · 第 2 站(共 9 站)
为什么这一站重要
这是大多数人最害怕的部分,而让它变简单的秘密是:你只需要四样工具,而且每一样都有大白话的含义。 机器学习归根结底是三个操作:
- 用向量和矩阵表示事物(线性代数)。
- 用梯度衡量模型错得多离谱、并改进它(微积分)。
- 用概率与统计推理不确定性和数据。
优化——梯度下降——是三者的交汇点:它是让每个模型学会学习的算法。
你不需要成为数学家。你需要的是精确到足以用来推理的直觉。这一站里每个公式都先讲"它实际是干什么的",公式其次。而且你会亲手用 NumPy 实现其中最关键的几个。
核心概念
1. 线性代数 —— 数据的语言
向量就是一串数字。 在 AI 里,一个向量 = 一个东西:一个数据点、一个词、一张展平的图像。[0.2, 0.8, 0.5] 可能是某个客户的三个特征。矩阵就是一组向量组成的表格——你的整个数据集,按行存放。
三个真正重要的运算:
- 向量加法与缩放 —— 组合或拉伸数据。两个向量相加是平移一个点;乘以标量是拉伸它。
- 点积 —— 整个 AI 界的主力运算。
a · b = Σ aᵢbᵢ——对应分量相乘再求和。它的含义:两个向量同向的程度——一种相似度度量。每个神经网络层都在算点积。每次嵌入相似度都是一个点积。 - 矩阵乘法 —— 一次完成大量点积的紧凑写法。
Wx(权重矩阵乘以输入向量)恰好就是神经网络一层做的事:W的每一行是一组权重,结果是一串加权和的向量。理解这一句话,你就理解了神经网络的全部架构:层就是带可学习权重的矩阵乘法。
还会经常遇到的两个概念:
- 范数 —— 向量的"长度"
‖v‖。欧几里得范数就是直线距离。处处用于衡量误差和归一化。 - 特征值/特征向量与 SVD —— 矩阵的深层结构:这个变换在哪些方向上拉伸得最厉害? 你不需要手算它们,只需要知道它们存在,因为它们是**主成分分析(PCA)**的引擎——只保留数据最重要的方向来做压缩——也支撑着很多推荐和压缩系统。
**你会用在哪里:**每个数据集都是一个矩阵;每个嵌入(词、图像、文档)都是一个向量;每次相似度搜索都是点积;每个神经网络都是矩阵。
2. 微积分 —— 改进的语言
导数回答一个问题:如果把输入轻轻动一下,输出会变多少? 它是一个变化率——一条斜率。
在机器学习里我们有一个损失函数:一个数字,表示模型在数据上错得多离谱。我们想让它变小。为此我们需要知道:对于模型的每个旋钮(参数),该往哪个方向拧,拧多大力?
- 梯度是把它推广到很多旋钮同时存在的情况:一个由每个参数的偏导数组成的向量,指向损失上升最快的方向。我们朝反方向走——所以叫梯度下降。
- 链式法则是深度学习中最重要的一个想法。它让我们能计算"改变早期某一层的权重如何影响最终损失"——把变化率逐层相乘。这正是反向传播:链式法则从输出端一路应用回网络。如果你真正理解了链式法则,你就理解了神经网络是如何学习的。
- 偏导数 —— 固定其他变量、只对某一个变量求导。网络里每个权重都有自己的偏导数。
记住这个直觉:学习 = 反复(1)计算模型错得多离谱,(2)计算梯度——改进的方向,(3)朝那个方向迈一小步。
3. 概率与统计 —— 不确定性的语言
AI 处理的是不确定的预测:"这张图有 87% 的概率是猫。"概率就是表达和组合这种不确定性的方式。
- 概率基础 —— 事件、
P(A)、概率之和为 1 的事实。 - 条件概率与贝叶斯定理 ——
P(A|B) = P(B|A)P(A) / P(B)。大白话:看到新证据 B 之后,你该如何更新对 A 的信念? 贝叶斯定理是"学习"的形式化版本:从一个先验信念出发,观察数据,得到后验信念。它支撑朴素贝叶斯分类器,而贝叶斯的精神——从证据中更新——正是你思考每个模型输出时应该有的方式。 - 随机变量与分布 —— 随机变量是一个带有概率的值。正态(高斯)分布是钟形曲线——测量噪声和模型权重初始随机性的默认假设。伯努利/二项分布描述是非对错和成功次数。当有人说"数据服从某种分布"时,意思是:如果我采样很多值,直方图是这个形状。
- 期望与方差 —— 期望是无限次采样后你会得到的平均值(分布的"中心");方差是数据有多分散。当你对一批损失值取平均时,你就是在估计一个期望。
- 极大似然估计(MLE) —— 统计学和大部分训练背后的原则:选择让观测数据出现概率最大的参数。 训练一个模型,数学上就是寻找让训练数据概率最大的参数(深度学习里略有变化,但精神完全一致)。
- 假设检验基础 —— p 值和统计显著性,用一段话讲:它们问的是"如果其实什么都没发生,这个结果有多令人意外?" 你需要掌握到能批判性地读论断的程度(并且知道你在网上看到的大多数 A/B 测试结果都值得怀疑)。
4. 优化 —— 学习实际如何发生
梯度下降是训练一切的算法。完整流程如下:
- 初始化参数(随机,或用一个聪明的方案)。
- 计算模型在数据上的损失。
- 计算损失对每个参数的梯度。
- 更新每个参数:
θ ← θ − η · ∂L/∂θ——朝梯度的反方向迈一步。 - 重复,直到损失不再下降。
两个旋钮比其他所有都重要:
- 学习率
η—— 步长。太大:损失爆炸或震荡。太小:训练如蜗牛。选一个好的学习率(并安排它随时间衰减)是整个深度学习里最重要的实用技能之一。 - 随机 vs 批处理 —— 每一步都在整个数据集上算梯度太贵;每次只用一个随机样本(随机梯度下降,SGD)或一小批随机样本,噪声大但快,而且噪声反而有助于跳出糟糕的局部极小值。
你还会听到凸性——对于凸损失(只有一个碗),梯度下降可证明达到全局最小值;对于非凸损失(很多山谷——深度学习的真实世界),它找到的是不错的局部最小值。实践在乎"好",不在乎"可证明最优"。
工具与技能
- NumPy —— 基础数组库。向量和矩阵就是 NumPy 数组。要掌握:创建数组、shape、索引、广播、
dot、mean、std、random。 - Matplotlib —— 绘图。你会一直可视化数据和训练曲线。要掌握:折线图、散点图、直方图、子图。
- 可选但推荐:Jupyter 笔记本作为这一切的草稿纸。
动手任务
- **向量直觉(第 1–2 天)。**在 NumPy 里:创建向量,计算点积、范数、向量夹角。画出两个向量及它们的和。让自己确信点积真的衡量相似度(让一个向量和自身做点积,再和它的反方向做点积对比)。
- **矩阵作为变换(第 3 天)。**拿一个 2×2 矩阵,把它作用在一组网格点上,画出结果。亲眼看到矩阵拉伸和旋转空间。这就是网络每一层对你的数据所做的事。
- **从零实现梯度下降(第 4–8 天)—— 里程碑。**生成合成数据
y = 3x + 2 + 噪声。不借助任何机器学习库,写梯度下降通过最小化均方误差来拟合一条直线。画出损失曲线下降、拟合线收敛的过程。这一个项目教给你的"所有 AI 如何学习",比看一个月视频还多。 - **贝叶斯实战(第 9 天)。**经典题:某种病影响 1% 的人;检测准确率 95%。如果检测呈阳性,你真正患病的概率是多少?用贝叶斯定理算。这个(令人惊讶且重要的)答案就是为什么不能盲目相信原始检测结果。
- **分布(第 10 天)。**从正态分布采样 10,000 个值,画出直方图。不断增加样本量,看直方图变成钟形曲线——大数定律变得可见。
里程碑检查点
满足以下条件,你才能进入第 3 站:
- 你用 NumPy 从零实现了梯度下降,而且它真的收敛了(损失下降、线拟合成功)。
- 你能用自己的话解释链式法则在反向传播中的作用。
- 你能说出点积的含义,而不只是怎么算。
- 你能手算一个贝叶斯定理的例子并解释结果。
- 你能读懂
θ ← θ − η·∇L并说出它用大白话在做什么。
精选资源
- 3Blue1Brown —— 线性代数的本质和微积分的本质—— 地球上最好的直觉;先看视频,再读别的。
- 《Machine Learning 的数学》(Deisenroth, Faisal, Ong)—— 深度恰到好处;免费 PDF。读第 2–6 章(线性代数、微积分、概率、优化)。
- 可汗学院 —— 概率与统计—— 补缺用;直接跳到上面这些主题,其余略过。
- NumPy 快速上手—— 官方十分钟导览;尽早做一遍。
时间规划
- **总计:**约 4 周,每周 10–15 小时。
- **建议安排:**第 1 周 → 线性代数 + 任务 1–2;第 2 周 → 微积分直觉 + 梯度下降任务;第 3 周 → 概率与统计 + 贝叶斯任务;第 4 周 → 优化深入、复习、里程碑。
衔接下一站
你手里现在有了每个模型都会用的三样工具:用向量表示、用梯度改进、用概率处理不确定性。第 3 站让它们真正开始工作——机器学习就是在数据规模上应用这些思想。你会再次在第一个小时就遇到梯度下降,只不过这次是 scikit-learn 帮你干重活,而你会理解它底下在做什么。
No comments yet.