外盘速递

2019-09-20 今日头条

机器学习-神经网络第一期:【长短时记忆神经网络模型】LSTM

摘要:当前机器学习的研究方向主要分为两类:一类是传统机器学习的研究,该类研究主要是研究学习机制,注重探索通过算法来模拟人的思维和学习机制 ...

当前机器学习的研究方向主要分为两类:一类是传统机器学习的研究,该类研究主要是研究学习机制,注重探索通过算法来模拟人的思维和学习机制,如:决策树、随机森林、人工神经网络、贝叶斯学习等。一类是大数据环境下机器学习的研究,大数据的价值体现主要集中在数据的转向以及数据的信息处理能力。大数据时代的到来,对数据的转换,数据的处理、数据的存储提供了更好的技术支持,产业升级和新产业诞生形成了一股强大的推动力量。
 
本报告对机器学习中的一类算法---人工神经网络中的长短时记忆模型(LSTM)进行探索。LSTM是循环神经网络(RNN)的一种,改进后的LSTM较好的解决了时间序列的预测问题,因此也成为当下最主流的RNN算法,同时在语音识别、图片描述、自然语言处理等许多领域中得到较好的应用。
 
1、神经网络
1.1神经网络原理
神经网络的原理是模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
 
1.2神经网络结构
典型的神经网络结构如下图所示,构成这个网络结构的层分别为:输入层、隐藏层、输出层。
 
图一:神经网络工作图
 
 
 
 
 
 
 
资料来源:华鑫期货研究所
 
输入层负责给予神经网络的信息;隐藏层对外部来说不可见,负责特征提取;输出层显示神经网络计算出的结果。
 
1.3神经元工作数学表达
神经元的多个输入x1x2x3,…xn整理为数学表达式:
y=a(z)z=w1x1+ w2x2+…+ wnxn+b
其中,w为权重,b为偏置,n为输入的个数,a(z)为激活函数。
 
 
2.激活函数
2.1激活函数
激活函数(Activation Function)在神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。常用的激活函数有Sigmoid函数、Tanh函数和ReLU函数。
2.1.1激活函数的作用
激活函数是用来加入非线性因素,提高神经网络对模型的表达能力,解决线性模型所不能解决的问题。对于神经网络模型去学习、理解复杂和非线性的函数来说具有十分重要的作用。
 
2.1.2 三种常用激活函数
2.1.2.1 Sigmoid函数
Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。由于连续、光滑可导的两种性质使得Sigmoid函数很容易处理,因此它常被用作神经网络的阈值函数,将变量映射到0,1之间,公式如下:

函数图像如下:
 
图二:Sigmoid函数图像
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
例:我们将神经元的示意图抽象化之后,对于输出信号,我们也对其生物上的限制进行一般化。根据激活与否,生物学上的神经元的输出y分布取值1和0(激活与否用1和0表示):
 
图三:神经元工作图
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
这时表示激活与否的式子如下:
y= a(z)z=w1x1+ w2x2+…+ wnxn+b
这里的函数a是建模者定义的激活函数,即Sigmoid函数,x1x2x3,…xn是模型允许的任何数值,y是函数a能取到的任意数值,其输出值是大于0小于1的任意值。
 
2.1.2.2 Tanh函数
Tanh是双曲函数中的一个,Tanh()为双曲正切。在数学中,双曲正切“Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。
公式如下:

函数图像如下:
 
图四: Tanh函数图像
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
相较而言,在隐藏层,tanh函数要优于sigmoid函数,可以认为是sigmoid的平移版本,优势在于其取值范围介于-1 ~ 1之间,数据的平均值为0,而不像sigmoid为0.5,有类似数据中心化的效果。但在输出层,sigmoid也许会优于tanh函数,原因在于你希望输出结果的概率落在0 ~ 1 之间,比如二元分类,sigmoid可作为输出层的激活函数。
 
2.1.2.3 ReLU函数
Relu激活函数(The Rectified Linear Unit),用于隐层神经元输出。公式如下:
 

函数图像如下:
 
图五: ReLU函数图像
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
                    
实际应用中,特别是深层网络在“训练”时,tanh和sigmoid会在端值趋于饱和,造成训练速度减慢,故深层网络的激活函数默认大多采用relu函数,浅层网络可以采用sigmoid和tanh函数。
                 
 
3.输出过程
假定图一的神经网络中,激活函数采用sigmoid,由输入节点1、2、3的值,有:
 
输出节点y1的表达式为:

