当使用sigmoid激活函数时,我理解导数是由输出*(1-输出)计算的。但这是如何决定的呢?如何从乙状结肠函数1/(1+e^(-x))确定导数应该是输出*(1-输出)?
例如,如果我想确定输出缩放到0-1范围( atan(x) *0.3183098861837907+0.5)的atan(x)或atan(X)的导数,如何确定这个导数用于训练神经网络?
发布于 2014-05-19 20:48:27
在我看来,这更像是一个与数学有关的问题,而不是一个编码的问题,但无论如何,你还是会这样做的。

哪里

如果你计算它的导数:

和

因此:

记住,x是输入,f是输出。这就是为什么你会得到你的“输出*(1-输出)”。
对于其他激活函数,您只需先计算导数,然后对其进行编码。但是,通常情况下,它不会像上面那样有一个很好的形式。

如果计算它的导数(这将适用于任何被缩放和偏移的函数u(x) ),您将得到:

简单地说,b部件是一个常数,因此它在导出时消失了,而a是一个常数系数,因此它在导出时保持不变。
就你而言,因为:

你要找的衍生产品是:

就个人而言,这是相当简单的数学,我强烈建议你在开始使用神经网络之前,把注意力集中在理解这些问题上;)
干杯
https://stackoverflow.com/questions/23735035
复制相似问题