2014-05-19 24 views
0

当使用S形激活函数时,我知道导数是通过输出*(1-输出)计算的。但是,这是如何确定的?我如何从sigmoid函数1 /(1 + e ^( - x))得到确定导数应该输出*(1-输出)?例如,如果我要确定atan(x)或atan(x)的输出缩放到范围0-1(atan(x)* 0.3183098861837907 + 0.5)的导数,如何确定此导数用于训练神经网络?如何计算人工神经网络激活函数的导数

回答

1

好吧,在我看来,这是一个数学相关的问题,而不是一个编码问题,但在这里你去任何地方。

  • 对于双曲线函数:

其中

如果计算其衍生物:

因此:

记住,X是输入,和˚F是输出。这就是为什么你得到“输出*(1输出)”的原因。

对于其他激活函数,您只需首先计算导数然后对其进行编码。通常情况下,它不会有像上面那样好的形式。

  • 对于你的问题的另一部分,你这是什么形式的东西:

如果计算其衍生物(这将任何函数u工作(X )被缩放和偏移),您可以:

简言之,b是一个常数,从而衍生的时,它消失,一个是一常系数,从而衍生的时,它保持不变。

在你的情况,因为:

你要找的导数为:

就我个人而言,这是非常简单的数学,我会强烈建议您在开始使用神经网络之前着重理解这些;)

Chee rs