JavaScript 中有大数的 Sigmoid
Sigmoid with Large Number in JavaScript
据我了解,您使用 sigmoid 函数将数字减少到 0-1 的范围内。
使用在此 library
中找到的函数
function sigmoid(z) {
return 1 / (1 + Math.exp(-z));
}
这适用于数字 1-36。任何高于此的数字都只是 return 1.
sigmoid(36) -> 0.9999999999999998
sigmoid(37) -> 1
sigmoid(38) -> 1
sigmoid(9000) -> 1
如何增加范围以便此函数可以处理大于 36 的数字。
A sigmoid function 是任何具有特定属性的函数,这些属性赋予它特有的 s 形。你的问题有很多答案。例如,定义类似于
的任何函数
const k = 2;
function sigmoid(z) {
return 1 / (1 + Math.exp(-z/k));
}
符合要求。 k
越大,有用域越大
A Sigmoid Function 没有边界,这意味着它接受从无限小到无限大的值。
另一方面,Javascript 会舍入数字 (IEEE)。
无论如何,您可以在将输入传递给公式之前重新调整输入。
另一种选择是修改公式值,最显着的是 z
值。
据我了解,您使用 sigmoid 函数将数字减少到 0-1 的范围内。
使用在此 library
中找到的函数function sigmoid(z) {
return 1 / (1 + Math.exp(-z));
}
这适用于数字 1-36。任何高于此的数字都只是 return 1.
sigmoid(36) -> 0.9999999999999998
sigmoid(37) -> 1
sigmoid(38) -> 1
sigmoid(9000) -> 1
如何增加范围以便此函数可以处理大于 36 的数字。
A sigmoid function 是任何具有特定属性的函数,这些属性赋予它特有的 s 形。你的问题有很多答案。例如,定义类似于
的任何函数const k = 2;
function sigmoid(z) {
return 1 / (1 + Math.exp(-z/k));
}
符合要求。 k
越大,有用域越大
A Sigmoid Function 没有边界,这意味着它接受从无限小到无限大的值。
另一方面,Javascript 会舍入数字 (IEEE)。
无论如何,您可以在将输入传递给公式之前重新调整输入。
另一种选择是修改公式值,最显着的是 z
值。