1

我正在尝试实现一个循环神经网络,并试图让它学习一个 XOR 函数作为一个小例子。

由于它是一个循环网络,我认为让它只与一个输入单元一起工作可能会很好,以便了解它在记住以前的状态时的表现如何;即基于顺序输入实现异或函数:

INPUT(t-1) = 0
INPUT(t)   = 1
OUTPUT(t)  = 1

或者

INPUT(t-1) = 1
INPUT(t)   = 1
OUTPUT(t)  = 0

因此,我的输入训练数据按以下顺序一次显示一个:

inputs = { 0, 0, 1, 1, 0 }

以及对应的目标输出

targets = { 0, 0, 1, 0, 1 }.

但这不是学习,尽管我知道可能有很多原因,但我想知道也许我没有正确定义我的数据集,因此我不会向我的网络提出正确的问题。然后我来这里寻找关于什么可能是正确的训练集的想法,以对“顺序”XOR 函数进行监督学习。

我正在处理的实现类似于 Elman RNN,如果您需要任何详细信息,请询问。

4

1 回答 1

0

以下链接:https ://code.google.com/p/encog-java/source/browse/trunk/encog-examples/src/org/encog/examples/neural/recurrent/elman/ElmanXOR.java?r= 2423

包含一个适用于 XOR 问题的循环 Elman 网络实现。它使用Encog(相对容易使用)来处理网络本身的实现。希望您能够看到您的实施中的差异并纠正。

于 2013-04-08T14:15:10.903 回答