0

我正在尝试构建一个神经网络来研究一个具有连续输出变量的问题。下面描述了所使用的神经网络的示意图

神经网络的示意图:输入层大小=1;隐藏层大小 = 8;输出层大小 = 1。

在这种情况下,有什么理由我应该使用 tanh() 激活函数而不是 sigmoid() 激活函数?我过去一直使用 sigmoid() 激活函数来解决使用神经网络的逻辑回归问题,我不清楚当有连续输出变量时是否应该使用 tanh() 函数。

它是否取决于连续输出变量的值?例如: (i) 当输出变量从 0 标准化到 1 时使用 sigmoid() (ii) 当输出变量具有负值时使用 tanh()。

提前致谢

4

1 回答 1

0

除了 0.5 偏差,两者在功能上几乎相同。重要的部分是

  1. 在接近 0 的“训练兴趣范围”中大约为 1 的梯度;
  2. 对于极值,梯度大致为 0。

一旦你看到了这些,我怀疑你会更担心的是计算效率。 在大多数架构上计算tanh的成本很高。如果这是您的担心,请考虑编写您自己的函数,也许是一个查找表,其中包含范围 [-4,4] 的 2^10 个预先计算的值,以及该范围之外的“rail”值(-1 和 1) .

于 2016-11-16T19:33:24.000 回答