基于神经网络前馈反向传播的学习不适用于AND表

时间:2017-08-16 07:39:26

标签: machine-learning neural-network backpropagation feed-forward sigmoid

我的神经网络能够了解样本是OR还是XOR表。但是,如果我想要它学习和表,它拒绝。

NN配置:

1个输入层,带有2个输入神经元

1个隐藏层,有3个神经元

1个输出层,包含1个结果神经元。

总共9个权重,6个在输入和隐藏之间分配,3个在隐藏和输出之间分配。

使用sigmoid作为激活函数。

使用OR或XOR时,值倾向于接近正确的值,如下所示:

OR

0 0 - 0.0232535024 //〜0

0 1 - 0.9882075648 //〜1

1 0 - 0.9881840412 //〜1

1 1 - 0.9932447649 //〜1

XOR

0 0 - 0.0419020172 //〜0

0 1 - 0.9742653893 //〜1

1 0 - 0.9742622526 //〜1

1 1 - 0.0096044003 //〜0

但是当我尝试将它训练为AND时,对于前3行,它倾向于接近0但是最后一行(1,1)它倾向于接近.5并且不会超过它。

0 0 - 0.0007202012 //〜0

0 1 - 0.0151875796 //〜0

1 0 - 0.0128653577 //〜0

1 1 - 0.4987960208 //非事件关闭,倾向于接近.5,一半是

如果需要代码,请告诉我我会发布。我想知道我的方法是否正确。

我可以为所有情况应用相同的激活功能吗? 为什么接近1的一半.5? 从概念上来说,我的理解是否有任何不妥之处。

我跟着 https://stevenmiller888.github.io/mind-how-to-build-a-neural-network/ 很少有人了解NN以及如何实施。 使用Java

以下是我的课程:

    //from .9 to .8
    mind.hiddenOutputArray[2] = new double[]{.8f};

这是一个更新,如果我随机更改9个权重,它似乎工作正常

{{1}}

0 个答案:

没有答案