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