0
当使用S形激活函数时,我知道导数是通过输出*(1-输出)计算的。但是,这是如何确定的?我如何从sigmoid函数1 /(1 + e ^( - x))得到确定导数应该输出*(1-输出)?例如,如果我要确定atan(x)或atan(x)的输出缩放到范围0-1(atan(x)* 0.3183098861837907 + 0.5)的导数,如何确定此导数用于训练神经网络?如何计算人工神经网络激活函数的导数
当使用S形激活函数时,我知道导数是通过输出*(1-输出)计算的。但是,这是如何确定的?我如何从sigmoid函数1 /(1 + e ^( - x))得到确定导数应该输出*(1-输出)?例如,如果我要确定atan(x)或atan(x)的输出缩放到范围0-1(atan(x)* 0.3183098861837907 + 0.5)的导数,如何确定此导数用于训练神经网络?如何计算人工神经网络激活函数的导数
好吧,在我看来,这是一个数学相关的问题,而不是一个编码问题,但在这里你去任何地方。
其中
如果计算其衍生物:
和
因此:
记住,X是输入,和˚F是输出。这就是为什么你得到“输出*(1输出)”的原因。
对于其他激活函数,您只需首先计算导数然后对其进行编码。通常情况下,它不会有像上面那样好的形式。
如果计算其衍生物(这将任何函数u工作(X )被缩放和偏移),您可以:
简言之,b是一个常数,从而衍生的时,它消失,一个是一常系数,从而衍生的时,它保持不变。
在你的情况,因为:
你要找的导数为:
就我个人而言,这是非常简单的数学,我会强烈建议您在开始使用神经网络之前着重理解这些;)
Chee rs