在线性系统中使用神经网络的sigmoid()或tanh()激活函数

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

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

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

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

提前感谢


回答:

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

  1. 在接近0的“训练兴趣范围”内梯度大约为1;
  2. 在极端值时梯度大约为0。

一旦你考虑了这些,我怀疑你会更担心计算效率。tanh在大多数架构上计算成本高。如果这是你的担忧,可以考虑编写自己的函数,可能是一个查找表,包含范围[-4,4]内的2^10个预计算值,并在该范围之外使用“轨道”值(-1和1)。

Related Posts

Flatten and back keras

我正在尝试使用自编码器获取简单向量中的值 这是我的代码…

如何按索引访问PyTorch模型参数

如果我的网络有10层,包括偏置项,如何仅通过索引访问第…

Python中多元逻辑回归显示错误

我试图使用逻辑回归进行预测,并使用Python和skl…

在MACOS上安装NLTK

我在我的2015款Mac Pro上尝试安装NLTK,操…

如何在R中将通过RFE选择的变量插入到机器学习模型中?

我想使用递归特征消除方法来选择最重要的特征,然后将这些…

CountVectorizer 错误:ValueError: setting an array element with a sequence

我有一个包含144条学生反馈的数据集,其中有72条正面…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注