入学诊断自测
用 15 分钟做这张卷子,目的是决定你从哪里开始:是直接通读,还是先补数学、先补编程,或直接跳到你真正关心的那一讲。
做法:闭卷、不看资料、每题 30–60 秒;不会的题直接跳过(跳过比猜更有信息量)。
一、数学与张量(5 题)
M1. 设 、, 的形状是? 呢?
M2. 写出链式法则:若 、,则 ?
M3. 一个标量函数 在 处的梯度 的几何含义是什么?
M4. 设随机变量 取 0 与 1 的概率各为 , 与 分别是多少?
M5. 张量形状 与矩阵 做矩阵乘,结果是?这一运算里「32」代表什么?
二、编程与工程直觉(3 题)
P1. 在 PyTorch 里,一行代码完成「把 x 从 CPU 搬到 GPU 并把 dtype 变成 bfloat16」:x = ______。
P2. 训练脚本出现报错 Expected all tensors to be on the same device,你的第一反应是查什么?
P3. 你有一个训练损失曲线:训练损失持续下降、验证损失第 5 轮后开始上升。用一句话说出最可能的现象和一个对策。
三、深度学习概念(7 题)
D1. 一个十层网络如果把所有激活函数都去掉,它等价于什么?
D2. 交叉熵和均方误差各自适合什么任务?为什么分类一般不直接用 MSE?
D3. 反向传播为什么比「逐参数数值求导」快得多?
D4. 卷积层比全连接层省参数的根本原因是什么(两条)?
D5. 自注意力里为什么要除以 ?
D6. VAE 的损失里为什么要有一项 KL 散度?去掉它会怎样?
D7. 「显存 16N 字节」这条经验公式里的 是什么?它适用于什么配置?
答案与解析
第一部分 · 数学与张量
第二部分 · 编程与工程直觉
第三部分 · 深度学习概念
D1. 等价于一个线性变换(多层矩阵相乘仍是一个矩阵)。→ 非线性才是深度的意义(1.2)。
D2. 交叉熵配 softmax 用于分类,MSE 用于回归。分类不用 MSE 的原因:MSE + softmax 的梯度含 因子,预测饱和时梯度消失,学习变慢。→ 1.4。
D3. 反向传播复用中间结果:一次前向 + 一次反向即可得到全部参数的梯度(代价与参数量成线性);数值求导每个参数都要独立扰动一次前向。→ 1.5。
D4. ① 局部连接(每个输出只连感受野内的输入);② 权值共享(同一个核在空间所有位置复用)。→ 因此参数量与输入分辨率无关(3.1)。
D5. 点积的方差随 线性增长,不缩放会让 softmax 进入饱和区、梯度趋零。→ 严格论证见附录 C.3。
D6. KL 项把近似后验拉向先验,使潜空间可采样;去掉它(或权重过小)退化成普通自编码器,任采样的 会落在训练未覆盖区域、解码出无意义结果;权重过大则后验坍塌。→ 4.3。
D7. 是参数量;该口径对应「混合精度训练 + Adam 系优化器 + 保留 fp32 主权重」(参数 + 梯度 + 优化器状态 + 主权重 = 字节)。换 8-bit 优化器约降到 。→ 9.1、工具箱。
计分与去向
| 得分(共 15 题) | 建议起点 |
|---|---|
| 13–15 题 | 基础扎实:直接从第 1 讲导览通读;重点花在推导与工程细节上,工具箱与附录 C会是你的主要增量 |
| 9–12 题 | 概念在但细节松:先读 1.1–1.5(把范式焊牢),再按方向跳到第 2 或第 3 讲 |
| 5–8 题 | 先补基础:读先修工具箱,然后从第 1 讲完整通读;每节都做「即时自测」 |
| < 5 题 | 从零开始:先修工具箱 → 第 1 讲 → Lab 1;宁慢勿跳,前五讲的概念是后面所有内容的语法 |
| 错在哪 | 回去补 | 立刻做 |
|---|---|---|
| M1 / M5 | 1.1 形状约定、先修工具箱的线性代数部分 | 手推三个矩阵乘的形状 |
| M2 / M3 | 1.5 反向传播 | 手推一次两层网络的反向传播 |
| M4 | 先修工具箱的概率部分 | 推导「批大小与梯度方差」的关系 |
| P1 / P2 | 工具箱第一、二节 | 搭一个最小训练脚本并跑通 |
| P3 | 工具箱、1.7 | 写出你自己的诊断顺序(≥4 步,每步带判据) |
| D1–D3 | 第 1 讲 | 做第 1 讲习题 A、B 组 |
| D4 | 3.1、3.2 | 算一次卷积的输出尺寸与参数量 |
| D5 | 2.4 | 推一遍 |
| D6 | 4.3 | 写出 ELBO 的两项 |
| D7 | 9.1 | 对 7B 模型算一次显存账 |
它唯一的作用是给出一条省时间的路径。答错不丢人,跳过才说明你可能需要先补基础——这也是这张卷子刻意放了三道「工程直觉题」(P1–P3)的原因:这门课从第一天起就是动手的课。