我使用Elman recurrent network from neurolab来预测连续值的时间序列 . 从序列训练网络,使得输入是索引 i
处的值,并且目标是索引 i+1
处的值 .
为了使预测超出下一个时间步骤,网络的输出作为输入反馈 . 例如,如果我打算在 i+5
预测值,我将按如下方式进行 .
-
从
i
输入值 -
获取输出并将其作为下一个输入值(例如
i+1
)提供给网络 -
重复1.到3.再重复四次
-
输出是
i+5
处的值的预测
因此,对于超出下一个时间步骤的预测,必须使用先前激活的输出激活循环网络 .
然而,在大多数示例中,网络被馈送已经完整的序列 . 例如,请参阅上面链接后面示例中的函数train和sim . 第一个功能使用已经完整的示例列表训练网络,第二个功能使用完整的输入值列表激活网络 .
在对neurolab进行一些挖掘之后,我发现函数step为单个输入返回单个输出 . 然而,使用 step
的结果表明,该功能不能保留复发层的激活,这对于循环网络至关重要 .
How can I activate a recurrent Elman network in neurolab with a single input such that it maintains its internal state for the next single input activation?
1 回答
事实证明,从先前的输出产生的输出迟早会收敛到恒定值是很正常的 . 实际上,网络的输出不能仅依赖于其先前的输出 .