手写 Softmax 数值防溢出与交叉熵算子 (Numerically Stable Softmax & Cross-Entropy Implementation) 是考察 MLE 工程师对底层浮点数精度限制(IEEE 754 浮点下溢与上溢)与数学恒等变换深刻理解的必考代码题;朴素 Softmax
σ(z)i=∑ezjezi 当输入包含大数(如
zi=1000)时,
exp(1000) 会瞬间导致浮点上溢返回 `inf`,引发除以 `inf` 产生 `NaN`;数值稳定方案利用平移不变性恒等式:
softmax(z)=softmax(z−c),令常数
c=max(z),将所有指数输入平移至
(−∞,0] 区间(
exp(0)=1,最大值绝对不会超过 1),彻底杜绝溢出;并在计算 Cross-Entropy 时结合 Log-Sum-Exp 技巧避免对 0 取对数导致
−∞。