用递归神经网络简要介绍序列预测模型
Posted wdmx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归神经网络简要介绍序列预测模型相关的知识,希望对你有一定的参考价值。
作者: 杰森·布朗利于 2017 年 7月17日 在 长期短期记忆网络中
序列预测是涉及使用历史序列信息来预测序列中的下一个或多个值的问题。
序列可以是诸如句子中的字母之类的符号,也可以是诸如价格的时间序列中的实际值之类的符号。在时间序列预测的背景下,序列预测可能是最容易理解的,因为问题已经被普遍理解。
在这篇文章中,您将发现可用于构建自己的序列预测问题的标准序列预测模型。
阅读这篇文章后,你会知道:
序列预测问题如何用递归神经网络建模。
循环神经网络使用的4种标准序列预测模型。
应用序列预测模型时,初学者所犯的两个最常见的误解。
让我们开始吧。
教程概述
本教程分为4个部分; 他们是:
递归神经网络序列预测
序列预测模型
来自Timesteps的基数不是特征
从业者的两个常见误解
递归神经网络序列预测
回归神经网络,如长短期记忆(LSTM)网络,是为序列预测问题而设计的。
事实上,在撰写本文时,LSTM在具有挑战性的序列预测问题(如神经机器翻译(将英语翻译成法语))中实现了最先进的结果。
LSTM通过学习将输入序列值(X)映射到输出序列值(y)的函数(f(...))来工作。
y(t) = f(X(t))
1
y(t) = f(X(t))
学习的映射函数是静态的,可以被认为是一个获取输入变量并使用内部变量的程序。内部变量由网络维护的内部状态表示,并在输入序列中的每个值上建立或累积。
... RNN将输入向量与其状态向量与固定(但已学习)函数组合以产生新的状态向量。在编程术语中,这可以解释为运行具有某些输入和一些内部变量的固定程序。
- Andrej Karpathy,回归神经网络的不合理有效性,2015年
可以使用不同数量的输入或输出来定义静态映射函数,我们将在下一节中进行讨论。
需要帮助LSTMs进行序列预测?
参加我的免费7天电子邮件课程,发现6种不同的LSTM架构(带代码)。
点击注册并获得免费的PDF电子书版课程。
立即开始免费迷你课程!
序列预测模型
在本节中,将回顾序列预测的4个主要模型。
我们将使用以下术语:
X:输入序列值可以由时间步长界定,例如X(1)。
u:隐藏状态值可以由时间步长界定,例如u(1)。
y:输出序列值可以由时间步长界定,例如y(1)。
一对一模式
一对一模型为每个输入值生成一个输出值。
一对一序列预测模型
一对一序列预测模型
第一步的内部状态为零; 从那时起,内部状态在前一时间步骤中累积。
随时间变化的一对一序列预测模型
随时间变化的一对一序列预测模型
在序列预测的情况下,该模型将针对作为输入接收的每个观察时间步长产生一个时间步长预测。
这对RNN来说用途很差,因为模型没有机会学习输入或输出时间步长(例如BPTT)。如果您发现为序列预测实现此模型,您可能打算使用多对一模型。
一对多模型
一对多模型为一个输入值生成多个输出值。
一对多序列预测模型
一对多序列预测模型
当产生输出序列中的每个值时,累积内部状态。
该模型可用于图像字幕,其中一个图像被提供作为输入并且一系列单词被生成为输出。
多对一模型
多对一模型在接收到多个输入值后生成一个输出值。
多对一序列预测模型
多对一序列预测模型
在产生最终输出值之前,内部状态与每个输入值累加。
在时间序列的情况下,该模型将使用一系列最近的观察来预测下一个时间步骤。该架构将代表经典的自回归时间序列模型。
多对多模型
多对多模型在接收到多个输入值后会产生多个输出。
多对多序列预测模型
多对多序列预测模型
与多对一情况一样,累积状态直到创建第一个输出,但在这种情况下输出多个时间步长。
重要的是,输入时间步数不必与输出时间步数相匹配。考虑以不同速率运行的输入和输出时间步长。
在时间序列预测的情况下,该模型将使用一系列最近的观测来进行多步预测。
从某种意义上说,它结合了多对一和一对多模型的功能。
来自Timesteps的基数(不是特色!)
常见的混淆点是将上述序列映射模型的示例与多个输入和输出特征混淆。
序列可以由单个值组成,每个时间步长一个。
或者,序列可以很容易地表示在时间步骤的多个观察的向量。时间步长的向量中的每个项可以被认为是其自己的单独时间序列。它不会影响上述模型的描述。
例如,将温度和压力的一个时间步长作为输入并且预测温度和压力的一个时间步长的模型是一对一模型,而不是多对多模型。
多特征序列预测模型
多特征序列预测模型
该模型确实将两个值作为输入并预测两个值,但是只有一个序列时间步骤表示输入并预测为输出。
上面定义的序列预测模型的基数是指时间步骤,而不是特征(例如,单变量或多变量序列)。
从业者的两个常见误解
在从业者实施递归神经网络时,功能与时间步骤的混淆会导致两个主要的误解:
1.作为输入特征的时间步
先前时间步的观察结果被构造为模型的输入特征。
这是输入多层感知器使用的序列预测问题的经典的基于固定窗口的方法。相反,序列应该一次一步地进给。
这种混淆可能会让您认为您实现了多对一或多对多序列预测模型,而实际上您只有一个时间步的单个向量输入。
2.作为输出特征的时间步长
多个未来时间步骤的预测被构造为模型的输出特征。
这是多层感知器和其他机器学习算法使用的多步预测的经典固定窗口方法。相反,序列预测应该一次一步地生成。
这种混淆可能会导致您认为您已经实现了一对多或多对多序列预测模型,而实际上您只有一个时间步的单个向量输出(例如seq2vec而不是seq2seq)。
注意:将时间步长作为序列预测问题中的特征构建是一种有效的策略,即使使用递归神经网络也可以提高性能(尝试一下!)。这里的重点是理解常见的陷阱,而不是在构建自己的预测问题时欺骗自己。
进一步阅读
如果您要深入了解,本节将提供有关该主题的更多资源。
回归神经网络的不合理有效性
序列预测简介
概要
在本教程中,您发现了使用递归神经网络进行序列预测的标准模型。
具体来说,你学到了:
序列预测问题如何用递归神经网络建模。
循环神经网络使用的4种标准序列预测模型。
应用序列预测模型时,初学者所犯的两个最常见的误解。
以上是关于用递归神经网络简要介绍序列预测模型的主要内容,如果未能解决你的问题,请参考以下文章
时序预测 | MATLAB实现LSTM-SVR(长短期记忆神经网络-支持向量机)时间序列预测