P01 Practical 1:不计分,但期末的数学题全在这里
线代、微积分、概率、统计四节手算,外加一道 KNN 编程题的实测结论。
一句话版
这份练习不计分、不用交,但期末闭卷考的数学工具全在这五节里,做不动哪一节就是这学期要补的哪一块。
题目地图
四节数学题加一道编程题,考的是工具熟练度,不是概念理解。
| 节 | 题目 | 考什么 | 主要失分点 |
|---|---|---|---|
| 线性代数 | 内积、矩阵乘法、逆、行列式、秩 | 形状与那条等价链 | 算完不看形状,左乘右乘混用 |
| 微积分 2.1 | 一元函数在两个闭区间上的最值 | 驻点加端点 | 只找驻点,不比端点 |
| 微积分 2.2 | 梯度、Hessian、临界点分类 | Hessian 判定表 | 把梯度写成行向量、忘了 Hessian 对称 |
| 微积分 2.3 | 拉格朗日乘子求约束临界点 | ∇f = λ∇g 的联立 | 解出 t 后忘了代回约束验算 |
| 概率 | 六个分布的公式、贝叶斯两问 | 全概率展开 | 分母直接写成边缘概率 |
| 统计 | 均值中位数方差、标准化、无偏性 | n 与 n−1 的差别 | 标准化时除成了方差 |
| 编程 | iris 数据集上手写 KNN | 打乱行而非打乱特征 | 报告单次划分的准确率 |
数学那四节讲师给了答案文档,但有两处没覆盖:六个概率分布的公式(题目要求写出来,答案只重复了题面)和拉格朗日那一整题。下面把这两处补齐了。
概念卡
1. 形状检查与那条等价链(Linear Algebra)
人话定义:矩阵题算完先看形状对不对,形状不对说明式子写反了。
例子:给定 X = [1 2; 3 4],y = [3, 1]ᵀ,z = [2, 3]ᵀ。y · z = 3·2 + 1·3 = 9,是一个标量,等价写法 ⟨y, z⟩、yᵀz、zᵀy 都要认得。Xy = [5, 13]ᵀ 形状 2×1,zᵀX = [11, 16] 形状 1×2——同一个 X,左乘右乘连维度都不同,这是本题真正的考点。另一条要背的等价链是:det ≠ 0 ⟺ 可逆 ⟺ 满秩 ⟺ 各列线性无关。这里 det(X) = 1·4 − 2·3 = −2 ≠ 0,所以 rank(X) = 2。
常见误解
以为形状检查只是细节 → 后面写神经网络前向传播时,一层的输出到底是 Wx 还是 xᵀW,靠的正是这一步,形状对不上就说明写反了。二阶逆的公式也顺手记牢:[a b; c d]⁻¹ = 1/(ad−bc) · [d −b; −c a],算完乘回去看是不是单位阵,考场上花十秒验算比事后发现符号错划算。
2. 闭区间最值的三步套路(Extrema on a Closed Interval)
人话定义:驻点定一端,端点定另一端,两边比大小。
例子:f(x) = x³ − 3x + 7,f′ = 3x² − 3,驻点 x = ±1。在 [0, 2] 上只有 x = 1 落在区间内,f″ = 6x 在该点为 6 > 0,是极小值点,f(1) = 5;最大值只能出现在端点,f(0) = 7、f(2) = 9,所以最小 5、最大 9。在 [−2, 0] 上落在区间内的是 x = −1,f″ = −6 < 0,是极大值点 f(−1) = 9;最小值在端点,f(−2) = 5、f(0) = 7。
常见误解
只找驻点不比端点 → 这是这类题的标准失分点。连续函数在闭区间上的候选包括驻点、不可导点与两个端点;逐个比较函数值。极大、极小可能都在内部,不能套「另一端必在端点」。
3. 梯度、Hessian 与判定表(Multivariate Calculus)
人话定义:梯度是一阶偏导排成的列向量,Hessian 是二阶偏导排成的对称矩阵,前者找临界点,后者判类型。
例子:f(x, y) = x³ + y² + xy。∇f = [3x² + y, 2y + x]ᵀ,在 (2, 3) 处等于 [15, 8]ᵀ,形状 2×1。H = [6x 1; 1 2],在 (0, 0) 处等于 [0 1; 1 2],形状 2×2 且对称(混合偏导与求导次序无关)。判定表要背:正定为局部极小,负定为局部极大,不定为鞍点,半定则判据失效、要看更高阶。
常见误解
把 Hessian 写成向量,或让梯度方向与题目约定不一致 → 先检查维度与转置;梯度也有行向量约定,关键是前后一致。鞍点附近梯度可能很小,给优化带来困难;momentum 和 Adam 并不保证逃离所有鞍点。这道数学题也为后面的优化方法作铺垫(补充)。
4. 全概率与无偏性(Probability & Statistics)
人话定义:贝叶斯的分母几乎总要用全概率公式拆开;除以 n 的方差会系统性偏小。
例子:P(A|B) = P(B|A)·P(A) / P(B),其中 P(B) = Σᵢ P(B|Aᵢ)·P(Aᵢ),分母不展开是最常漏的一步。统计那节的五个分数 {6, 7, 5, 3, 8}:均值 5.8,中位数 6,除以 n 的方差 14.8/5 = 2.96,标准差约 1.72;若除以 n−1 得 3.7,标准差约 1.92。均值估计量无偏(E[x̄] = μ),而除以 n 的方差有偏,E[V] = ((n−1)/n)·σ²。
常见误解
想不通方差为什么偏小 → 偏差算的是相对于样本均值而不是真实 μ 的离差,而样本均值本身就是让平方和最小的那个点,于是天然偏小,除以 n−1 恰好补上缺口。这和「训练误差是乐观估计」是同一个道理:同一批数据既估参数又评效果,结果一定偏乐观,这正是必须划分训练集与测试集的理由。
逐题拆解
2.3 拉格朗日乘子(答案文档完全没有覆盖这一题)。求 f(x,y,z) = (x+1)² + (y+2)² + (z−2)² 在约束 g = x² + y² + z² − 36 = 0 下的临界点。构造 ∇f = λ∇g 逐分量写出:2(x+1) = 2λx、2(y+2) = 2λy、2(z−2) = 2λz,整理成 x(1−λ) = −1、y(1−λ) = −2、z(1−λ) = 2。令 t = 1/(λ−1),三式化为 x = t、y = 2t、z = −2t,代回约束得 9t² = 36,t = ±2。两个临界点 (2, 4, −4) 与 (−2, −4, 4),对应 f = 81 与 f = 9。
几何验算比代数更快,也更适合考场自查:f 就是点 (x, y, z) 到定点 P = (−1, −2, 2) 的距离平方,约束是半径 6、以原点为心的球面。|P| = √(1+4+4) = 3 < 6,P 在球内,所以球面上离 P 最近的点距离 6 − 3 = 3(f = 9),最远的距离 6 + 3 = 9(f = 81),和解出来的两个值完全对上,且这两点正是过原点与 P 的直线跟球面的两个交点。
3.1 六个分布的公式(题目要求默写,答案文档只重复了题面)。Uniform [−1,1]:p(x) = 1/2,区间外为 0。Univariate Gaussian:p(x) = (1/√(2πσ²))·exp(−(x−μ)²/(2σ²))。Laplace:p(x) = (1/2b)·exp(−|x−μ|/b)。Bernoulli:p(x) = θˣ(1−θ)^(1−x),x ∈ {0,1}。Binomial:p(k) = C(n,k)·θᵏ(1−θ)^(n−k)。Multivariate Gaussian:p(x) = (2π)^(−D/2)·|Σ|^(−1/2)·exp(−½(x−μ)ᵀΣ⁻¹(x−μ))。这张表后面会反复回来:平方损失来自高斯假设,交叉熵来自伯努利假设,L2 正则对应高斯先验,L1 正则对应拉普拉斯先验。
3.2 贝叶斯两问。第一问:均匀硬币抛 5 次,A 是第一次为正面,B 是总共 3 正 2 反,求 P(A|B)。走公式:P(A) = 1/2,P(B) = C(5,3)/2⁵ = 10/32,P(B|A) = C(4,2)/2⁴ = 6/16,得 3/5。更快的算法是把条件当成在 C(5,3) = 10 种等可能的正面位置组合里选一种,其中第一位是正面的有 C(4,2) = 6 种,直接 6/10 = 3/5,两行写完。
第二问:帽子里一枚均匀硬币、一枚双面正面的硬币,随机取一枚抛出得正面,问取到不均匀那枚的概率。P(A) = 1/2,P(B|A) = 1,P(B) = 1/2·1 + 1/2·1/2 = 3/4,得 2/3。若结果是反面,双面正的硬币不可能出反面,似然为 0,所以 P(A|¬B) = 0。后一问才是重点:证据可以把一个假设的后验压到 0,只要该假设赋予这个观测的似然为零。这也是朴素贝叶斯要做平滑的原因——某个特征值在训练集里没出现过,似然为 0 会把整个后验乘成 0。
5. 编程题的两个结论。题目要求加载 iris 的 150 条样本、随机打乱、按 8:2 划分、用 KNN 预测并算总体准确率。讲师特别强调打乱的是行的顺序,不是每行内部的四个特征——四个特征分别是花萼长宽和花瓣长宽,一旦行内乱序,距离计算就在拿花萼长度跟花瓣宽度比。换十组随机划分实测:K = 1 与 3 平均 0.9800,K = 5 与 15 平均 0.9833,K = 30 掉到 0.9633,K = 60 明显下滑到 0.9233。结论一,K 越大越准是错的——训练集每类只有约 40 个样本,K = 60 时投票里必然混进大量另外两类的点,决策边界被抹平成欠拟合。结论二,单次划分的结果不可信——同一个 K 换个随机种子准确率能从 0.9333 跳到 1.0000,测试集只有 30 个样本,差一个就是 3.3 个百分点,要么多次划分取平均,要么做交叉验证。
课件里的坑
- [课件有误] 标准化那一问的答案文档写成除以方差 V,要让方差变成 1 应当除以标准差 √V。量纲上一眼能看出来:分子是「分」,分母若是「分²」,结果的单位就不对,以
(x − μ)/σ为准。 - [课件留白] 六个概率分布的公式题目要求写出来,答案文档只重复了题面,一个公式都没给。期末闭卷这些要能默写,上面那节已经补齐。
- [课件留白] 拉格朗日乘子那一整题在答案文档里完全没有出现。上面给了代数解和几何验算两条路。
- [课件留白] 统计第一问的答案只给了除以 n 的 2.96,没给除以 n−1 的 3.7,而紧接着的第三问问的正是这两者的差别,对照不上。
- [补充] 编程题讲师只给了要求,没有给参考实现和结果。上面那组实测数据是自己跑十组随机划分得到的,可以直接拿来对照自己的实现——数量级差很远就说明实现有问题。
- [补充] iris 的四个特征都以厘米为单位、量级相近,所以这个数据集上做不做标准化差别很小。别因此得出标准化不重要的结论,换成年龄加收入这类量纲混杂的数据差别会非常大。
课后 10 分钟:考点复习
这 10 分钟怎么用:合上页面,先默写三条——闭区间最值的三步、Hessian 判定表四行、全概率公式;再把下面的「变式题」做一遍;最后回查两处最容易错的地方——算完矩阵不看形状、标准化时除成了方差。三步做完再往下看答案。
必背
- 矩阵乘法不满足交换律,左乘右乘连形状都不同:Xy 是 2×1,zᵀX 是 1×2;写前向传播时靠形状检查判断有没有写反。
- 行列式非零 ⟺ 可逆 ⟺ 满秩 ⟺ 各列线性无关,四种说法是同一件事,题目会换着问。
- 连续函数闭区间求最值:列出区间内驻点及不可导点 → 加上两端点 → 比较所有候选函数值;二阶导不能代替全局比较。
- Hessian 判定表:正定为局部极小、负定为局部极大、不定为鞍点、半定则判据失效要看更高阶。
- 梯度是列向量、Hessian 是对称矩阵,形状写错本身就是失分点;求偏导时把另一个变量当常数。
- 拉格朗日乘子把约束优化写成 ∇f = λ∇g 逐分量联立,再代回约束;能几何解释的题用几何验算最快。
- 贝叶斯公式的分母要用全概率公式展开;似然为零的假设后验直接被压成 0,这正是朴素贝叶斯需要平滑的原因。
- 除以 n 的方差有偏且系统性偏小,E[V] = ((n−1)/n)·σ²;标准化时除以标准差 σ,不是方差。
完整例题
2.2 那道多元函数完整走一遍:f(x, y) = x³ + y² + xy,要求列出所有临界点并分类。
第一步,写出梯度。对 x 求导时把 y 当常数,y² 整项消失、xy 留下 y;对 y 求导同理。∇f = [3x² + y, 2y + x]ᵀ。
第二步,令梯度为零联立。先用线性的那一条:2y + x = 0 得 y = −x/2。代入另一条:3x² − x/2 = 0,即 x(6x − 1) = 0,得 x = 0 或 x = 1/6。对应两个临界点 (0, 0) 与 (1/6, −1/12)。
第三步,写出 Hessian 并在每个临界点上求值。H = [6x 1; 1 2]。在 (0, 0) 处 H = [0 1; 1 2],行列式 0·2 − 1 = −1 < 0,两个特征值一正一负,属于不定,判为鞍点。在 (1/6, −1/12) 处 H = [1 1; 1 2],行列式 2 − 1 = 1 > 0 且迹为 3 > 0,两个特征值都为正,正定,判为局部极小值。
第四步,回答全局最优。取 y = 0、x → +∞ 时 f → +∞;取 y = 0、x → −∞ 时 f → −∞,所以在整个 R² 上全局最优不存在。这一步题目问了就必须答,光列临界点不够。
自检:判定 Hessian 是正定还是不定,二阶情形不必真去解特征值——行列式为负就意味着两个特征值异号,直接判鞍点;行列式为正时再看迹的符号定正负定。考场上这样快得多。
变式题(先自己做)
换一个函数:f(x, y) = x³ + y² + 2xy。
(1) 写出梯度和 Hessian,列出全部临界点。(2) 逐个分类,并算出局部极小值点上的函数值。(3) 全局最优在 R² 上存在吗?给出理由。
提示
两条方程里有一条是线性的,先用它把 y 解成 x 的式子再代入另一条。分类时不必解特征值,先看 Hessian 的行列式符号。第 (3) 问要给出一条具体的趋向路径,不能只说「看起来不存在」。
参考答案与自检(非官方评分标准)
自检要点:① 联立时先用线性那条方程;② 分类的依据写成行列式与迹的符号,或写成特征值符号,两种都算对;③ 全局最优必须给出构造性的理由。
(1) ∇f = [3x² + 2y, 2y + 2x]ᵀ。由 2y + 2x = 0 得 y = −x,代入 3x² + 2y = 0 得 3x² − 2x = 0,即 x(3x − 2) = 0,x = 0 或 x = 2/3。两个临界点:(0, 0) 与 (2/3, −2/3)。Hessian 是 H = [6x 2; 2 2]。
(2) 在 (0, 0) 处 H = [0 2; 2 2],行列式 0·2 − 4 = −4 < 0,特征值一正一负,鞍点。在 (2/3, −2/3) 处 H = [4 2; 2 2],行列式 8 − 4 = 4 > 0 且迹为 6 > 0,正定,局部极小值。函数值 f(2/3, −2/3) = 8/27 + 4/9 − 8/9 = −4/27。
(3) 不存在。沿 y = 0 这条线,f(x, 0) = x³,x → +∞ 时 f → +∞、x → −∞ 时 f → −∞,函数在 R² 上既无上界也无下界,所以全局极大和全局极小都不存在。那个局部极小值 −4/27 只是局部的。
闪卡自测
1. Xy 和 zᵀX 的形状各是什么?这个差别在后面哪里用得上?
Xy 是 2×1,zᵀX 是 1×2。矩阵乘法不满足交换律,左乘右乘连维度都不同。写神经网络前向传播时判断该写 Wx 还是 xᵀW,靠的就是这个形状检查。
2. 说出「行列式非零」的三个等价说法。
可逆、满秩、各列线性无关。四种说法是同一件事,题目会换着问。本题里 det(X) = −2 ≠ 0,所以 X 可逆、rank(X) = 2。
3. 闭区间上求最值的三步是什么?哪一步最常漏?
对闭区间上的连续函数,列出内部驻点、不可导点与两端点,比较全部函数值。二阶导可辅助分类,但不能代替全局最值比较。
4. 背出 Hessian 判定表的四行。
正定(特征值全正)为局部极小;负定(全负)为局部极大;不定(有正有负)为鞍点;半定(含零特征值)判据失效,要看更高阶。
5. 二阶 Hessian 判正定还是不定,有没有不解特征值的快法?
有。行列式为负说明两个特征值异号,直接判鞍点;行列式为正时再看迹,迹为正是正定、为负是负定。考场上比解特征方程快得多。
6. 拉格朗日那题的几何验算怎么做?
f 是点到 P = (−1, −2, 2) 的距离平方,约束是半径 6 的球面。|P| = 3 < 6,P 在球内,所以球面上最近点距离 6 − 3 = 3、f = 9,最远点距离 6 + 3 = 9、f = 81,和代数解出来的两个临界值对得上。
7. 双面正硬币那题里,结果为反面时后验为什么是 0?
双面正的硬币不可能出反面,该假设赋予这个观测的似然是 0,乘进分子后整个后验被压成 0。这也是朴素贝叶斯要做平滑的原因:训练集里没出现过的特征值会让整个后验归零。
8. 除以 n 的方差为什么有偏?偏大还是偏小?
偏小,E[V] = ((n−1)/n)·σ²。偏差算的是相对于样本均值而非真实 μ 的离差,而样本均值恰是让平方和最小的那个点,所以天然偏小,除以 n−1 补上缺口。
9. KNN 那道编程题里,K 越大准确率越高吗?单次划分的准确率能报吗?
都不能。K 从 1 到 15 基本持平,30 开始掉,60 明显下滑——投票范围过大时混进大量其他类别的点,决策边界被抹平成欠拟合。单次划分也不可信,30 个测试样本差一个就是 3.3 个百分点,要多次划分取平均或做交叉验证。
下一步
先把上面那道变式题在纸上重做一遍,尤其是「不解特征值、只看行列式与迹」这条快法,期末计算题靠它省时间。六个分布的公式抄一遍贴在桌上,它们后面会以损失函数的形式再出现——平方损失来自高斯、交叉熵来自伯努利、L1 正则来自拉普拉斯。编程题那份实现如果还没跑通,先从划分函数写起:打乱行、不打乱特征、固定随机种子,这三件事做对了,后面的距离计算和投票都是几行的事。
个人整理的学习笔记,不是官方材料;数字与结论以课件和讲师为准。