【问题标题】:Inverse Logistic Function / Reverse Sigmoid Function逆逻辑函数/逆 S 型函数
【发布时间】:2012-04-23 06:47:32
【问题描述】:

我目前正在用 java 编写一个模糊逻辑库。我找到了所有标准函数的方程——等级、逆等级、三角形、梯形、高斯。但是,我找不到 sigmoid/逻辑函数的倒数。

我写逻辑函数的方式是java是:

//f(x) = 1/(1+e(-x))
public double logistic(double x){

   return (1/(1+(Math.exp(-x)));

}

但我无法在任何地方计算或找到逆。 我的代数/微积分能力相当有限,因此我无法计算出函数的倒数。

任何提示或指示都会有很大帮助。

谢谢

【问题讨论】:

    标签: java math fuzzy-logic


    【解决方案1】:

    如果

    y = 1/(1+exp(-x))
    

    然后

    x = ln(y/(1-y))
    

    【讨论】:

    • 不应该是x = -ln((1-y)/y)吗?
    • @Ethan:自从 -ln(x)=ln(1/x) 以来,它们是同一个东西。
    • 没错。我应该记得的。
    • 谢谢汤姆!我需要复习一下我的数学。只是为了确认 ln 是对数吗?
    • 是的,ln 是自然对数,所以ln(e)=1。我认为在 Java 中,这是 Math.log,尽管您需要验证这一点,因为我不是 Java 专家(检查文档或仅检查 Math.log(e)=1 是否足够)。
    【解决方案2】:

    只是为了完成这些步骤:

    y = 1/(1 + exp(-x))
    
    1 + exp(-x) = 1/y
    
    exp(-x) = 1/y - 1
    
    exp(-x) = 1/y - y/y
    
    exp(-x) = (1 - y)/y
    
    ln(exp(-x)) = ln((1 - y)/y)
    
    -x = ln((1 - y)/y)
    
    x = -ln((1 - y)/y)
    
    x = ln(y/(1 - y))
    

    【讨论】:

    • 要省略infnan,添加eps,例如1e-5y。因为log(0)不存在,简单说
    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多