在前文中,我们利用tushare和python工具分析实现了对证券市场股票数据的获取与保存。验证了股票收益率符合正态分布,进而验证了股票走势较好符合布朗运动规律、维纳过程和伊藤过程的这一基础理论事实。此后,我们进一步探究股票价格的运动规律,引入基于神经网络的LSTM模型,通过学习以往的股票价格运动对未来趋势加以预测,实现了更为细致精确的拟合。
提示:本文内容限于本人对相关技术的原创性思考和理解,仅供学习参考。
目录
前言
本文主要分为三部分,在第一部分主要是对机器学习中的人工神经网络技术作简要的介绍和引入。第二部分,将简要说明时间序列(也即随机过程)数据所具有的特征,以及传统神经网络对于时间序列的学习所具有的缺陷,并引出当前较为时兴和前沿的LSTM神经网络技术,强调其在时间序列数据训练和处理上所具有的优越性。最后,本文将以LSTM网络在沪深股票指数上的学习与训练作为技术的应用实例,从实际的代码层面对LSTM神经网络的具体原理和工作机制进行更为深入的讲解。
一、神经网络是什么?
什么是神经网络呢?一说到神经网络,根据我们在中学期间所学习的生物知识,我们会第一时间联想到我们人类大脑中所拥有的生物神经网络。作为计算机领域人工神经网络技术的原型,人类大脑中的生物神经网络具有极为强大的功能。
在大脑皮层中,约有10^11个神经元通过神经突触与大约103个其它神经元相连,形成了一个高度复杂高度灵活的动态网络。正是这样一个庞大而精密的神经网络系统,让人类得以从事各项复杂精巧的工作,从而开创了属于人类的文化与历史。
接下来,我们将神经网络细化至单个的神经元细胞。在神经元细胞中,外部刺激通过树突输入至细胞体。当细胞体接收的信号量超过某个阈值时,细胞体就会被激活,产生电脉冲,并将电位信号沿着轴突并通过突触传递到其它神经元。神经元细胞的工作机制,启发软件工程师设计出一种最为基本简单的神经网络模型结构,也即右图所示的感知器模型。
- 感知器模型包括了由两个输入神经元组成的输入层和一个输出神经元的输出层,能够完成基础的与或非运算。
此后,工程师们便在单个网络模型基础上不断丰富完善,搭建多个信息处理层,构建各种激励和损失函数,并用网络相互关联各层的多个细胞,组合构成出一个庞大可观的复杂神经网络决策模型。
其中,长短期记忆LSTM神经网络是以循环神经网络RNN为基础算法模板的改进算法。极大地优化了对于长期依赖信息的学习过程,为长期随机过程序列数据的机器学习提供了一份较好的解决方案。
二、时间序列与神经网络
1.传统神经网络的局限性
传统的神经网络模型在对于某一类型的数据处理上显得有些捉襟见肘。这便是所谓的随机过程,也即传统意义上所说的“时间序列数据”。这类数据相较于常规数据而言,其随机变量的变化依赖于某一特定参数(通常自变量轴为时间),也即在时间轴上的不同时间点处具有不同的变化特征的一类数据。传统神经网络只能单次处理孤立的输入信息并产生输出,但在输入输出的前后序列间却没有构建充分的关联。
- 打个比方,在英语完形填空的题目上,I grew up in China. There’s many delicious food…I speak(?)。此处根据逻辑判断,很轻易便能依照前文的China联想到“Chinese”。但是对于计算机的神经网络模型而言,却是很难推测出这一缺失信息的。
- 另一个例子是,如今的拼音输入法能够根据前文的输入内容自动猜测后续内容,在词性推测、语义推断和输入习惯上都进行了充分学习。但是以前常用的智能ABC输入法,只能根据单个输入预测下一词,而不能从整体给出判断建议,也是传统神经网络短板的集中体现。
对于随机过程的时间序列数据而言,其重要特征和意义,往往就蕴含于序列的前后关联性上,常常具备时间相关性。因此,传统神经网络所采用的简单分类划分的策略,不再普遍适用于此类数据的学习与预测。
2.循环神经网络RNN
循环神经网络RNN是一类以序列数据为输入,并在序列的演进方向递归且所有节点按链式连接的递归神经网络。RNN的引入最初是为了解决时间序列数据的机器学习问题的,可被视为同一神经网络的多次复制和循环消息传递,其链式的特征能够较好揭示序列的相关性。RNN的输入和输出能够前后关联,便于存储长期记忆,并随时根据当前的输入对状态进行更新,克服了传统神经网络的短板。
但是,当RNN学习的序列间隔不断增大时,其对信息的学习能力会不断衰减至0,从而产生了长期记忆的依赖问题,也即RNN对于长记忆依赖关系的学习能力趋近于0。
3.长短期记忆神经网络LSTM
长短期记忆神经网络LSTM是在RNN的循环神经网络上加以改造和优化的神经网络模型,通过在RNN的重复神经网络模块基础上引入四层神经网络交互层,极大地优化了对于长期依赖信息的学习过程,为长期随机过程序列数据的机器学习提供了一份较好的解决方案。
在LSTM中,其关键在于细胞状态。类似于传送带,细胞状态呈水平线在整个链图上贯穿运行,而LSTM则通过精心设计的三大门层结构,控制信息在细胞上的传递与交互,从而影响对序列数据的学习效果。
三大门层是LSTM神经网络的核心,包括决定从细胞状态中丢弃信息的忘记门层、确定添加至细胞状态中信息的输入门层和确认过滤后输出信息内容的输出门层。三大门层的核心内涵如下:
- 忘记门层:对于前一状态矩阵中每个输入值都会产生一个对应的向量,该向量中的0-1值表示细胞状态中的信息遗忘的程度。具体逻辑如图所示。
- 输入门层:在输入逻辑上,首先利用输入门层筛选所需要更新的信息,然后利用内部的一个tanh层得到新的候选细胞信息。接下来,通过忘记门层筛选忘记旧细胞信息的一部分(σ),再通过输入门层选择添加候选细胞信息的一部分(忘记后剩下的部分与新添加信息的权重加和),从而更新得到新的细胞信息。
- 输出门层:细胞状态更新完毕后,将输入信息经过输出门层的sigmoid层得到判断条件,然后将细胞状态经过tanh层激活得到一个-1~1之间值的向量。该向量再与输出门得到的判断条件相乘,便得到了该层LSTM网络的输出结果。
整体流程:遗忘→根据现有的输入和上一个细胞的输出更新状态→根据现有的状态输出预测值。
在上述所列示的图中,有几个要点:
-
LSTM模块当中的线就是状态矩阵C和输出h的流动,一般来说变动很少,主线是最上面那条直线,其他的线都是对这条主要流动线进行微加工。
-
里面有一些黄色方块代表层:σ激活层输出0到1的值,代表权重;tanh层表示对输入进行激活,输出新的候选值。
-
粉色的部分代表操作,x号代表矩阵点乘,+代表添加,tanh代表运算。
概括来说,LSTM上细胞状态信息流动过程的主要特征可总结为以下三点:
- 基于RNN,更好适应刻画时间序列长记忆依赖关系。具有更多的神经网络重复模块链结构层数,构建门层方式用以交互。相较于BP神经网络和传统RNN模型具有更高的预测准确度。
- LSTM具备优异的特征,包括时间序列特性、选择记忆特性以及信息门层逻辑的架构。
- LSTM作为一种模型本身,自然也具备一些短板和不足。其中最大的缺陷便是“时滞效应”,也即预测值可能在时间轴上相较真实值具备滞后性。这一现象产生的原因可追溯至时间序列本身所存在的自相关特性,可通过对时间序列数据采用广义差分法等消减自相关性,或者调整优化模型训