使用递归神经网络进行时间序列分析的正确方法


67

递归神经网络与“常规”神经网络不同,因为它们具有“内存”层。由于这一层,在时间序列建模中应该使用递归NN。但是,我不确定我是否正确理解如何使用它们。

假设我有以下时间序列(从左到右):,[0, 1, 2, 3, 4, 5, 6, 7]我的目标是i使用点i-1i-2作为输入来预测-th个点(每个i>2)。在“常规”非重复ANN中,我将按以下方式处理数据:

 target| input
      2| 1 0
      3| 2 1
      4| 3 2
      5| 4 3
      6| 5 4
      7| 6 5 

然后,我将创建一个具有两个输入和一个输出节点的网络,并使用上面的数据对其进行训练。

如果是递归网络,如何改变这一过程(如果有的话)?


您是否找到了如何为RNN(例如LSTM)构建数据的结构?谢谢
mik1904

Answers:


49

您所描述的实际上是一种“滑动时间窗口”方法,与循环网络不同。您可以将此技术与任何回归算法一起使用。这种方法有很大的局限性:输入中的事件只能与最多间隔t个时间步的其他输入/输出相关,其中t是窗口的大小。

例如,您可以想到t阶的马尔可夫链。RNN在理论上不受此困扰,但是在实践中学习很困难。

与前馈网络相比,最好说明一个RNN。考虑(非常)简单的前馈网络,其中是输出,是权重矩阵,是输入。y=WxyWx

现在,我们使用循环网络。现在我们有了一个输入序列,因此我们用第i个输入的表示输入。然后通过计算相应的ith输出。xiyi=Wxi+Wryi1

因此,我们有另一个权重矩阵,它将前一步的输出线性地合并到当前输出中。Wr

这当然是一个简单的体系结构。最常见的是一种架构,其中您具有一个隐藏层,该隐藏层经常与自身连接。令表示时间步i的隐藏层。公式如下:hi

h0=0
hi=σ(W1xi+Wrhi1)
yi=W2hi

其中是合适的非线性/传递函数,例如S型。和是输入层和隐藏层以及隐藏层和输出层之间的连接权重。代表递归权重。w ^ 1 W ^ 2 w ^ řσW1W2Wr

这是结构图:

原理图


2
我看错了递归网络与卡尔曼滤波器的相似性吗?我看到这是因为先前的输出会影响当前的输出。那么,递归网络的实际好处是什么?
瓦斯2012年

10
您在编写时都认为它们都是状态空间模型。但是,有很多差异:KF具有完全的概率,从某种意义上说,隐藏状态具有适当的概率含义。另一方面,RNN是确定性的,只有输出可用于区分性地对分布进行建模。同样,KF通常使用EM进行估计,而RNN使用基于梯度的方法进行估计。如果您需要更多详细信息,请随时发布问题并发送链接给我,但是对此的评论太受限制了。
bayerj 2012年

1
不,滑动时间窗口不假装在网络的输出上,仅假装在输入上。
bayerj 2012年

2
@bayerj很好的信息,但我不认为您回答了这个问题。如何为RNN不在滑动时间窗口中构造输入输出向量?您能否提供OP数据集的几个样本?
Levitikon 2015年

1
这是对RNN的非常有用的描述,但是我无法找到OP的问题的答案:在递归网络的情况下,人们需要如何改变[培训]?
wehnsdaefflae

9

您也可以考虑简单地对输入数据使用多个时间序列变换。仅举一个例子,输入可以是:

  1. 最近的间隔值(7)
  2. 下一个最近的间隔值(6)
  3. 最近和下一个最近之间的差异(7-6 = 1)
  4. 第三最近的间隔值(5)
  5. 最近的第二个和第三个之间的差异(6-5 = 1)
  6. 最近三个时间间隔的平均值((7 + 6 + 5)/ 3 = 6)

因此,如果您向常规神经网络输入的是这六段转换后的数据,那么对于普通的反向传播算法而言,学习该模式将不是一项艰巨的任务。但是,您必须为获取原始数据的转换编写代码,然后将其转换为神经网络的上述6个输入。


