-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathquiz.json
More file actions
62 lines (62 loc) · 2.76 KB
/
Copy pathquiz.json
File metadata and controls
62 lines (62 loc) · 2.76 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
[
{
"question": "如果把神经网络中所有权重都初始化为零会发生什么?",
"options": [
"网络正常训练但很慢",
"所有神经元计算出相同的输出、收到相同的梯度,因此网络每层实际上只有 1 个有效神经元",
"网络发散",
"零初始化是推荐的默认做法"
],
"correct": 1,
"explanation": "权重为零时,一层中的每个神经元都计算相同的函数、收到相同的梯度并以相同方式更新。这种“对称性”意味着数百个参数表现得像一个参数。",
"stage": "pre"
},
{
"question": "为什么随机权重初始化的尺度很重要?",
"options": [
"更大的权重训练更快",
"如果方差太大,激活值会爆炸;如果太小,激活值会消失——两者都会阻碍训练",
"尺度只对输出层重要",
"只要权重非零就无所谓"
],
"correct": 1,
"explanation": "每一层把方差乘以 fan_in * Var(w)。如果这个乘积 > 1,信号会随层数指数级爆炸;如果 < 1,则会消失。恰当的初始化使这个乘积恰好为 1。",
"stage": "pre"
},
{
"question": "Kaiming/He 初始化方差的公式是什么?",
"options": [
"Var(w) = 1/fan_in",
"Var(w) = 2/fan_in",
"Var(w) = 2/(fan_in + fan_out)",
"Var(w) = 1/(fan_in + fan_out)"
],
"correct": 1,
"explanation": "Kaiming 初始化使用 Var(w) = 2/fan_in。系数 2 补偿了 ReLU 把一半激活值置零(负值变为 0)的效应,这实际上把 fan_in 减半了。",
"stage": "post"
},
{
"question": "什么时候应该使用 Xavier/Glorot 初始化而不是 Kaiming/He?",
"options": [
"总是——Xavier 在任何情况下都更好",
"当使用 sigmoid 或 tanh 激活时,它们不像 ReLU 那样把一半输出置零",
"在小数据集上训练时",
"使用 Adam 优化器时"
],
"correct": 1,
"explanation": "Xavier 初始化使用 Var(w) = 2/(fan_in + fan_out),是为在零附近近似线性的激活(sigmoid、tanh)设计的。Kaiming 多出的系数 2 补偿了 ReLU 的半置零效应,而 Xavier 不需要这个。",
"stage": "post"
},
{
"question": "为什么 GPT-2 把残差层权重按 1/sqrt(2N) 缩放?",
"options": [
"为了加快训练",
"每次残差相加都会增加方差,因此缩放可防止累积信号在 N 层中无界增长",
"为了减少参数数量",
"为了改善分词"
],
"correct": 1,
"explanation": "残差连接把子层输出加到输入上:x = x + sublayer(x)。每次相加都会增加方差。有 N 个残差层时,方差会与 N 成正比增长。按 1/sqrt(2N) 缩放可保持信号稳定。",
"stage": "post"
}
]