我正在使用 softmax 和交叉熵函数处理数值溢出和下溢,以使用神经网络进行多类分类。给定 logit,我们可以减去处理溢出的最大 logit,但如果 logit 的值相差很大,那么一个 logit 将为零,其他大的负数导致单个类的概率为 100%,其他类的概率为 0% . 当损失计算为交叉熵时,如果我们的 NN 预测该类的概率为 0%,那么损失为 NaN() 这在理论上是正确的,因为使网络适应所需的惊喜和调整在理论上是无限的。
我知道这可以通过标准化数据并从标准正态分布中选择权重和偏差来处理,但这是一种假设情况,其中数据是经过平均预处理而不是标准偏差处理的,我相信即使在预处理后也会发生这种情况。和标准开发。