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

时间:2016-11-16 12:45:18

标签: machine-learning neural-network sigmoid

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

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()。

提前致谢

1 个答案:

答案 0 :(得分:0)

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

  1. 在0附近的“训练兴趣范围”中大约为1的梯度;
  2. 极值的大约为0的渐变。
  3. 一旦你看到了这些,我怀疑你更担心的是计算效率。 tanh 在大多数架构上的计算成本都很高。如果这是您的担心,请考虑编写您自己的函数,也许是一个查找表,其中可能有2 ^ 10个预先计算的值,范围为[-4,4],而“轨道”值(-1和1)超出该范围