具有神经网络的线性系统中的 sigmoid() 或 tanh() 激活函数

sigmoid() or tanh() activation function in linear system with neural network

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

Schematic representation of neural network: input layer size = 1; hidden layer size = 8; output layer size = 1.

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

是否依赖于连续输出变量的值?例如: (i) 当输出变量从 0 归一化为 1 时使用 sigmoid() (ii) 当输出变量为负值时使用tanh()。

提前致谢

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

  1. 梯度在"range of training interest"接近0处大致为1;
  2. 极值的梯度大约为 0。

看完这些,我猜你更担心的是计算效率。 tanh 在大多数架构上的计算成本很高。如果这是您的担心,请考虑编写您自己的函数,也许是一个查找 table,其中可能有 2^10 个预计算值范围 [-4,4] 和 "rail" 值 (-1和 1) 在该范围之外。