-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathquiz.json
More file actions
64 lines (64 loc) · 3.8 KB
/
Copy pathquiz.json
File metadata and controls
64 lines (64 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{
"questions": [
{
"stage": "pre",
"question": "为什么扩散训练可以直接挑选任意时间步 t,而不必逐步模拟前向马尔可夫链?",
"options": [
"这是一种忽略中间步骤的近似",
"因为多次高斯加噪的复合仍然是高斯分布,从而给出一个闭式解 q(x_t|x_0) = N(sqrt(alpha_bar_t) x_0, (1 - alpha_bar_t) I),你可以一步采样得到",
"因为 x_t 与 x_0 无关",
"这是 PyTorch 的 autograd 所要求的"
],
"correct": 1,
"explanation": "反复的高斯加噪在解析上是封闭的。累积乘积 alpha_bar_t 编码了“走过 t 步后还剩多少信号”,你可以直接采样 x_t 而无需运行整条链。这就是为什么扩散训练每步是 O(1) 而非 O(T)。"
},
{
"stage": "pre",
"question": "DDPM 的神经网络实际预测什么?",
"options": [
"直接预测下一张图像 x_{t-1}",
"在第 t 步加入的噪声 epsilon,由它解析地推导出 x_{t-1} 的均值",
"输入的类别标签",
"信噪比"
],
"correct": 1,
"explanation": "DDPM 把模型参数化为预测 epsilon。给定噪声预测和噪声调度,x_{t-1} 的高斯均值和方差都是闭式的。预测 epsilon 而非 x_0 或 x_{t-1} 把损失简化为普通的 MSE,并给出数值上更好的梯度。"
},
{
"stage": "post",
"question": "为什么 DDIM 能以约少 20 倍的步数达到与 DDPM 相近的采样质量?",
"options": [
"DDIM 改变了训练目标",
"DDIM 把采样重新表述为一个确定性 ODE,其轨迹可以用少得多的步数离散化,同时几乎到达相同的终点;无需重新训练",
"DDIM 使用了更快的模型架构",
"DDIM 生成更小的图像"
],
"correct": 1,
"explanation": "DDIM 的关键观察是:反向过程在被确定性地重参数化后,变成一个少数步骤就能很好近似的 ODE。模型(权重和损失)与 DDPM 相同;不同的只是采样器。一个 DDPM 检查点可以与 DDIM、DPM-Solver 或 Euler 采样器互换使用。"
},
{
"stage": "post",
"question": "你为 T=1000 的线性 beta 调度绘制 `alpha_bar_t`,发现它在 t=600 时就降到接近零。为什么这很重要?",
"options": [
"这无所谓",
"最后 40% 的时间步几乎不增加信号;训练那些时间步是在教网络去对已经近似 N(0, I) 的噪声去噪,浪费了模型容量。余弦或 sigmoid 调度通过更均匀地分布加噪来修复这一问题",
"alpha_bar_t 在末尾必须为零",
"PyTorch 要求使用线性调度"
],
"correct": 1,
"explanation": "线性 beta 调度让扩散过程过早结束。到 t=600 时信号已被破坏;在 t=600-1000 区间训练和采样毫无意义。余弦调度(Nichol & Dhariwal)让信号保留得更久,这就是为什么现代模型使用它们,尤其是在较低分辨率下。"
},
{
"stage": "post",
"question": "为什么时间条件是通过正弦嵌入而不是独热时间步加入 U-Net 的?",
"options": [
"独热向量太大",
"正弦嵌入关于 t 是平滑的,这让网络能在它未精确见过的时间步之间插值,并编码了架构可在多个深度以加法方式使用的尺度信息",
"BatchNorm 要求使用正弦嵌入",
"独热会违反链式法则"
],
"correct": 1,
"explanation": "正弦嵌入给网络提供了 t 在多个频率上的连续表示。任意时间步都是该嵌入空间中的一个唯一点,相邻的时间步对应相邻的嵌入。这让模型能用远少于逐时间步可学习嵌入的参数,泛化到所有 T 值。与 transformer 位置编码是同一思路。"
}
]
}