Math 人工神经网络中的Sigmoid函数及其导数

Math 人工神经网络中的Sigmoid函数及其导数,math,machine-learning,artificial-intelligence,derivative,sigmoid,Math,Machine Learning,Artificial Intelligence,Derivative,Sigmoid,我正在通过一个教程制作安。在本教程中,乙状结肠和乙状结肠如下所示: sigmoid(x) = tanh(x) dsigmoid(x) = 1-x*x 然而,根据定义,dsignmoid是sigmoid函数的导数,因此它应该是(): 当使用1-x*x时,训练会收敛,但当我使用数学上正确的导数,即sech平方时,训练过程不会收敛 问题是为什么1-x*x有效(模型经过训练以校正权重),而数学导数sech2(x)无效(在最大迭代次数后获得的模型具有错误权重)?在第一组公式中,导数表示为函数值的函数,

我正在通过一个教程制作安。在本教程中,乙状结肠和乙状结肠如下所示:

sigmoid(x) = tanh(x)

dsigmoid(x) = 1-x*x
然而,根据定义,dsignmoid是sigmoid函数的导数,因此它应该是():

当使用1-x*x时,训练会收敛,但当我使用数学上正确的导数,即sech平方时,训练过程不会收敛


问题是为什么1-x*x有效(模型经过训练以校正权重),而数学导数sech2(x)无效(在最大迭代次数后获得的模型具有错误权重)?

在第一组公式中,导数表示为函数值的函数,即

tanh'(x) = 1-tanh(x)^2 = dsigmoid(sigmoid(f))

由于在现有代码中可能以这种方式使用和实现,如果用“正确”的公式替换,您将得到错误的导数。

您的问题是什么?澄清了问题是的,y=sigmoid(x),也应该在x上应用dsigomoid来获得梯度。d=d乙状体(x)。所以在tanh的例子中,公式是这样的
tanh'(x) = 1-tanh(x)^2 = dsigmoid(sigmoid(f))