gpt4 book ai didi

python - logistic/sigmoid 函数实现数值精度

转载 作者:太空狗 更新时间:2023-10-29 18:28:42 25 4
gpt4 key购买 nike

scipy.special.expit中,逻辑函数实现如下:

if x < 0
a = exp(x)
a / (1 + a)
else
1 / (1 + exp(-x))

但是,我已经看到其他语言/框架的实现可以简单地做到

1 / (1 + exp(-x))

我想知道 scipy 版本实际带来了多少好处。

对于非常小的x,结果接近于 0。即使 exp(-x) 溢出到 Inf,它仍然有效。

最佳答案

这实际上只是为了稳定性——输入非常大的值可能会返回意想不到的结果。

如果 expit 的实现方式与 1/(1 + exp(-x)) 相同,则将 -710 的值放入函数将返回 nan,而 -709 将按预期给出接近于零的值。这是因为 exp(710) 太大而不能成为 double 。

代码中的分支只是意味着避免了这种情况。

另见 this question and answer在 Stack Overflow 上。

关于python - logistic/sigmoid 函数实现数值精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37074566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com