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|。
你可以很容易地自己检查。