我使用Elman recurrent network from neurolab来预测连续值的时间序列。从一个序列训练网络,使得输入是索引i
处的值,目标是索引i+1
处的值。
要预测超出即时下一步,网络的输出将作为输入反馈。例如,如果我打算预测i+5
处的值,请按以下步骤进行。
i
i+1
)i+5
因此,对于下一个时间步之后的预测,必须使用先前激活的输出激活循环网络。
然而,在大多数示例中,网络以完整的序列供给。例如,请参阅上面链接后面示例中的函数train
和sim
。第一个函数使用已经完整的示例列表训练网络,第二个函数使用完整的输入值列表激活网络。
在对neurolab进行一些挖掘之后,我发现函数step
为单个输入返回单个输出。然而,使用step
的结果表明,该函数不保留重复层的激活,这对于循环网络至关重要。
如何使用单个输入激活neurolab中的复发Elman网络,使其保持其内部状态以进行下一次单输入激活?
答案 0 :(得分:0)
事实证明,从先前的输出产生的输出迟早会收敛到恒定值是很正常的。实际上,网络的输出不能仅依赖 在其先前的输出上。
答案 1 :(得分:0)
我得到相同的结果-常数。但是我注意到了一些东西:
->如果使用0和1数据,则结果会改善。 0-减少1-增加。结果不再是常数。
->尝试使用另一个变量来解释目标变量,正如我们的一位同事已经提到的那样。