-
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) · 4.12 KB
/
Copy pathquiz.json
File metadata and controls
64 lines (64 loc) · 4.12 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": "为什么 GAN 训练使用非饱和的生成器损失 -log(D(G(z))),而不是 log(1 - D(G(z)))?",
"options": [
"它们在数学上不同,并产生更好的均衡",
"训练早期 D(G(z)) 接近零,因此 log(1 - D(G(z))) 的梯度消失;-log(D(G(z))) 在那里有较大梯度,所以 G 能收到有用的信号",
"它加快了判别器",
"PyTorch 要求这样"
],
"correct": 1,
"explanation": "当 D(G(z)) 很小时,这两种损失共享相同的梯度方向,但量级差异很大。log(1 - D(G(z))) 在那里梯度趋于零而停滞。非饱和形式在整个范围内都保持信息量。Goodfellow 在原论文中指出了这一改动,每个现代 GAN 都使用它。"
},
{
"stage": "pre",
"question": "DCGAN 的准则说要用带步长的卷积代替池化。为什么?",
"options": [
"池化在 GPU 上更慢",
"池化不可学习且会丢弃生成器可能需要的信息;带步长的卷积让网络学习自己的下采样,经验上能产生更清晰的生成图像",
"池化中断梯度流动",
"池化与批归一化不兼容"
],
"correct": 1,
"explanation": "最大池化是一种人为指定的下采样,除最大值外丢弃一切。在生成场景中,模型受益于一种能在步长间保留信息的可学习下采样。判别器中的带步长卷积和生成器中的带步长转置卷积,是使 DCGAN 可训练的架构改动。"
},
{
"stage": "post",
"question": "你训练一个 GAN,发现无论输入噪声如何,G 都产生几乎相同的样本。这是哪种失败?",
"options": [
"梯度消失",
"模式坍缩——G 找到了数据分布的一个狭窄区域,能持续骗过 D,因而没有探索的动力;修复办法包括谱归一化、minibatch 判别或更大的批",
"振荡",
"数据集太小"
],
"correct": 1,
"explanation": "模式坍缩是 GAN 典型的失败,表现为样本缺乏多样性。诊断很明显:输入噪声,输出相同图像。修复办法都瞄准判别器惩罚多样性不足的能力,要么让 D 更具表达力(谱归一化、minibatch 判别),要么给 G 更少的坍缩空间(更大的批、带条件的标签)。"
},
{
"stage": "post",
"question": "为什么 DCGAN 训练脚本使用 betas=(0.5, 0.999) 的 Adam,而不是默认的 (0.9, 0.999)?",
"options": [
"默认值有问题",
"较低的 beta1 减少动量;在对抗博弈中,当另一个网络的行为发生变化时,过重的动量会让每个优化器在错误方向上停留太久,从而导致不稳定",
"在 CUDA 上 Adam 只支持 beta1=0.5",
"这是教程中以讹传讹的笔误"
],
"correct": 1,
"explanation": "Adam 默认的 beta1=0.9 在大约 10 步上对梯度做平均。在平稳目标下这有帮助。但在每次 D 和 G 更新都使损失曲面发生变化的对抗博弈中,这种平均会延迟优化器的响应并导致振荡。Radford 等人发现 beta1=0.5 稳定得多,它如今已成为 GAN 的默认值。"
},
{
"stage": "post",
"question": "一位同事报告了一个 GAN:D 损失接近零,而 G 损失在训练中不断上升。发生了什么,你如何修复?",
"options": [
"两个网络都在正确地改进",
"判别器变得太强,把 G 的梯度逼到零;修复办法包括更小的 D、谱归一化、对真实标签做标签平滑(用 0.9 而非 1.0),或改用 WGAN-GP",
"生成器在正确地过拟合",
"什么都没发生——这就是均衡"
],
"correct": 1,
"explanation": "D 的损失接近零意味着 D 在真实和伪造样本上都完美。此时回传给 G 的 BCE 梯度消失:无论 G 输出什么,它看到的信号都近乎为零。修复办法是削弱 D 或使用不饱和的损失。谱归一化(限制 D 的 Lipschitz 常数)和 WGAN-GP(用推土机距离代替 BCE)是两种标准的补救方案。"
}
]
}