哪种神经网络拓扑可以学习时间序列之间的相关性?

数据挖掘 机器学习 神经网络 时间序列 相关性
2021-09-25 15:53:28

我有两个(或原则上更多)1xN 时间序列,我想训练一个 NN 来预测两者的下一个值。我可以将它们排列为 2xN 矩阵,并将该矩阵中的一个窗口作为输入提供给 NN,但我不确定如何构建 NN 本身。

我已经制作了一个带有卷积的 NN,它可以用一个系列做相当不错的工作,但我想利用跨系列的相关性。什么拓扑可以让神经网络注意到时间序列之间的相关性?

3个回答

这在一定程度上取决于您正在寻找什么样的相关性。您是否期望每个时间步长/窗口存在相关性,或者每个时间步长/窗口存在不同级别的相关性?你是在做分类还是回归任务?有时预测下一个值涉及分类,但我假设您现在正在寻找回归。

作为起点,尝试分别将这些序列中的每一个作为输入提供给循环神经网络(从基本的 LSTM 开始,如果过度杀伤,则将其削减)。我喜欢你关于重叠窗口的建议。

例如(伪代码):

series_1 = 1, 2, 3, ..., 100

series_2 = 5, 6, 7, ..., 200

input_1 = Input(series_1,       window_size)

input_2 = Input(series_2, window_size)

layer_1 = LSTM(input_1, input_2)

final_layer = fully_connected(layer_1)

您绝对应该检查LSTM-RNNGRU-RNN实现;第二个更容易理解并且计算成本更低。

一个有价值的例子是:

https://machinelearningmastery.com/multivariate-time-series-forecasting-lstms-keras/

您可以明确地提供相关性作为 nn 输入,如在 Time Series 中的 Local Correlation Tracking 中计算的那样,代码可通过Vlad 的博客获得。

我还阅读了一篇论文(不幸的是,我不记得它的标题或作者的姓名用于谷歌搜索),其中对未来相关性的预测是一个明确的 nn 目标,作为多变量目标 nn 目标的一部分。作者声称将相关性作为目标提高了多变量目标的非相关部分的准确性。