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



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

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

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

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

Thanks in advance

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

  1. 在"训练兴趣范围"接近0时,梯度大致为1;
  2. 对于极值,梯度大致为0。

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

最新更新