【问题标题】:Sigmoid with Large Number in JavaScriptJavaScript 中的大数 Sigmoid
【发布时间】:2019-07-01 23:09:31
【问题描述】:

据我了解,您使用 sigmoid 函数将数字减少到 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 的数字。

【问题讨论】:

  • 首先将您的值除以某个值,使其更小。看一下 sigmoid 函数的图表。

标签: javascript sigmoid


【解决方案1】:

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

无论如何,您可以做的是在将输入传递给公式之前重新缩放输入。
另一种选择是修改公式值,尤其是 z 值。

【讨论】:

    【解决方案2】:

    sigmoid function 是任何具有某些属性的函数,这些属性赋予其特征 s 形。你的问题有很多答案。例如,任何其定义如

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

    符合要求。 k,有用的域越大。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 2020-06-29
      • 2017-11-12
      • 2019-02-24
      • 2013-07-14
      • 2019-03-15
      • 1970-01-01
      相关资源
      最近更新 更多