JavaScript中有大量Sigmoid

时间:2019-02-07 18:33:08

标签: javascript sigmoid

据我了解,您使用S型函数将数字减少到0-1范围。

使用此library

中的功能
function sigmoid(z) {
  return 1 / (1 + Math.exp(-z));
}

这适用于数字1-36。高于此数字的任何数字只会返回1。

sigmoid(36) -> 0.9999999999999998
sigmoid(37) -> 1
sigmoid(38) -> 1
sigmoid(9000) -> 1

如何增加范围,以便此功能可以处理大于36的数字。

2 个答案:

答案 0 :(得分:2)

sigmoid function是具有某些特性(使其具有特征s形)的任何函数。您的问题有很多答案。例如,任何定义如下的函数

const k = 2;
function sigmoid(z) {
  return 1 / (1 + Math.exp(-z/k));
}

将符合要求。 k越大,可用域越大。

答案 1 :(得分:1)

Sigmoid Function没有边界,这意味着它可以接受从无限小的值到无限大的值。
另一方面,JavaScript将对数字(IEEE)进行四舍五入。

无论如何,您可以做的是先重新缩放输入,然后再将其传递给公式。
另一个选择是修改公式值,尤其是z值。