实验 1-1 缩放因子与 softmax 饱和

拖动 dk,看 logits 怎么变宽、softmax 怎么变尖、梯度怎么塌。全部现算,不查表。

64
8
7

① logits 的分布

单个 logit = q·k。理论标准差:不缩放 √dk,缩放后 1。

不缩放 除以 √dk

② softmax 输出

同一组 logits 归一化后的权重分布。看它有多接近 one-hot。

不缩放 除以 √dk

③ softmax 雅可比的 Frobenius 范数,随维度变化

Jij = pi(δij − pj)。这个范数越小,误差信号越难穿过 softmax 往回传。

动手:把 dk 从 1 慢慢推到 512。
① 蓝线(缩放后)的梯度范数几乎是一条水平线—— 全程只变动 1.1 倍,它不随维度变化。
② 红线(不缩放)单调下坠,dk 从 1 到 512 共掉约 6 倍(0.34 → 0.055)。
然后想一个问题:如果只是"让梯度变大"就够了,为什么不除以 dk(那会让梯度更大)? 把 dk 推到 512 再对比两线的logits 标准差,答案就在①里。