【问题标题】:Inverse Sigmoid Function in Python for Neural Networks?用于神经网络的 Python 中的反 Sigmoid 函数?
【发布时间】:2021-02-09 18:15:32
【问题描述】:

我正在尝试在我的卷积神经网络的最后一层实现逆 Sigmoid 函数? 我正在尝试在 Pytorch 中构建网络,我想从最后一个卷积层获取输出,然后对其应用 Inverse Sigmoid Function。

我读到 logit 函数与 sigmoid 函数相反,我尝试实现它但它不起作用。 我使用了 scipy 库中的 logit 函数,并在函数中使用了它。

def InverseSigmoid(self, x):

        x = logit(x)
        return x

【问题讨论】:

  • “不工作”是什么意思?有many different “sigmoid” functions。如果有问题的函数是逻辑函数???? ↦ 1/(1 + exp(−????)),那么它的反函数确实是 logit 函数???? ↦ log(????/(1 - ????))。 (对于 ???? 接近 1/2 的值,最好使用公式 −log1p((1 − 2????)/????),以避免在接近 1 的近似输入处评估 log。)但我们需要知道您观察到的问题所在才能提供帮助。

标签: python


【解决方案1】:

Sigmoid 就是 1 / (1 + e**-x)。所以如果你想反转它,你可以-ln((1 / x) - 1)。出于数值稳定性的目的,您也可以使用-ln((1 / (x + 1e-8)) - 1)。这是sigmoid的反函数,实现很简单。

【讨论】:

  • 您对“数值稳定性”的定义是什么(该术语没有标准定义)促使将 10⁻⁸ 添加到??当然,它不会提高前向稳定性或后向稳定性,也不会改变 logit 函数的条件——如果您的目标是计算 logit,它只会使算法在答案中产生更严重的错误。
猜你喜欢
  • 1970-01-01
  • 2017-06-20
  • 2016-09-19
  • 2017-07-28
  • 2020-09-27
  • 2017-07-11
  • 2014-03-26
  • 2012-07-25
  • 2020-04-18
相关资源
最近更新 更多