稳定的Softmax函数返回错误的输出

2024-06-11 17:45:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我实现了Softmax函数,后来发现它必须稳定才能保持数值稳定(duh)。现在,它又不稳定了,因为即使从我的向量中减去max(x),给定的向量值仍然太大,无法成为e的幂。这是我用来确定错误的代码的图片,这里的向量是前向传播的样本输出向量:


enter image description here

我们可以清楚地看到这些值太大了,而不是概率,我得到了这些非常小的数字,这导致了小的误差,导致梯度消失,最终使网络无法学习


Tags: 函数代码错误图片数字概率向量max
1条回答
网友
1楼 · 发布于 2024-06-11 17:45:31

你是完全正确的,只是翻译softmax的数学定义可能会使其不稳定,这就是为什么在进行任何计算之前必须减去x的最大值

您的实现是正确的,消失/爆炸梯度是一个独立的问题,您可能会遇到,这取决于您打算使用哪种神经网络

相关问题 更多 >