我正在尝试实现一个循环神经网络,并试图让它学习一个 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,如果您需要任何详细信息,请询问。