无尽的困惑推导Sigmoid函数

Endless Confusion Deriving the Sigmoid Function

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(sigmoid(x0)) * (x1 - x0) + sigmoid(x0) = sigmoid(x1) + eps

其中eps为小误差,|x1 - x0|越小,|eps|越小。

您可以轻松地自己查看。