跳转至

Part 2 总结:基础恢复整理

Section ID: P2-summary Version: v2026.09.15

数学压缩了计算过程。公式中的计算规则可以用 Python 执行,NumPy 数组和 Pandas 表格则表示参与计算的数值结构。图表展示结果的变化与分布,运行环境和 Git 历史帮助追踪重现结果所需的条件。

计算与工具的联系

类别 需要记住的观点
公式与代码 公式表达计算意图,代码将计算转换为可执行的步骤。
对数与指数 对数是指数运算的逆运算,也会在概率分数和损失的表达中再次出现。
变量与数据 公式中的变量在代码中可以表现为数值、数组、表格或数据集。
向量与矩阵 向量和矩阵通过位置、方向、轴和形状组织多个数值,使其能够参与计算。
内积与距离 内积将向量之间的关系归结为一个数,距离与相似度则回答不同的比较问题。
导数与梯度 导数用于理解变化率,梯度则一起描述多个方向的变化。
复合函数与链式法则 它们帮助理解多个计算步骤相连时,变化率如何传递。
损失与优化 损失用数值表示当前结果有多差,优化则是寻找更好数值的过程。
概率与统计 概率用数字表达不确定性,统计从一组数据中提炼可用于判断的概括。
Python 与运行环境 即使代码相同,在 Colab、本地计算机、终端、笔记本和虚拟环境中的执行背景也不同。
NumPy 与 Pandas NumPy 支持数组计算,Pandas 帮助读取和整理表格数据。
Matplotlib 与可视化 图表让数值的模式、分布、关系和训练过程变得可见。
Git 与可复现性 Git 帮助追踪原稿、代码、图像和依据笔记的变更顺序。

概率部分区分了重复观测的长期频率与对不确定命题的相信程度。贝叶斯规则是在获得新证据后更新条件概率的计算方法。导数与梯度描述输入或参数变化时输出如何变化;损失与优化则说明调整数值时要减小什么标准。

需要区分的概念

容易混淆的项目 区别
Python 列表与 NumPy 数组 列表的 + 表示连接,数组的 + 在形状兼容时执行逐元素加法。
表格的行与样本 学生名单的一行可以是一名学生,但传感器记录中的多行也可能共同构成一次动作。
平均值与分布 平均值相同,数值的离散程度和随时间的变化仍可能不同。
训练损失与评估结果 即使训练数据上的损失下降,也需要单独检查新数据上的性能。
相关与因果 仅凭散点图中的趋势,无法判断一个变量是另一个变量的原因。
保存文件与提交 保存更新当前文件,提交则将暂存的文件状态写入历史。

区分计算标准与变化方向

先回答下列问题,再与右侧说明比较。不仅要确认计算值,也要确认该数值可以支持什么判断。

需要确认的问题 计算与解释
向量 [1, 2] 与 [3, 4] 的内积是多少? 对应位置相乘再相加,得到 1×3 + 2×4 = 11。内积是一个数,不同于两向量之间的距离。
损失为 L(w) = (w − 3)² 时,w = 1 处的损失和导数各是多少? 损失为 4,导数为 2(w − 3) = −4。损失表示当前误差的大小,导数用于判断在当前位置应向哪个方向调整数值。
在上述条件下,以 0.1 为学习率执行一次梯度下降,会发生什么? w = 1 − 0.1×(−4) = 1.4,损失降至 2.56。这一次下降并不能保证所有学习率和函数下的损失都会下降。
[1, 3] 与 [2, 2] 的平均值相同吗?离散程度也相同吗? 平均值均为 2。对偏离平均值的距离平方求平均,分别得到 1 和 0,因此离散程度不同。
实际通过比例为 1/3,下一名学生通过的概率就一定也是 1/3 吗? 仅凭观测到的三名学生的比例,无法确定下一名学生的概率。还需要检查样本和预测对象的条件。

用小表格检查

假设根据考试前的学习时间和解题数量预测是否通过考试。前两列是输入特征,最后一列是考试后确认的正确答案。

study_hours solved_questions passed
1 5 0
2 9 0
4 16 1

predicted 是为了检查准确率计算而直接指定的示例值。下面的代码不会训练模型,也不会根据 X 生成预测。修改预测值,观察实际通过比例与准确率中哪一个发生变化。

import numpy as np

X = np.array([[1, 5], [2, 9], [4, 16]])
y = np.array([0, 0, 1])
predicted = np.array([0, 1, 1])

print(X.shape, y.shape)
print("pass rate:", y.mean())
print("correct:", predicted == y)
print("accuracy:", (predicted == y).mean())
1
2
3
4
(3, 2) (3,)
pass rate: 0.3333333333333333
correct: [ True False  True]
accuracy: 0.6666666666666666

X 包含 3 个样本、2 个特征,y 按相同顺序保存 3 个正确答案。通过标记的平均值就是实际通过比例 1/3。预测仅在第二名学生上出错,因此准确率为 2/3。通过比例和预测准确率回答的是不同问题。

把预测改为 [0, 0, 1] 后,准确率变为 1,而实际通过比例仍为 1/3。如果从输入中去掉解题数量,X 的形状就变为 (3, 1),但 3 个正确答案保持不变。比较输入变化对模型结果的影响时,应使用相同的数据划分与评估标准,并记录修改内容。

相关正文

需要确认的内容 位置
输入、正确答案与数据泄漏 P2-12.3
数组形状与轴 P2-11.2
平均值与方差 P2-5.2
内积与距离 P2-3.4
导数与梯度 P2-4.3
梯度下降 P2-6.3
损失计算 P2-15.1
执行位置与环境 P2-7.6、P2-7.7
重新运行笔记本 P2-10.3
方法与对象 P2-8.6
数据结构比较 P2-9.4
比较与保存图表 P2-13.3
变更历史 P2-14.1

尚待回答的问题

在检查小规模计算和数据结构的基础上,机器学习会从数据中学习规则,再用新数据评估这些规则。选择什么模型,如何划分训练、验证和测试数据,以及用哪些指标比较,是后续模型训练内容要回答的问题。

高等数学证明、大规模数据处理和协作自动化涉及的条件比本 Part 的小示例更广。不能假设这里运行的代码在大数据上仍具有相同的内存开销和性能。

检查清单

  • 能否区分内积计算与向量距离计算?
  • 能否利用损失值、导数和学习率解释一次参数更新?
  • 能否解释平均值相同但离散程度不同的情况,并区分观测比例与预测概率?

  • 能否解释上表的输入、正确答案和数组形状?

  • 能否分别计算实际通过比例与预测准确率,并说明两者的区别?
  • 能否检查修改输入特征或预测值后发生了什么变化?
  • 能否说明图表的轴、表格每行代表的单位以及代码的运行环境?
  • 能否在记录结果的同时保留变更条件、代码和数据版本?

来源与参考资料

本文是依据 Part 2 正文编写的原创总结。各概念的依据可在相关正文的来源与参考资料中查阅。