4.3 三个"从未被质疑"的东西(今天才查)
★★★★
0.7k 字 ·
源文件 评审综述.md 第 167 行起 ·
discipline optim
#① 训练本来不可复现(见 3.3)—— 已修
#② pi(策略读出)是一个纯线性层
self.pi = nn.Linear(units, N_OUT) class="tok-com"># 335,954 = 4096*82 + 82,精确相等★ 而同一 base 的 LiquidNet.head 默认是非线性(head_hidden=64),
且 core/models.py 的 docstring 有项目自己的实测:
"拼接后线性读出 50.1%;槽位做外积 100.0% —— 因为「两个 one-hot 索引是否相等」线性不可分"
#③ ★★★★★ 策略头的梯度【从来回不到主干】
nn.init.zeros_(self.pi.weight) class="tok-com"># 输出层零初始化实测(sum|dL/dh|):
pi.weight 初始化 | dL/dh |
|---|---|
| 全 0(现状) | 0.000000e+00 |
| std=1e-2 | 1.38e-02 |
| std=1e-1 | 1.386 |
| 参照:价值头(一直在训主干) | 1.123 |
★★★ 也就是说:策略头从来不训练主干;
v(价值)是【唯一】在训主干的 RL 信号。 加隐藏层也没用(输出层为零则dL/dh = g·W_out·... = 0,已实测)。