我希望这里有一些经验丰富的用户可能对我有一些建议。 我正在实现一个具有2个输入,2个隐藏节点和1个输出的神经网络。
我在隐藏层和输出上使用了sigmoid激活功能,我正在使用反向传播。我相当肯定我理解正确的理论。我有程序计算梯度,更新权重和偏差,我使用动量和强度变量进行调整。
使用多个层的关键是解决非线性可分的问题,但到目前为止我只能解决线性可分离的AND和OR布尔函数。我试过玩各种不同的动量和力量设置无济于事。
对于所有4个变量,我通常的输出总是完全相同。它暂时接近0.55,直到我玩设置,现在它们都输出0.9。如果我删除偏差,则第一个值变为零,但不是第四个。
有什么建议吗?
答案 0 :(得分:0)
回答我自己的问题..
经过大量的反复尝试后,我谨慎对待风,并尝试使用tanh(x)代替sigmoid ..并且只需要一点点的推文,它就可以了!
如果其他人一直在努力使用其中一个网,那么它可能适合你。
导数是(1-tanh(x))(1 + tanh(x))。