我使用来自神经实验室的 Elman 循环网络来预测连续值的时间序列。网络是从一个序列中训练出来的,输入是 index 处的值i
,目标是 index 处的值i+1
。
为了在下一时间步之后进行预测,网络的输出作为输入反馈。例如,如果我打算预测 的值i+5
,我将按照以下步骤进行。
- 输入值来自
i
- 获取输出并将其作为下一个输入值馈送到网络(例如
i+1
) - 再重复 1. 到 3. 四次
- 输出是对值的预测
i+5
因此,对于下一时间步之后的预测,必须使用先前激活的输出来激活循环网络。
然而,在大多数示例中,网络被馈入一个已经完整的序列。例如,请参阅上面链接后面的示例中的函数train
和示例。sim
第一个函数使用已经完整的示例列表训练网络,第二个函数使用完整的输入值列表激活网络。
在神经实验室中进行了一些挖掘之后,我发现了step
为单个输入返回单个输出的函数。然而,使用结果step
表明,该函数不保留循环层的激活,这对循环网络至关重要。
如何使用单个输入激活神经实验室中的循环 Elman 网络,使其保持其内部状态以进行下一次单个输入激活?