做者:宋彤彤前端
相信不少人都会对股票市场数据的起起伏伏感到好奇,特别想知道他们将来的趋势会是怎样,最近看到一篇用 LSTM 作初步的股票市场预测的文章,在这里分享给你们。网络
首先咱们来认识一下 LSTM 神经元:
长期困扰传统神经网络结构的一个基本问题是解释“信息”和“上下文”相互依赖的输入序列。这里的“信息”能够是句子中先前的单词以容许上下文预测下一个单词多是什么,或者它能够是序列的时间信息以容许上下文作基于时间的序列元素预测。
简而言之,传统的神经网络每次都会输入独立的数据向量,而且没有内存概念来帮助他们处理须要内存的任务。
解决这个问题的早期尝试是对网络中的神经元使用简单的反馈类型方法,其中输出被反馈到输入中以提供最后看到的输入的上下文。 这些被称为递归神经网络(RNN)。 虽然这些 RNN 在必定程度上起做用,但任何大规模使用 RNN 都会致使消失梯度的问题。这个问题致使 RNN 在大多数现实问题中都不适合,所以,须要找到另外一种解决上下文存储的方法。
这时长期短时间记忆(LSTM)神经网络就派上用场了。 与 RNN 神经元同样,LSTM 神经元在其管道中存储上下文,以容许解决顺序和时间问题,且没有影响其性能的消失梯度问题。
对于上下文,下面是 LSTM 神经元的典型内部工做图。 它由若干层和逐点操做组成,这些操做充当数据输入、输出和遗忘的门,为 LSTM ****单元状态提供信息。 这种单元状态是保持网络和输入的长期记忆和上下文的缘由。
app
第一种是逐点预测,即咱们每次仅预测一个点,将此点画出来,而后使用刚预测的点的真实数据填补到下一个窗口数据再预测下一个点。
该方法作正弦波预测会呈现出这样的图像:
机器学习
咱们能够用逐点估计精确预测几百个正弦波步长。 但咱们并不能将此办法应用于股票市场,由于现实世界,并非那么简单。
与正弦波不一样,股票市场时间序列不是能够映射的任何特定静态函数。 描述股票市场时间序列运动的最佳属性是随机游走。 做为随机过程,真正的随机游走没有可预测的模式,所以尝试对其进行建模将毫无心义。 幸运的是,许多方面都在持续争论说股票市场不是一个纯粹的随机过程,这使咱们可以从理论上说明股票市场时间序列可能具备某种隐藏模式。 正是因为这些潜在的隐藏模式,LSTM 深度网络在股票市场的研究才有了意义。
股票市场的数据又涉及到开盘价,最高价,最低价,收盘价以及每日交易量。它是多维的。
若是仅用收盘价做为输入,作一维的模型预测,分别用上面的三种预测方法,咱们将获得如下结果:
逐点预测:
函数
目前使用基础的 LSTM 存在一些局限性,特别是在使用金融时间序列时,该系列自己具备很难建模的非平稳特性(尽管在使用贝叶斯深度神经网络方法解决时间序列的非平稳性方面取得了进展)。一样对于一些应用,还发现基于 Attention 的神经网络机制的新进展已经超过 LSTM(而且LSTM 与这些基于 Attention 机制相结合已经超出了它们自身)。这里咱们提供该文章的项目地址和一些参考资料,感兴趣的同窗能够进一步探索。性能
项目源码地址:https://momodel.cn/explore/5d6b22c5c7e247a961bc8084?type=app
** 学习
博客:www.altumintelligence.com/articles/a/…
视频资料:www.youtube.com/watch?v=2np…
论文:LSTM,1997 www.bioinf.jku.at/publication…测试
Mo(网址:https://momodel.cn)是一个支持 Python 的人工智能在线建模平台,能帮助你快速开发、训练并部署模型。大数据
Mo 人工智能俱乐部 是由人工智能在线建模平台(网址:momodel.cn)的研发与产品团队发起、致力于下降人工智能开发与使用门槛的俱乐部。团队具有大数据处理分析、可视化与数据建模经验,已承担多领域智能项目,具有从底层到前端的全线设计开发能力。主要研究方向为大数据管理分析与人工智能技术,并以此来促进数据驱动的科学研究。
目前团队每两周(周六)在杭州举办线下沙龙,进行机器学习相关论文分享与学术交流。但愿能汇聚来自各行各业对人工智能感兴趣的朋友,不断交流共同成长,推进人工智能民主化、应用普及化。人工智能