两行代码写数值稳定的 softmax:减最大值防溢出的数学原理

cneuralnetwork · x · 2026-10-29

作者用两行 PyTorch 演示数值稳定的 softmax 写法,并解释为什么要减去最大值:softmax 计算 e^x/Σe^x,当 x 很大时 e^x 会溢出为无穷大产生 NaN;而对所有 logit 减去同一常数不改变 softmax 结果,因为 e^(-c) 因子在分子分母中约掉。取 c = max(x) 后最大指数变为 e^0 = 1,其余指数均 ≤1,从而保证训练稳定。配图给出了完整实现代码。

原文链接 →

「研究」频道最新

更多「研究」频道 AI 资讯 →