当前位置:萝卜系统 > 硬件软件教程 > 详细页面

[translation]使用递归神经网络(LSTM)预测时间序列数据

[translation]使用递归神经网络(LSTM)预测时间序列数据

更新时间:2023-06-20 文章作者:未知 信息来源:网络 阅读次数:

根据运行的环境,操作系统可以分为桌面操作系统,手机操作系统,服务器操作系统,嵌入式操作系统等。

神经网络预测大量数据_神经网络预测大量数据_php循环处理大量数据

Statsbot团队发表了一篇有关使用时间序列分析进行异常检测的文章. 今天,我们将讨论长期和短期记忆模型(LSTM)在时间序列预测中的使用. 我们请数据科学家Neelabh Pant告诉您他使用循环神经网络预测汇率变化的经验.

作为居住在美国的印度人,我和家人之间资金不断流动. 如果美元在市场上走强,则印度卢比(INR)将下跌. 因此,印度人将花费更多卢比来购买一美元. 如果美元贬值,您将花费更少的卢比来购买相同的美元.

如果您可以预测明天一美元的价格,那么它可以指导您的决定,这对于最小化风险和最大化回报非常重要. 通过观察神经网络(尤其是循环神经网络)的优势,我想到了预测美元与印度卢比之间的汇率.

有很多预测汇率的方法,例如:

在本文中,我们将告诉您如何使用机器学习进行时间序列分析以预测未来汇率的变化.

让我们从顺序问题开始. 涉及序列的最简单的机器学习问题是问题.

在这种情况下,模型只有一个输入数据或输入张量,并且模型会基于给定的输入生成相应的预测. 使用卷积网络的线性回归,分类和图像分类均属于此类. 扩展它以允许模型使用输入和输出的旧值.

这是一对多的问题. 一对多问题就像问题一样开始. 该模型具有一个输入,并同时生成一个输出. 但是,模型的输出现在作为新输入反馈到模型. 该模型现在可以生成新的输出,并且我们可以以此方式继续无限循环. 现在您可以了解为什么将它们称为递归神经网络了.

一对多

使用递归神经网络来处理序列问题,因为它们都可以连接形成有向环. 换句话说,通过使用自己的输出作为下一步的输入,他们可以维持从一次迭代到下一次迭代的状态. 用编程术语来说,这就像运行带有特定输入和一些内部变量的固定程序. 如果在时间轴上进行扩展,则最简单的递归神经网络可以看作是完全连接的神经网络.

RNN在时间轴上展开

php循环处理大量数据_神经网络预测大量数据_神经网络预测大量数据

在这种单变量情况下,仅涉及两个权重. 权重u乘以当前输入xt,另一个权重w乘以先前的输出yt-1. 该公式类似于指数加权移动平均法(EWMA),它将过去的输出值与当前的输入值结合在一起.

您可以通过简单地堆叠神经网络单元来构建深度递归神经网络. 一个简单的递归神经网络仅对短期记忆有效. 如果我们需要长期记忆,我们会发现它根本上是不够的.

正如我们已经讨论的那样,简单的循环网络存在一个基本问题,即它不能捕获序列中的长期依赖性. 我们构建的RNN涉及在分析文本和回答问题时跟踪单词的长序列,因此这将是一个问题.

在1990年代后期,Sepp Hochreiter和Jurgen Schmidhuber提出了LSTM,以取代RNN,隐马尔可夫模型和许多其他应用中的序列学习方法. 与它们相比,LSTM对时间间隔的长度不敏感.

LSTM网络结构

模型是一个运算单元,其中包括几个基本运算. LSTM具有一个内部状态变量,该变量从一个单元传递到另一个单元,并由操作门进行修改.

被遗忘的门

使用S形层接收前一个时间节点t-1的输出和当前时间节点t的输入,将其合并为张量,然后进行线性变换. 使用S型激活函数后,遗忘门的输出值为0到1之间的值. 该值将乘以内部状态,这就是为什么将其称为遗忘门的原因. 如果ft = 0,则完全忘记先前的内部状态;如果ft = 1,它将通过而不会发生任何变化.

输入门

输入门接受先前的输出和新的输入,并将其传递到另一个S型层. 输入门返回一个介于0和1之间的值. 然后,将输入门返回的值与候选层的输出相乘.

该层将输入与上一层的输出混合,然后应用双曲正切激活,并返回候选向量以添加到内部状态.

内部状态更新规则如下:

神经网络预测大量数据_神经网络预测大量数据_php循环处理大量数据

先前的状态乘以“忘记门”输出,然后添加到输出门允许的新候选位置.

输出门

输出门控制着将多少内部状态传递给输出,它的工作原理与其他门结构一样.

上述三个门结构具有独立的权重和偏差,因此网络需要了解需要保留多少过去的输出,需要保留多少电流输入以及需要将多少内部状态转移到栅极. 输出.

在递归神经网络中,不仅需要输入当前网络的输入数据,还需要输入前一时刻网络的状态数据. 例如,如果我说“嘿!开车时发生了疯狂的事”,那么大脑的某个部分开始转动开关,然后说: “哦,这是Neelabh告诉我的一个故事,这个故事的主角是Neelabh ,路上发生了什么事. ”现在,您将保留我刚刚告诉您的句子的一部分,当您听我说其他句子时神经网络预测大量数据,为了理解整个故事,您必须保留上一句话信息中的一些记忆.

