据我了解,您使用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的数字。
答案 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
值。