2

我使用来自神经实验室的 Elman 循环网络来预测连续值的时间序列。网络是从一个序列中训练出来的,输入是 index 处的值i,目标是 index 处的值i+1

为了在下一时间步之后进行预测,网络的输出作为输入反馈。例如,如果我打算预测 的值i+5,我将按照以下步骤进行。

  1. 输入值来自i
  2. 获取输出并将其作为下一个输入值馈送到网络(例如i+1
  3. 再重复 1. 到 3. 四次
  4. 输出是对值的预测i+5

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

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

在神经实验室中进行了一些挖掘之后,我发现了step为单个输入返回单个输出的函数。然而,使用结果step表明,该函数不保留循环层的激活,这对循环网络至关重要。 减少激活

如何使用单个输入激活神经实验室中的循环 Elman 网络,使其保持其内部状态以进行下一次单个输入激活?

4

2 回答 2

0

事实证明,从先前输出生成的输出迟早会收敛到一个恒定值是很正常的。实际上,网络的输出不能仅仅依赖于它之前的输出。

于 2017-01-23T09:46:56.463 回答
0

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

-> 如果你使用 0 和 1 数据,结果会提高。0 - 减少 1 - 增加。结果不再是一个常数。

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

于 2019-12-27T11:21:44.730 回答