多层感知器有时不会收敛到正确的答案-异或

Multilayer Perceptron Sometimes Does Not Converge Towards Correct Answer - XOR

本文关键字:答案 异或 感知      更新时间:2023-10-16

我已经实现了一个多层感知器,并首先设计了训练方法,以占用一定数量的历元进行训练。我针对XOR逻辑门对网络进行了训练,大多数时候网络会学习如何解决问题,但每隔一段时间,网络就会只学习两个训练示例,并停留在另外两个上。

起初我认为这不重要,但后来我想改变训练方法,在错误低于我选择的某个可接受的错误值后停止。现在,网络有时会从训练中恢复,有时会像我上面提到的那样陷入困境。这是正常的吗,多层感知器有时不会正确学习,还是这是我实现中的一个错误。

如果重要的话,实现是在C++中,并且多层感知器是标准的前馈反向传播神经网络;2个输入神经元,2个隐层神经元,1个输出神经元。

我应该使用两个输出神经元吗?如果是,值会是多少?

我想这既不是我的实现中的错误,也不是感知器的特性,我能够通过添加两个隐藏层神经元来解决这个问题,尽管我听说经验法则是将隐藏层神经元的数量保持在输入神经元的数量之下。