当使用sigmoid激活函数时,我理解导数是通过输出*(1-输出)计算的。但这是如何确定的?如何从sigmoid函数1 /(1 + e ^( - x))到确定导数应该输出*(1输出)?
例如,如果我想确定atan(x)或atan(x)的导数,其输出缩放到0-1(atan(x)* 0.3183098861837907 + 0.5),我该如何确定这个导数以供使用在训练神经网络?
答案 0 :(得分:1)
在我看来,这似乎是一个与数学问题相关的问题,而不是编码问题,但无论如何你都去了。
其中
如果计算其衍生物:
和
因此:
请记住, x 是输入, f 是输出。这就是为什么你得到你的"输出*(1-输出)"
对于其他激活功能,您只需先计算导数,然后对其进行编码。通常,它不会像上面那样有一个很好的形式。
如果你计算它的导数(这适用于任何缩放和偏移的函数u(x)),你会得到:
简单地说, b 部分是一个常量,因此它在派生时消失, a 是常系数,因此在导出时保持不变。
在你的情况下,因为:
您正在寻找的衍生品是:
就个人而言,这是非常简单的数学,我强烈建议你在开始使用神经网络之前专注于理解这些;)
干杯