神经网络模型原理.doc
文本预览下载声明
2 BP 神经网络模型原理
2.1 BP 模型概述
BP(Back-Propagation)神经网络是一类前馈型神经网络,它由输入层、中间层和输出层组成,中间层也就是隐含层,可以是一个或多个。每层包含若干互不连接的神经元节点,相邻层之间各神经元通过不断变化的连接强度或权值进行全连接。图1 所示为BP 神经网络拓扑结构。其中:输入层有n 个节点,对应输入x1~xn;输出层有m 个节点,对应输出y1~ym;隐含层有q个节点,对应的输出z1~zq;输入层与隐含层之间的权值vik,隐含层与输出层之间的权值为wkj。
BP 网络中隐含层激活函数通常采用S 型的对数或正切函数和线性函数。由于激活函数是连续可微的,不仅使得网络的容错性较好,而且可以严格利用剃度法进行推算,权值修正的解析式十分明确[7]。
BP 网络中隐含层激活函数通常采用S 型的对数或正切函数和线性函数。由于激活函数是连续可微的,不仅使得网络的容错性较好,而且可以严格利用剃度法进行推算,权值修正的解析式十分明确[7]。
2.2 BP 学习算法
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)ij O(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)
ji O(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)
qk w(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 指数的日内高频数据,对其收益率进行建模和预测。所用数据全部来自同花
显示全部