1
但是,您为此投入了很多领域知识。如果您自己不认识时间序列的模式怎么办?然后,您如何构建一个可以做到的模型,尤其是当它依赖于无限远的过去的输入时?
bayerj 2011年

无限肯定会很棘手。但是,如果您进行与该域无关的数据转换,则学习算法将能够轻松地找出并相应地调整权重,因此只要您对相关的数据。因此,拥有许多可用的变换可以提高成功的几率。
rossdavidh 2011年

想象一下以下任务:到网络的第一个输入是或。然后,对于任何数量(10、1000、100000)的时间步长,网络从间隔接收噪声。它再次收到时,必须输出或,这取决于之前看到的内容。这就是所谓的“闩锁基准”。这是序列学习问题中的典型设置。循环网络的最大好处是,输入的整个转换本身是学习的,而不是由专家或功能工程师提供的。1 [ - 0.1 0.1 ] 1 0 101[0.1,0.1]101
bayerj 2011年

2
我不想说你永远不要使用递归神经网络。恰恰相反。但是,如果任务(如问题中所述)是从(i-1)和(i-2)点预测ith,则可以利用该知识更快地获得更好的结果。我并不是要建议RNN并不是一个好主意,但是可以使用您必须具备的任何领域知识来加快培训过程(并减少培训陷入局部最小值的可能性,等等)。 。
rossdavidh 2011年

4

另一种可能性是历史一致性神经网络(HCNN)。此体系结构可能更适合于上述设置,因为它们消除了输入变量和输出变量之间通常是任意的区别,而是尝试通过对所有可观察变量进行训练来复制整个系统的全部底层动态。

当我在西门子工作时,我在Springer Verlag的书中发表了有关此体系结构的论文:Zimmermann,Grothmann,Tietz,von Jouanne-Diedrich:使用历史一致的神经网络进行市场建模,预测和风险分析

简要介绍一下示例:

在本文中,我们提出了一种新型的递归神经网络,称为历史一致性神经网络(HCNN)。HCNN允许跨多个时间尺度对高度相互作用的非线性动力学系统进行建模。HCNN并没有在输入和输出之间进行任何区分,而是将模型可观察值嵌入大型状态空间的动力学中。

[...]

RNN用于使用非线性回归方法对开放式动态系统进行建模和预测。但是,必须在大型系统中看到许多实际的技术和经济应用程序,在大型系统中,各种(非线性)动力学会及时相互影响。投影在模型上,这意味着我们不区分投入和产出,而是谈论可观察的事物。由于大型系统具有部分可观察性,因此我们需要隐藏状态才能解释可观察对象的动态。模型应以相同方式处理可观察变量和隐藏变量。可观察性一词包含输入和输出变量(即Yτ:=(yτ,uτ))。如果我们能够实现一个模型,其中可以描述所有可观测对象的动态,那么我们将可以关闭开放系统。

...并根据结论:

大型递归神经网络中隐藏变量和观察变量的联合建模为计划和风险管理提供了新的前景。基于HCNN的集成方法为预测未来概率分布提供了另一种方法。HCNN完美地描述了过去可观察的动态。但是,世界的部分可观察性导致隐藏变量的非唯一重建,并因此导致了不同的未来情况。由于动态的真正发展是未知的,并且所有路径均具有相同的概率,因此可以将集合的平均值视为最佳预测,而分布的带宽描述了市场风险。今天,我们使用HCNN预测来预测能源和贵金属的价格,以优化采购决策的时机。当前正在进行的工作涉及对整体属性的分析以及这些概念在实际风险管理和金融市场应用中的实现。

本文的部分内容可以公开查看:此处


您有可供下载和测试的实现吗?
Julien L

@JulienL:不幸的是,不是因为这是西门子的专有工作。
vonjd

太糟糕了,这看起来很有希望。
Julien L

@JulienL:我鼓励您与我的合著者Georg联系。他的电子邮件在论文的第一页(请参阅上面的链接)。
vonjd
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.