Softmax 数值稳定实验台

数学上等价的写法,在浮点数机器上可能有完全不同的命运。把最大的 logit 先减掉,让最大的指数恰好等于 1。

CH.07|数值稳定

两本数值账本

同一公式意图,两条计算路径。
稳定预测类别

朴素路径 风险

pᵢ = exp(zᵢ) / Σⱼ exp(zⱼ)

类别exp(zᵢ)概率
指数和:—

稳定路径 推荐

a = max(z),pᵢ = exp(zᵢ−a) / Σⱼ exp(zⱼ−a)

类别zᵢ−maxexp(·)概率
概率和:—

稳定概率分布

从 logits 直接计算交叉熵

CE = −zᵧ + logsumexp(z)= —

这里直接使用 logits,不走“先 Softmax、再取 log”的易损路径。稳定的 logsumexp 为 max(z) + log Σ exp(zᵢ−max(z))

稳定交叉熵真实类别:—

即时练习

1. 当 logits 为 [1000, 1001, 999],减去最大值后是什么?

2. 训练分类器时,交叉熵最稳妥的输入是什么?