同理,我们可以算出a5a6a7y2的值,这就完成了神经网络输出值的计算。
 
 
4.神经网络优化
4.1 代价函数介绍
向神经网络提供学习数据,并确定符合学习数据的权重和偏置,这个过程称为学习或训练,在数学上一般称为最优化,最优化的目标函数是代价函数,也可以称为损失函数、目的函数、误差函数等。
 
4.1.1代价函数原理
神经网络确定权重和偏置的参数优化原理与回归分析相同,求使得表示误差总和CT的代价函数达到最小,即代价函数CT为误差的平方和,CT=C1+C2+...Cn,其中C1C2...Cn是输出层的变量与该变量对应的正解的平方误差C
 
4.1.2代价函数数学表达
代价函数CT最小值条件的方程为dCT/dx=0dCT/dy=0dCT/dz=0
 
图六: 神经网络平方误差图
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 

  • a1a2来表示。设这些输出变量对应的正解为t1t2。于是,预测值与正解的平方误差C可以如下表示:
C=1/2*{(t1-a1^2+(t2-a2^2}
  •  
 
4.2误差反向传播法(BP法)
  •  
 
4.2.1梯度下降法
最小化的方法中最有名的就是梯度下降法,它的理论思想就是沿着梯度dCT/dxdCT/dydCT/dz的方向一步一步地移动最终到达最小值,简洁数学表达式为
  • C1C2... Cn = - N * CT (哈密顿算子)
  • CT为误差总和,CT 为它的梯度,N为正的微小的常数(步长),在神经网络中也称学习率,是个只能通过反复试验来寻找恰当的值。
  •  
 
4.2.2误差反向传播法
  • δδ为平方误差C关于权重w和偏置b的偏导数)的递推关系式,并通过这些递推关系式来回避复杂的导数计算。
  • δ的数学方程:δ=dC/dz ;  dC/dw=δ*a^(-1),  dC/db=δ ;
 
 
图七:误差反向传播法的流程图
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
  •  
 
4.3 小结
  •  
 
 
5、LSTM模型对期货价格预测的实证分析(5分钟、1小时、1日数据)
5.1数据预处理
5.1.1数据归一化
  •  
 
5.1.2时间序列转换成监督学习
对于时间序列问题,我们通过使用最后一个t-1时刻的值预测t时刻的值。监督学习问题由输入模式(X)和输出模式(y)组成,使得算法可以学习如何从输入模式预测输出模式。具体的操作就是用Pandas的shift()函数将整体的时间数据向后滑动一格,和原始数据拼接,就形成了监督的数据。
 
5.1.3数据集划分
  •  
 
5.2数据来源与特征项
  •  
 
5.2.1单变量长短时记忆神经网络模型LSTM
5.2.1.1长短时记忆网络
  • 入,从而适应随时间动态掌握数据结构,具有较高的预测能力。在t时刻,LSTM的输入有三个:当前时刻网络的输入 、上一时刻LSTM的输出 、以及上一时刻的单元状态 。LSTM的输出有两个:当前时刻网络输出值 、当前时刻的单元状态
 
5.2.1.2 Adam优化器
 Adam优化器,是一种计算每个参数的自适应学习速率的方法,考虑了过去的平方梯度的指数衰减平均值和过去梯度的指数衰减平均值。
 
5.2.1.3训练结果
图八:LSTM单变量模型训练损失率比较
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
  •  
  •  
  •  
周期 训练损失率 验证损失率 模型训练耗时(秒) RMSE
5分钟 0.0037 0.0096 48.672 24.731
1小时 0.0117 0.0082 6.183 24.212
1日 0.026 0.0177 2.005 52.401
  •  
  •  
 
图九:LSTM单变量模型5分钟数据预测结果
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
图十:LSTM单变量模型小时数据预测结果
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
 
 
 
 
图十一:LSTM单变量模型日数据预测结果
 
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
5.2.2多变量长短时记忆神经网络模型LSTM
  •  
  •  
 
图十二:LSTM多变量训练损失率比较
 
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
  •  
  •  
周期 训练损失率 验证损失率 模型训练耗时(秒) RMSE
5分钟 0.0040 0.0061 83.218 30.504
1小时 0.0118 0.0095 17.764 23.744
1日 0.0239 0.0176 5.029 45.100
 
  •  
图十三:LSTM多变量模型5分钟数据预测结果
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
图十四:LSTM多变量模型小时数据预测结果
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
图十五:LSTM多变量模型日数据预测结果
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
  •  
 
 
6、交易策略
6.1策略描述
  •  
 
6.2策略实现
  •  
 
图十六:LSTM价格预测交易策略净值
 
 
 
 
 
 
 
 
 
 
 

资料来源:华鑫期货研究所
 
  •  
  •  

走进华鑫

行业资讯

研究中心

客服中心

投资者园地