对抗知识焦虑,从看懂这条开始
App 下载对抗知识焦虑,从看懂这条开始
App 下载
2026/11/1 · 人工智能|数值计算
AI 概念示意图,用于联想有限精度;不是实验测量图,也不代表浮点数的实际存储结构。
从“1 加上一个很小的数”出发,理解浮点舍入怎样影响模型训练,以及为什么换一种等价写法可能保留微小梯度。
训练模型时,我们常把“损失接近零”看作进步。不过,计算机保存小数的位数有限:某些很小的差别,可能在计算过程中被舍掉。数学上不为零的学习信号,也可能被程序算成零。
先看一个刻意简化的例子:假设计算器只能保留小数点后两位,1 加上 0.001,显示的仍是 1.00。这不是 0.001 本身等于零,而是当前表示精度容不下这次增加。真实计算机的浮点格式采用二进制,细节不同,但同样存在舍入。
Softmax 会把模型给各类别的分数转成概率。在论文讨论的高置信度情形里,计算中会出现“1 加上一个很小的正数”。当小量在加法中被舍掉,正确类别的概率可能被算成恰好为 1;在正确类别作为硬标签的交叉熵计算中,用这个概率减去 1,得到的对应类别分数(logit)的梯度就是 0。与此同时,其他类别仍可能保留微小的非零梯度。
令这个很小的正数为 ε。数学上,1 / (1 + ε) - 1 与 -ε / (1 + ε) 相等。但有限精度下,前一种写法可能先把概率舍入成 1,再相减得到 0;后一种写法把小量留在分子里,即使分母舍入成 1,也仍有机会保留这个微小信号。
这不代表机器获得了无限精度,而是避开了一处过早丢失信息的计算步骤。小量继续变小时,仍会遇到浮点表示本身的极限。
《A Fix for Softmax and Cross-Entropy》讨论了这类数值问题及修正方法。对读者来说,值得记住的是:数学上等价的表达式,在计算机上未必有相同的数值表现。
这也不意味着所有训练异常都来自同一个原因,或任何模型换个公式都会更好。排查具体训练问题时,还需要结合数据、优化器、精度格式和可复现的实验,判断数值舍入是否真的参与其中。