快速sigmoid算法

42

sigmoid函数定义为

enter image description here

我发现使用C内置函数exp()计算f(x)的值很慢。是否有更快的算法来计算f(x)的值呢?

13个回答

1

tanh函数在一些语言中可以进行优化,使其比自定义的x/(1+abs(x))更快,这在Julia中是这样的情况。


0

你也可以使用这个:

    y=x / (2 * ((x<0.0)*-x+(x>=0.0)*x) + 2) + 0.5;
    y'=y(1-y);

现在的行为类似于Sigmoid函数,因为y(1-y)=y'比1/(2 (1 + abs(x))^2)更加圆滑,更像是快速Sigmoid函数。


-3

我认为你无法比内置的exp()函数更好,但如果你想尝试另一种方法,可以使用级数展开。WolframAlpha可以为您计算。


如果你对于这些踩票感到困惑,那是因为这个近似值在可接受的范围内收敛得不太好。 - Robin Davies

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接