您好,欢迎访问三七文档
2BP神经网络模型原理2.1BP模型概述BP(Back-Propagation)神经网络是一类前馈型神经网络,它由输入层、中间层和输出层组成,中间层也就是隐含层,可以是一个或多个。每层包含若干互不连接的神经元节点,相邻层之间各神经元通过不断变化的连接强度或权值进行全连接。图1所示为BP神经网络拓扑结构。其中:输入层有n个节点,对应输入x1~xn;输出层有m个节点,对应输出y1~ym;隐含层有q个节点,对应的输出z1~zq;输入层与隐含层之间的权值vik,隐含层与输出层之间的权值为wkj。BP网络中隐含层激活函数通常采用S型的对数或正切函数和线性函数。由于激活函数是连续可微的,不仅使得网络的容错性较好,而且可以严格利用剃度法进行推算,权值修正的解析式十分明确[7]。BP网络中隐含层激活函数通常采用S型的对数或正切函数和线性函数。由于激活函数是连续可微的,不仅使得网络的容错性较好,而且可以严格利用剃度法进行推算,权值修正的解析式十分明确[7]。2.2BP学习算法BP学习算法是一种有监督的学习过程,它是根据给定的(输入、输出)样本数据来进行学习,并通过调整网络连接权值来体现学习的效果。就整个神经网络来说,一次学习过程由输入数据的正向传播和误差的反向传播两个子过程构成。设有N个学习样本(Xk,Y*k),k=1,2,…,N,对样本(Xk,Y*k),在正向传播过程中,样本k的输入向量Xk=(x1k,x2k,…,xnk)从输入层的n个节点输入,经隐含层逐层处理,在输出层的m个节点的输出端得到样本k的网络计算输出向量Yk=(y1k,y2k,ymk)。比较Yk和样本k的期望输出向量Y*k=(y*1k,y*2k,…,y*mk),若N个学习样本的计算输出都达到期望的结果,则学习过程结束;否则,进入误差反向传播过程,把Yk与Y*k的误差由网络输出层向输入层反向传播,在反向传播过程中,修改各层神经元的连接权值[8]。BP反向传播算法的具体步骤可归纳如下:(1)输入N个学习样本(Xk,Y*k),k=1,2,…,N。(2)建立BP网络结构。确定网络层数L≥3和各层节点数,由学习样本输入向量Xk的长度n确定网络输入层节点数为n;由学习样本输出向量Y*k的长度m确定网络输出节点数为m;第l层的节点数为n(l)。定义各层间连接权矩阵,第l层连接第l+1层的连接权矩阵为W(l)=[W(l)ij]n(l)×n(l+1)(l=1,2,…,L-1),初始化各连接权矩阵的元素值。(3)输入允许误差ε和学习率η,初始化迭代计算次数t=1,学习样本序号k=1。(4)取第k个学习样本(Xk,Y*k),Xk=(x1k,x2k,…,xnk),Y*k=(y*1k,y*2k,…,y*mk)。(5)由Xk进行正向传播计算,计算输入层各节点的输出为O(l)jk=f(xjk)(j=1,2,…,n)(1)逐层计算各层的各节点输入和输出为I(l)jk=n(l-1)i=1Σw(l-1)ijO(l-1)ik(2)O(l)jk=f(I(l)jk)(l=2,…,L;j=1,2,…,n(l))(3)(6)计算输出层(第L层)的各输出节点误差为yjk=O(l)k(4)Ejk=12(y*jk-yjk)2(j=1,2,…,m)(5)(7)若对N个学习样本的任一样本k有Ejk≤ε(j=1,2,…,m),则学习过程结束;否则,进行误差反向传播修改各连接权矩阵。(8)误差反向传播计算。修改第L-1层隐含层至输出层(第L层)的连接权矩阵为δ(L)jk=-(y*jk-yjk)f(I(L)jk)(6)△w(L-1)ij(t)=ηδ(L+1)jiO(L)ik(7)w(L-1)ij(t+1)=w(L-1)ij(t)+△w(L-1)ij(t)(8)(j=1,2,…,m;i=1,2,…,n(L-1))反向逐层修改连接各隐含层的连接权矩阵:δ(l)jk=f(I(l)jk)n(l+1)q=1Σδ(l+1)qkw(l)jq(9)△w(l-1)ij(t)=-ηδ(l)jkO(l-1)ik(10)w(l-1)ij(t+1)=w(l-1)ij(t)+△w(l-1)ij(t)(11)(l=L-1,…,2,1;j=1,2,…,n(l);i=1,2,…,n(l-1))(9)k=k+1(modN),t=t+1转步骤(4)。3样本选取与模型设计3.1样本选取和分析本文主要针对沪深300指数的日内高频数据,对其收益率进行建模和预测。所用数据全部来自同花顺股票交易系统,采用沪深300指数2008年7月1日至9月18日每日的1分钟高频数据,共13817个有效样本,其中包括10658个学习样本和3159个测试样本。本文的研究对象是高频金融时间序列的收益率,并采用下面的公式来表示:Rt(i)=Pt-Pt-iPt-ii=1,2,…,n(12)式中:Rt为沪深300指数时刻(以1分钟为单位)的收益率,Pt为t时刻的收盘价格,Pt-i为t-i时刻的收盘价格。在金融文献中,资本资产定价模型(CAPM)理论就假定资产收益率序列是不可预测的,应没有自相关性。零自相关系数的检验被用来作为有效市场假定是否成立的判定工具。然而,股价的决定方式和指数收益率的计算方式可导致在观察到的收益率序列中有自相关性,尤其是分析高频数据时。为研究样本时期内高频金融时间序列的计量统计特点,本文采用Eviews对该数据进行相关性检验,并得到高频金融数据波动率自相关及偏相关分析如表1所示:从表1可以发现,在0.05的临界水平下,高频金融时间序列收益率与其37阶以内的滞后项存在较为显著的相关性,但是与37阶以后的滞后项不存在明显的相关性。因此,在对高频金融时间序列收益率进行建模时,可以选择当前收益率及其37阶滞后项作为变量。3.2输入\出层的向量确定神经网络不需要任何已知的统计或数学知识描述输入—输出模式间的映像,它是根据已选取的样本数据,通过学习和训练,凭自身的网络结构实现对信息的记忆,然后对测试样本进行预测。因此,在神经网络训练时,训练数据应包含所研究对象的全部模式。即,本文输入向量的各个分量应该选取能充分反映沪深300指数收益率的定量指标。通过对高频金融时间序列波动率相关性表的研究,确立了38个输入层节点(神经元),包括时刻的收益率及其前37分钟每分钟的收益率,即Rt(1)、Rt(2)、...、Rt(37)、Rt(38)。输出层是对基于高频数据的收益率进行预测,即以时刻的沪深300指数收益率作为输出神经元。输入及输出变量的样本数据见表2:表2输入及输出变量样本数据片断高频数据时点Rt(1)Rt(2)Rt(3)…Rt(38)Rt+1第1分钟0.0026430.0025640.002852…0.0112750.002858第2分钟0.0028580.0055090.005430…0.013909-0.00079第3分钟-0.000790.0020680.004717…0.0112150-0.001253.3隐层神经元数目的确定隐层神经元负责实现非线性样本的线性转换,所以在BP网络设计中具有十分重要的作用。隐含层层数和节点个数可自行指定,一般在神经网络中选择一层隐含层,而确定合适的隐层神经元数目是设计BP网络的关键。在以往的众多研究中,人们总结出一些关于确定隐层神经元个数的经验公式,其中,Mirchadani认为隐含层单元数J与输入模式P的关系为:J=log2P。本文根据Clementine神经网络训练方法中的快速训练法,运用多层感知机模型,确定为一层隐含层,而隐含层的节点数目依据公式max(3,(ni+n0)/20),其中:ni为输入节点数;n0为输出节点数。根据以上公式,可以计算隐含层的神经元数目为3。3.4激活函数的确定激活函数是一个神经元及网络的核心,网络的预测能力在很大程度上取决于所采用的激活函数。激活函数f(x)的作用是激活神经元,使其对输入产生响应。在实际应用中,可根据需要选取适当的激活函数,常用的是Sigmoid类型的函数。由于激活函数f(x)所具有的非线性特征,使BP算法训练的多层前馈式网络建立了从输入到输出的高度非线性映射,可以表达复杂的客观现象。而且,由于其导数常常可用f(x)自身表示,所以在误差反向传播的过程中,不需要另外计算激活函数的导数,大幅度地减少了计算量,提高了网络的效率。在实际应用中,通过对股票样本数据的学习训练,可以发现采用f(x)=tan!1/[1+exp(-x)]作为激活函数,网络的收敛速度最快。4实证结果与分析本文运用SPSSClementine数据挖掘软件,以高频数据为样本对沪深300指数的日内收益率构建BP神经网络模型。其基本过程是,首先将2008年7月1日至8月29日的10658个样本数据作为学习和训练样本,建立一个三层BP神经网络模型,然后用剩余的3159个样本数据作为测试样本,来进行模式识别,再判断神经网络模型对沪深指数收益率的拟合程度及预测效果。用样本数据对神经网络进行训练时,需要网络训练参数进行设置,本文确定动力因子α=0.9,较高的α值有助于避免网络的局部极小值,使神经网络的权数调整更加平滑;预测精度为90%,迭代周期为250次,控制误差取为0.0001。最大容许误差设为0.005,学习步长为0.01,最大训练次数为500。利用上述神经网络及其网络规则,可以得到预测精度为98.72%的神经网络模型。基于已构建的BP神经网络模型,再将其对剩余3159个测试样本进行判断,来验证系统的预测结果。在Clementine中,将BP神经网络加入到测试样本的数据流中,可以得到测试样本相对应的沪深指数收益率预测值。再将收益率预测值和收益率实际值做比较分析,如图2所示:从图2可以发现,神经网络模型较好地拟合了测试样本的收益率,仅仅有几个时点预测效果不佳。由于测试样本较大,为了更加直观清楚地判断收益率的预测效果,选取了预测周期第一天的收益率实际值与预测值进行比较,得到图3的时间序列图:由图3可见,BP神经网络对于沪深300指数收益率的拟合效果相当不错,就整体趋势而言,网络模型基本上模拟出实际收益率的特征,说明BP神经网络对于指数收益率的预测能力是较强的。为检验模型的预测效果,引入MAPE指标,MAPE平均相对误差绝对值的定义为:MAPE=1nni=1Σyi-y赞iyi(13)式中,yi为实际值,y赞i为预期值。根据上述公式,计算得到BP神经网络3159个测试样本的MAPE=1.66%,表明神经网络的预测精度非常高,BP神经网络对于高频金融时间序列收益率的预测是有效的,而且预测效果非常好。5结论与启示股票市场高频数据是当前金融计量研究的热点问题,基于高频数据的股指日内收益率建模与预测对于深入研究证券市场具有十分重大的意义。本文采用数据挖掘中的神经网络对高频数据进行建模与预测,实证研究表明其预测能力是非常有效的,可以有效地模拟出短期的沪深300股票指数时间序列收益率的趋势特征。这不仅仅验证了数据挖掘技术在高频数据中应用的可行性,而且也为进一步测算股票市场波动率与金融领域的衍生工具定价、风险管理与控制及投资组合等提供了一个可靠的工具。参考文献[1]RueyS.Tsay.AnalysisofFinanccialTimeSeries[M].北京:机械工业出版社,2006.234-263.[2]AtiyaAF.Bankrucypredictionforcreditriskusingneuralnetworks:Asurveyandnewresults.NeuralNetworks,IEEETransactionson,2001,(12):929-935.[3]ChenJF.Analysisofanadaptivetime-seriesautoregressivemoving-averagemodelforshort-termloadforecasting.FuelandEnergyAbstract,1996,(37):108-116.[4]MaasoumiEandRacineJ.Entropyandpredictabilityofstockmarketretu
本文标题:神经网络模型原理
链接地址:https://www.777doc.com/doc-4224095 .html