课程/M03 习题答案
附录源文件:exercises/m03-答案.md

M03 习题答案

对应 m03-习题。计算题给出步骤;数值答案已用 NumPy 复核。开放题给出评分要点,不要求与文字一致。

A 概念题

  1. 数据表:4 个样本、3 个特征,第 2 行 是第二个样本。线性映射:,输入 3 维、输出 4 维。列向量组:三个 4 维列向量 、、。算子不成立: 是 ,输入输出空间不同(),不能谈「同一空间上的变换」,也没有两边逆。

  2. 列组合把求和按 (输入维度)分组:,每一项是一个列向量。行点积把求和按 (输出维度)分组:,每个输出是一次点积。两者是同一个双重和 的不同遍历顺序:人按列看几何(基向量去哪),机器按行做连续内存访问与向量化点积。

  3. 不能。取 、、。,。而逐元素积 ,。逐元素积无法表达「先 后 」的复合,所以必须用行乘列的定义。

  4. 等价条件: 可逆;;;(列线性无关)。 时若列满秩, 满足 ,是左逆;但若存在右逆 使 ,则 ,与 矛盾。所以两边逆不可能同时存在。

  5. 因为零空间是输入空间 的子空间,列空间的维数 数的是「输入中有多少维被保留」,两者合起来划分的是输入空间,所以和为 。行变换是可逆左乘,保持行空间(新行是旧行的组合,反之亦可)与零空间( 的解不变);但列空间会变: 的列空间是 ,RREF 的列空间是 。所以列空间的基要取原矩阵的主元列。

B 计算题

  1. (a) 列组合:。行点积:第一行 ,第二行 。 (b) ;。 (c) ,;,一致。

  2. (a) ,,,,所以 。 (b) 列组合:,。行组合:,。外积和:。 (c) FLOPs。

  3. (a) ,。 (b) 。验证:,。 (c) ,不可逆;取 ,。

  4. (a) 得 ; 得 ; 得 。所以 ,。 (b) 。 (c) 前代 :;;。回代 :;;。所以 ,验证 。

  5. (a) 行 2 = 行 1 + 行 3,秩为 2;消元: 得 , 得零行,再把第 1 行减去第 3 行,得 RREF 。 (b) 列空间基 、,维数 2;零空间基 ,维数 1;行空间基 、,维数 2;左零空间基 ,维数 1。 (c) ,;,。维数:,。 (d) 是第 1 列 + 第 2 列,在列空间; 若在列空间,解 得 ,代入第二式得 ,矛盾,所以不在。

C 大模型题

  1. (a) 参数量 M。 (b) ,即约 369 GFLOP。 (c) 输出形状 ;元素数 ,fp16 每元素 2 字节,共约 MB(十进制)。若用 fp32 则约 180 MB。

  2. (a) 只转置最后两维,;元素数 。 (b) fp16 占 字节,约 1.05 MB。 (c) FLOPs 。 (d) ;若 元素连续随机,秩以概率 1 恰为 64。所以一个头的 分数矩阵最多只有 64 个非零奇异值。

  3. (a) 全量 ;LoRA ;比例 。 (b) 每个 token 的全量乘法约 FLOPs;LoRA 先算 ()再算 (),共 。比例 。 (c) 推理前做一次 ,代价 ;之后用 正常前向。 的秩不超过 8,但 一般仍是满秩 4096。

D 开放题

  1. 评分要点:固定随机种子;取 都不同的随机矩阵,避免方阵掩盖转置错误;分别用循环行乘列、A @ B、列组合 A @ B[:,j]、行组合 A[i] @ B、外积和 sum(np.outer(A[:,k], B[k])) 计算,断言 np.allclose;再用 (AB)x 与 A(Bx) 对照。若只在方阵通过,常见 bug 是把 B 的行列索引写反、外积用了 B[:,k] 而不是 B[k],或把 A 的行数当成 B 的列数。

  2. 评分要点:对隐藏状态 做 SVD,画奇异值谱;用「有效秩」指标,如 ()或「保留 90% 能量所需维数」;比较通过低秩层 ()前后的谱。排除噪声:看奇异值是否有明显断崖、与同形状随机矩阵的谱对比、检查 float32/float64 下结论是否稳定、报告绝对奇异值而非只看相对比例。


有疑问的步骤建议回到对应小节:B1–B2 → 3.2/3.3;B3 → 3.4;B4 → 3.5;B5 → 3.7;C1–C3 → 3.2/3.3/3.6/3.7。

输入关键词开始搜索