另一个例子是使用递归神经网络进行视频处理. 当前帧中发生的情况很大程度上取决于前一帧的内容. 在一段时间内,循环神经网络应该了解要保留的内容,从过去的数据中要保留的内容以及要保留的当前状态策略的多少,这使其比简单的前馈神经网络更强大.

我对循环神经网络的优势印象深刻,因此决定用它来预测美元和印度卢比之间的汇率. 此项目中使用的数据集是1980年1月2日到2017年8月10日的汇率数据. 稍后,我将提供一个链接来下载此数据集和实验.

表1样本数据集

数据集显示1卢比的价值. 从1980年1月2日到2017年8月10日,我们共有13,730条记录.

美元兑印度卢比

从整个阶段来看,1美元的卢比价格一直在上涨. 我们可以看到,美国经济在2007年至2008年之间急剧下滑,这在很大程度上是那个时期的大萧条造成的. 从2000年代末到2010年代初,全球市场普遍经历了经济衰退.

这个时期对世界发达的经济体来说不是很好,特别是北美和欧洲(包括),它们已陷入严重的经济衰退. 许多较新的发达经济体遭受的损失要小得多,尤其是中国和印度,其经济在此期间已大幅增长.

神经网络预测大量数据_php循环处理大量数据_神经网络预测大量数据

现在,要训练模型,我们需要将数据分为测试集和训练集. 在处理时间序列时,将其分为特定日期的训练集和测试集非常重要. 因此,我们不想看到的是测试数据出现在训练数据之前.

在我们的实验中,我们将一个日期(例如2010年1月1日)定义为单独的日期. 训练数据为1980年1月2日至2009年12月31日,大约有11,000个训练数据点.

测试数据集介于2010年1月1日至2017年8月10日之间,大约有2700个数据点.

测试培训数据划分

接下来要做的是标准化数据集. 只需要调整和转换训练数据,然后转换测试数据. 原因是假设我们不知道测试数据的规模.

规范化或转换数据意味着应用介于0和1之间的新缩放变量.

完全连接模型是一个简单的神经网络模型,它构造为单输入单输出回归模型. 基本上,它需要前一天的价格来预测第二天的价格.

我们使用均方误差作为损失函数,并使用随机梯度下降作为优化器. 在训练了足够的纪元之后,我们将找到一个更好的局部最优值. 以下是全连接层的摘要.

全连接层概述

在将模型训练了200个纪元之后,或者不管是哪个Early_callbacks(即满足条件的早期终止回调),该模型都会通过训练来学习数据模式和行为. 由于我们将数据分为训练集和测试集,因此我们现在可以预测与测试数据相对应的值,并将其与真实值进行比较.

真实值(蓝色)与预测值(橙色)

如您所见,此模型的表现不佳. 本质上,它只重复了一点点就可以重复先前的数据. 全连接模型无法根据单个先前值预测未来数据. 现在,让我们尝试使用递归神经网络,看看它做得如何.

php循环处理大量数据_神经网络预测大量数据_神经网络预测大量数据

我们使用的递归网络模型是单层顺序模型. 输入维形状为(1,1)的层中使用了六个LSTM节点,即网络只有一个输入.

LSTM模型摘要

最后一层是密集层(即完全连接的层),损失函数使用均方误差,优化器使用随机梯度下降算法. 我们使用early_stopping回调对该模型进行了200次训练. 该模型的轮廓如上所示.

LSTM预测

该模型已学会在一年内重现数据的整体形状,并且没有像以前使用的简单前馈神经网络那样延迟. 但是它仍然低估了一些观察结果,因此该模型肯定有改进的空间.

可以对模型进行大量更改以使其更好. 通常,可以通过修改优化器直接更改模型训练配置. 另一个重要的修改是使用滑动时间窗口方法,这是流数据管理系统领域中的一种方法.

此方法来自仅最新数据很重要的观点. 您可以使用一年的模型数据,并尝试对明年第一天进行预测. 滑动时间窗方法对于获取数据集中的重要模式非常有用,这些模式高度依赖于过去的大量观测结果.

您可以尝试根据个人喜好修改模型,并查看模型对这些修改的反应.

我在github帐户的仓库中以python的深度学习方式提供了此数据集. 请随时下载并使用它.

我个人关注了一些喜欢的数据科学家,例如Kirill Eremenko,Jose Portilla和Dan Van Boxel(著名的Dan Dos Data)等等. 它们中的大多数可以在不同的博客站点上找到. 他们的博客中有很多不同的主题,例如RNN,卷积神经网络和LSTM,甚至是最新的神经图灵机技术.

了解各种人工智能会议的最新消息. 顺便说一句,如果您有兴趣的话,基里尔·埃雷缅科(Kirill Eremenko)将于今年11月来到圣地亚哥,与他的团队一起就机器学习,神经网络和数据科学进行演讲.

LSTM模型足够强大,可以学习最重要的过去行为并了解这些过去行为是否对将来的预测具有重要意义. 在许多应用中,LSTM的使用率非常高. 语音识别,音乐合成和手写识别等应用甚至在我目前对人口流动和旅游业预测的研究中.

我认为LSTM就像是一个具有自己记忆的模型,在做出决策时可以像聪明人一样发挥作用.

再次感谢您,并祝您在机器学习的学习过程中幸福!

如果您发翻译计划”来修改翻译和PR,您还可以获得相应的奖励积分. 本文开头的永久链接是GitHub上的MarkDown链接.


本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-287222-1.html



温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html