推导Sigmoid函数的无尽困惑


def sigmoid(x):
  return 1 / (1 + np.exp(-x))
def sigmoid_derivative(x):
  return x * (1 - x)

我正在从简单的神经网络示例中学习如何使用神经网络:https://www.kdnuggets.com/2018/10/simple-neural-network-python.html

#Let's say 
x = 2
y = sigmoid(x)
y
Output: 0.8807970779778823
slope = sigmoid_derivative(y)
slope
Output: 0.10499358540350662

现在如果m*x=y

斜率*x=y

0.10499358540350662*2=0.2099871708?

这些数字加不起来,我有一种感觉,我从根本上误解了整个过程。你能提供什么帮助吗?非常感谢。

从微积分中可以看出,语句

斜率*x=y

只对线性函数成立,而sigmoid显然不是,尤其是在2附近。你唯一应该期待的是

sigmoid_derivative(sigmoido(x0((*(x1-x0(+sigmoid(x0

其中eps是一个小误差,因此越小的是|x1-x0|,越小的就是|eps|。

你可以很容易地自己检查。

最新更新