【问题标题】:Sigmoid function and derivative of sigmoid function in ANNANN中的sigmoid函数和sigmoid函数的导数
【发布时间】:2017-10-08 12:32:59
【问题描述】:

我正在根据教程制作 ANN。教程中sigmoid和dsigmoid如下:

sigmoid(x) = tanh(x)

dsigmoid(x) = 1-x*x

但是,根据定义,dsignmoid 是 sigmoid 函数的导数,因此它应该是 (http://www.derivative-calculator.net/#expr=tanh%28x%29):

dsigmoid(x) = sech(x)*sech(x)

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

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

【问题讨论】:

  • 你有什么问题?
  • 澄清问题

标签: math machine-learning artificial-intelligence derivative sigmoid


【解决方案1】:

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

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

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

【讨论】:

  • 是的,y=sigmoid(x),dsigmoid 也应该应用于 x 以获得渐变。 d=dsigmoid(x)。所以在tanh的情况下,公式是这样的
猜你喜欢
  • 2020-06-29
  • 2017-11-12
  • 2013-07-14
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2021-04-25
  • 1970-01-01
  • 2017-05-15
相关资源
最近更新 更多