在Python中计算sigmoid函数导数的正确方法

时间:2017-12-25 04:39:18

标签: python math sympy derivative sigmoid

我正在走过this article。在代码中,作者提到以下函数找到了派生词:

# convert output of sigmoid function to its derivative
def sigmoid_output_to_derivative(output):
    return output*(1-output)

我真的不明白这里是如何找到衍生物的。使用SymPy查找衍生物会更好吗?如何在文章中显示的示例中执行此操作,尤其是output将是类似于以下内容的列表:

[[ 0.44856632  0.51939863  0.45968497  0.59156505]
 [ 0.28639589  0.32350963  0.31236398  0.51538526]
 [ 0.40795614  0.62674606  0.23841622  0.49377636]
 [ 0.25371248  0.42628115  0.14321233  0.41732254]]

所以,底线是:

  • 如何在原始文章中计算衍生物?我理解代码中的公式,但是,是否有一些理论基础?
  • 我们可以用另一种方式找到衍生物吗?一个更清晰的方式可能吗?

感谢。

1 个答案:

答案 0 :(得分:3)

sigmoid函数主要是因为它的导数在输出方面很容易计算;导数为f(x)*(1-f(x))

因此,不需要使用基于S形函数的库来找到导数,因为已知数学导数(上文)。有关推导,请参阅this