1

我希望这里的一些更有经验的用户可能对我有一些建议。我正在实现一个具有 2 个输入、2 个隐藏节点和 1 个输出的神经网络。

我在隐藏层和输出上都使用了 sigmoid 激活函数,并且我正在使用反向传播。我相当确定我正确理解了这个理论。我有程序计算梯度,更新权重和偏差,我使用动量和强度变量进行调整。

使用多层的目的是解决非线性可分问题,但到目前为止我只能解决线性可分 AND 和 OR 布尔函数。我尝试过各种不同的动量和力量设置,但无济于事。

对于所有 4 个变量,我通常的输出总是完全相同的。有一段时间它接近 0.55,直到我使用设置,现在它们都输出 0.9。如果我消除偏差,第一个值会变为零,而不是第四个。

有什么建议么?

4

1 回答 1

0

回答我自己的问题..

经过大量的反复试验后,我将谨慎抛诸脑后,尝试使用 tanh(x) 而不是 sigmoid .. 只经过一点点调整,它就可以工作了!

如果其他人一直在与这些网络之一苦苦挣扎,它可能对您有用。

导数是 (1 - tanh(x))(1 + tanh(x))。

于 2013-11-04T01:35:17.700 回答