时间序列预测与神经细胞中复发的Elman网络

时间:2016-06-22 14:55:20

标签: python neural-network recurrent-neural-network neurolab

我使用Elman recurrent network from neurolab来预测连续值的时间序列。从一个序列训练网络,使得输入是索引i处的值,目标是索引i+1处的值。

要预测超出即时下一步,网络的输出将作为输入反馈。例如,如果我打算预测i+5处的值,请按以下步骤进行。

  1. i
  2. 输入值
  3. 获取输出并将其作为下一个输入值(例如i+1
  4. 提供给网络
  5. 重复1.到3.再多四次
  6. 输出是对i+5
  7. 处的值的预测

    因此,对于下一个时间步之后的预测,必须使用先前激活的输出激活循环网络。

    然而,在大多数示例中,网络以完整的序列供给。例如,请参阅上面链接后面示例中的函数trainsim。第一个函数使用已经完整的示例列表训练网络,第二个函数使用完整的输入值列表激活网络。

    在对neurolab进行一些挖掘之后,我发现函数step为单个输入返回单个输出。然而,使用step的结果表明,该函数不保留重复层的激活,这对于循环网络至关重要。 declining activation

    如何使用单个输入激活neurolab中的复发Elman网络,使其保持其内部状态以进行下一次单输入激活?

2 个答案:

答案 0 :(得分:0)

事实证明,从先前的输出产生的输出迟早会收敛到恒定值是很正常的。实际上,网络的输出不能仅依赖 在其先前的输出上。

答案 1 :(得分:0)

我得到相同的结果-常数。但是我注意到了一些东西:

->如果使用0和1数据,则结果会改善。 0-减少1-增加。结果不再是常数。

->尝试使用另一个变量来解释目标变量,正如我们的一位同事已经提到的那样。