循环网络中的最后一个单元始终是最准确的

数据挖掘 张量流 时间序列 预测 rnn
2022-02-26 07:00:37

我正在使用循环网络进行时间序列预测。

网络中最后一个单元的预测似乎总是最准确的。例如,如果我有 20 个单元格(因此我的输入样本长度为 20),则来自后面单元格(例如单元格 11-20)的预测似乎比来自早期单元格(例如单元格 1-10)的预测更好。

这是正常的吗?

假设我的网络只有 3 个单元。目前我会输入数据 x(t=0, t+1, t+2) 以获得对 t=0, t+1, t+2 的预测。这是错误的方法吗?如果我想在所有时间步都有良好的预测,我是否需要使用“移动窗口”,即我是否应该使用滚动输入序列:

For prediction at t=0, input x(t-2, t-1, t=0)
For prediction at t=1, input x(t-1, t=0, t=1)
For prediction at t=2, input x(t=0, t+1, t+2)
1个回答

我正在使用循环网络进行时间序列预测。

有趣的是您选择的网络类型。几层?每层有多少个神经元?

网络中最后一个单元的预测似乎总是最准确的。

我假设您指的是您的样本的单元格。总是,如果您在数据流(在线)中学习,那么后期迭代中的网络比早期迭代中的网络看到的数据更多。因此,随着看到更多样本,您的预测会变得更加准确。当然,这假设您对数据流进行在线学习。

目前我会输入数据 x(t=0, t+1, t+2) 以获得对 t=0, t+1, t+2 的预测。这是错误的方法吗?

这取决于您的 RNN 是如何设置的。例如, Jordan 网络具有上下文神经元,它应该完全按照您的建议进行。网络中重复性的原因通常是您想要模拟短期记忆——这意味着,从数学的角度来看,您想要将来自先前迭代的信息馈送到网络的前端。因此,由于这个特性应该在你的 RNN 中得到处理,我认为扩展你的输入并不好,因为你引入了额外的、可能无用的权重,这些权重必须由网络学习。