用BP神经网络预测股票市场涨跌资料下载.pdf
《用BP神经网络预测股票市场涨跌资料下载.pdf》由会员分享,可在线阅读,更多相关《用BP神经网络预测股票市场涨跌资料下载.pdf(7页珍藏版)》请在冰点文库上搜索。
并且已被人们广泛地应用于各种实际问题:
以下;
把用LM算法作为网络学习算法的多层前馈式神经网络简称为LM网络:
本文将LM网络应用于沪市综合指数涨跌的预测;
作了一些初步探讨:
_算法简介LM算法的基本思想是利用TS#学习算法;
在网络的学习过程中使用梯度搜索技术;
利用误差向后传播来修正权;
从而实现网络的实际输出与期望输出的均方差最小化:
图给出了通常的带有一个隐层的LM网络模型:
其中Aab表示输出单元;
cd表示隐单元;
ef表示输入单元:
从输入单元f到隐单元d的连接权为gdf;
从隐单元d到图带有一个隐层的LM网络模型PhijLMkYlVmnhopqphllVrmqsVW输出单元b的连接权为tbd;
uvwx;
yz表示所有的连接权:
单元下标bv;
#;
|总是针对输出单元的Idv;
针对隐单元Ifv;
对应输入单元:
上标!
表示不同的输入模式;
表示输入模式数E!
v;
FI#和#分别对应于适当选定的隐层和输出层活化函数:
对给定的输入模式!
隐单元d的输入为$!
dv%fvgdfe!
fEF输出为c!
dv#E$!
dFv#%fvgdfe&
fE#F输出单元b的输入为!
#$%&
$()#*$%&
$()#+(%,-$(.-/01-234最终的输出为5#$+62!
#4$+6%&
$()#+(%,-$(.-/0178-294对应于任一输入模式和输出单元#:
定义在线误差2或瞬时误差4函数为;
25#46$(6=#+6%&
$()#+(%,-$(.-/0178?
-62A4对输出单元#:
总误差函数2又称能量函数4为;
24$%B$(;
25#462C4式中D=#表示模式对应输出单元#的期望输出E所谓权的学习:
即对每一当前的:
选取适当的增量F得到新的权值GF:
使得在线误差函数2A4或总误差函数2C4随着迭代的进行而减小:
从而最终达到某一全局的或局部的极小值E显然上述误差函数都是权IJ;
J)#$IK#*2L4式中DIMN为适当选定的学习步长:
K#$+O62P#42=#5#42Q4同理:
对于从输入单元到隐单元之间的连接权矩阵R:
利用链式法则可得F.-$IJ;
J.-$IJ;
J*J*J.-$IK/-2S4式中K$+O(2P4%#)#K#2(N4这样即可对权$?
H:
R实现实时更新DTUV$WXYGF:
F$?
FH:
FR2(4以上以Z在线形式给出了更新规则:
即在输入端提供模式之后:
利用在线误差函数2A4实时更新所有的权E这样每一步迭代都减小了在线误差2设I充分小4:
也就是说:
每一次更新都是局部的E也可以使用基于总误差函数2C4得到的Z批方式:
即在提供所有的输入模式之后才更新权E在样本数据比较庞杂的情况下:
后者显然要付出更高的计算代价E一般认为:
在线式的更新规则在计算速度效率和精度上都较批方式优越:
并且有利于在迭代过程中跳出局部极小E学习步长I是一个重要的参数:
在一定程度上决定了网络的收敛速度738EI过小会导致权的更新量过小:
因而使收敛速度非常缓慢I过大却又会导致在极值点附近振荡的可能性加大:
乃至反复振荡而难以收敛E对于这个问题:
_UXabcd和eWfghTf等人针对在线式更新规则提出了所谓的Z矩方法798E即在式2L4和式2S4中加上矩量项DFIJ;
JGjF2i42(64式中Djk2N:
(4称为矩参数E这样:
在通过误差函数曲面上的平坦区域时:
可以认为F2iG(4lFj42(34从而加快了网络在这一区域的学习速度E而在振荡比较剧烈的区域:
矩量项便可忽略不计:
从而相对于平坦区域减小了学习步长:
避免了振荡加剧:
有助于寻找全局最优解E从总体效应来看:
矩方法的引入实现了学习步长的动态变化:
提高了网络的自适应能力:
加快了收敛速度E本文的网络模型引入了这种方法E然而对于不同的研究对象:
仍需通过多次实验才能找到比较理想的I和jE在对I和j进行大量对比实验的基础上:
选择了I$NEN6A:
j$NEN(E关于网络逼近能力的基本结论是D带有一个隐层的前向网络能够逼近定义在no中一个有界闭集上的相当任意的非线性函数7AC8:
对于任意非线性决策边界都可以找到一个三层的前向网络对其形成任意接近的逼近E关于循环迭代过程中权值收敛性的讨论:
可参见文献7L8Ep样本与权的规范化pEq样本的选取和预处理样本的选取和预处理是模型建立伊始就要解决的一个重要问题:
是研究对象与网络模型的接口E对于股票市场而言:
样本数据要尽可能地正确反映其交易规律:
同时又要顾及网络本身的性能E可以从以下3方面来考虑E2(4原始样本的选取E股票交易市场是一个很不稳定的动态变化过程:
不仅受国内外经济因素的影响:
而且人为的作用2Z庄家的作为4政府的调控等也是影响其未来走势的重要因素E因此:
必须选取正常运作情况下2即没有或少有暴涨N(大连理工大学学报第9(卷和暴跌等不稳定现象!
的股市样本数据否则#如果样本选取得很$特殊%#就只能抽取到某种特定的规律#而降低了网络的推广能力&
通过对(内各项股市指标的综合分析和评价#选取了)*+,-.,)/0)*,-1,-/连续).)个交易日的沪市综合指数作为学习和预测样本&
这段时期正是国内证券市场在经受了东南亚经济危机的冲击之后#已经逐步趋于稳定的阶段&
而沪市综合指数作为国内股市行情的重要综合评测指标之一#能够比较准确地反映国内股市行情动态#具有较高的预测价值和较好的可预测性&
21!
样本向量的确定&
样本向量的各个分量应该选取能充分反映股票市场交易特征的定量指标&
不加选择的选取会使数据庞杂#增加系统负荷#降低网络性能反之#选取的指标过少又难以刻画股票市场的特点&
同时需要考虑的是#各个时刻3的指标数据在一定范围内又是相互关联4相互影响的&
也就是说#样本的内部特征是交叉的&
通过对沪市综合指数各项指标的研究#确立输入向量见表)&
表)确立输入向量5(67)889:
=AB88项目含义项目含义C)隐含阀值的系数C*-D88内平均成交额C1今日最高指数C)-88今日成交量C今日最低指数C)-D88内平均成交量CE今日开盘指数C)188今日涨跌幅C/今日收盘指数C)88昨日涨跌幅C.今日成交额C)E88前日涨跌幅CF昨日成交额C)/)-D88内平均涨跌幅C+前日成交额C).-D内平均涨跌幅这里#不仅考虑了短期因素的影响#而且也兼顾了长期因素的平衡作用&
以此为依据建立的样本融合了股市交易的局部特征和一定范围内的长期特征&
2!
样本的规范化处理&
由于衡量的指标各不相同#原始样本各个分量数值的数量级有很大的差异&
对于某输入节点G#如果CHG过大#则相应的更新量IJKG过大2见式2*!
#从而使JKG过大这样在隐单元K的输出LK中#JKGCHG项的影响就要比其他分量大得多2见式21!
#导致其他分量几乎丧失了调控作用&
所以有必要对原始样本进行适度的规范化处理#依据各项指标可参照价值的不同#对其输入幅值重新进行合理的调整2放或缩!
#使其变化范围大致均匀分布在某一区间2MN#N!
&
表1列出了几种不同的规范化方案&
表1几种不同的规范化方案5(671OABP(QRS(=RA:
ATR:
=ABU方案输入单元C)C10C/C.0C*C)-0C)C)10C).VM)2-&
)#-&
)/!
2-&
)#)!
2M-&
)!
WM)2-&
2)&
-#)-!
XM)2-&
2/&
-#/-!
YM)2-&
/#/!
ZM)21&
-#&
-!
2M&
图1给出了网络经不同规范化方案处理所得样本进行学习的Z2P?
(:
UB2(QRDQ(UURTR(=RA:
B(=RA!
图1各种方案的规范化效果对比hRi71XAP;
(BRUA:
ATDRTT?
B?
=:
ABP(QRS(=RA:
UV2方案V简称为V#下同!
和Z各分量的输入幅值分布比较均匀#所以Z曲线下降得比较平缓&
而在C.0C*输入幅值过大的情况下#X很快就达到了饱和&
这是由于神经元的总输入过大使活化函数达到饱和#其一阶导数趋于-#从而使权的更新量极小2由式2*!
及式2)-!
而导致学习无效#也就是所谓的$饱和现象%它是导致Wj算法收敛缓慢的主要原因之一&
W和Y的C.0C)幅值偏大#成为调节权向量方向变化的主要影响因素#所以在C.0C)波动较大的时候就会引起Z曲线的剧烈振荡而难以收敛&
但由于Y各分量的偏差比W小#波动也要比W小一些&
在Y的基础上#对其他分量进行了适度放大而得到Z)第)期吴微等a用Wj神经网络预测股票市场涨跌!
表#$这样既在一定程度上遏制了%&
%(项的影响)又适当加大了其他分量的调节作用)由图可以看到)方案*取得了较好的效果$而通过对比+和*两条曲线)可以说明并不是各输入分量间的偏差越小,分布越均匀就越好$+的各输入分量虽然比*分布得更均匀)但由于各个分量幅值压缩得过小)一方面导致-的更新量减小!
式!
.#而降低了收敛速度/另一方面幅值压缩得过小又难以有效地反映各个指标的变化情况)样本特征的损失较大)不但难以得到较高的学习精度而且也降低了网络的推广能力!
01213456748692:
13;
93饱和现象?
的前提下)使样本在较大的幅值范围内均匀地分布)*就是一种较为合适的规范化处理方案$权及阀值初始值域的确定尽管从总体来看)权!
含阀值项#是随着迭代的进行而更新的)并且一般是收敛的)但权的初始值太大)可能导致网络很快就达到饱和$另外)权的初始值对网络的收敛速度也有一定的影响$下面的实验!
图A#通过对不同的权初始值域的对比)可以帮助进一步分析问题$图A不同权初始值域的对比B60CAD9涨?
和跌?
期望输出分别对应Q(,J(#两种情况的分类及预测)输出层取一个节点即可$因而)确定网络拓扑结构的关键就在于确定合适的隐单元数目$如何确定隐单元的数目)目前还没有明确而又广泛适用的结论)但也有学者对此给出了一些经验公式$N63=H4F426RST认为隐单元数U与输入模式数V的关系为IUW590V)XY20与ZG420R.T也给出了类似的结论$但是这些结论是否适合于具体的研究对象)还需进一步验证$以下几组关于隐单元数目的对比实验)使之有了较为明确的实际依据)同时也有助于了解隐单元数目对网络性能的影响$迭代停止标准I=3SK/最大循环迭代次数I(KKKK/循环迭代次数超过(KKKK次仍未达到迭代停止标准)单独报告实验失败$为了更好地对比实验结果)排除随机因素的干扰)同时也有助于对比不同样本集对网络学习效果的影响)选取4,M,=,F_个不同的样本集)每个样本集包含(KK个样本/随机排列输入样本/取L次实验结果平均值$在样本集和收敛标准相同的情况下)可以通过比较其循环迭代次数来比较不同隐节点数目a网络的分类能力)如表A所示$如_.$_b(表示其中(次实验陷入局部极值或循环迭代次数超过(KKKK次仍未达到收敛标准)即本次实验失败)取其余_次实验结果的平均值为_.$_$(大连理工大学学报第_(卷表!
不同隐单元数分类能力的比较#$%!
#()*)+#,)-.#$),)/(0),12)*/3/.,.45$/3(-*1)22/.-2/(样本集隐单元数!
6789:
6:
8=?
7?
886?
=8?
6868?
87=?
968?
689?
6:
867=?
+!
8?
7;
79;
9?
7979?
998?
9;
69;
677?
=6?
86;
6?
实验结果表明A隐单元数目过少严重降低了网络的分类能力?
但是当隐单元数目增加到一定程度B7或8C后A迭代次数并不随着隐单元数目的进一步增加而明显地减少?
另一方面A过多的隐单元数会增加网络负荷A降低系统效率A更严重的是还可能降低网络的推广能力?
表6对比实验说明了这个问题?
表6不同隐单元数推广能力的比较#$%6D/./3#)E#,)-.F/3*-35#.+/0),12)*/3/.,.45$/3(-*1)22/.-2/(隐单元数样本迭代次数GH+3IGJH+3I!
K;
7999967:
M99697697K:
779&
77M88798689K8;
=6;
8L89!
9:
87:
M88:
78:
87L9!
777&
9!
6;
M8;
=;
967注NGJH+3表示对给定样本集进行训练后A预测随后连续!
=个交易日所得的正确分类精度分析实验结果可知A虽然较多的隐单元数目能够得到很高的学习精度A但却造成了对样本的O过拟合PB-H/3*),).QCA从而降低了网络的推广能力?
另外A叶东毅R=S给出了一种动态修剪隐单元的算法T利用这种算法对不同的样本集和网络初始拓扑结构分别进行了6次修剪A如表7所示?
表7运用修剪算法修剪隐单元#$%7U34.).Q-*1)22/.4.),(样本集初始拓扑结构最终拓扑结构VWVW!
VW6#6X=X6X:
X6X9X6X8X6X9X+6X:
X6X9X6X7X6X8X6X8X26X=X6X8X6X;
X6X9X6X:
X/6X;
X6X;
X6X9X6X9X6X8X综合表!
Y7的结果A认为当输入模式总数ZW=时A隐单元数目应取8或9为好A这与)3+1#2#.)给出的经验公式基本吻合?
活化函数的确定活化函数B_C的作用是激活神经元A使其对输入产生响应?
显然A为了应用梯度下降法对权进行学习A活化函数必须是可微的?
在实际应用中A可根据需要选取适当的活化函数A常用的是)Q5-)2类型的函数?
由于活化函数B_C所具有的非线性特征A使LU算法训练的多层前馈式网络建立了从输入到输出的高度非线性映射A可以表达复杂的客观现象?
而且A由于其导数常常可用B_C自身表示A所以在误差反向传播的过程中A不需要另外计算能量函数的导数A大幅度地减少了计算量A提高了网络的效率?
但因其同时具有的饱和性A又导致LU算法收敛缓慢?
下面A通过对股市样本数据的学习训练A考虑!
种最常见的)Q5-)2函数Nab/c_cB_CW,#.1_Aa!
B_CW#3+,#.B_Cd表8活化函数对比实验B取!
次单独实验的平均值C#$%8&
-5F#3)(-.-*2)*/3/.,#+,)H/*4.+,)-.(B#H/3#Q/-*,13/eF/3)5/.,(C活化函数循环迭代次数fgGH+3Ia9?
9=:
=?
a!
=7?
7=;
a7=6?
=表8给出了这几种活化函数的表现?
可见A采用aB_C作为隐层和输出层的活化函数A网络的收敛速度最快?
究其原因A可作如下分析?
各活!
第期吴微等N用LU神经网络预测股票市场涨跌化函数的导数为!
()*%+$#,)*%&
(!
($%&
-+$)%,)*%&
.$%&
(+/$#,%(&
考查如下极限0123%456!
123%456()*%$#,)*%&
(7$)%,)*%&
(-6123%456!
(7/$#,%(&
(6123%456!
123%456-$)%,)*%&
(8显然9当%456时9!
9这说明!
收敛于5#的速度最慢;
即采用!
作为活化函数发生饱和的可能性较小9可在一定程度上提高网络的收敛速度;
实验结果也很好地说明了这一点;
这同时也启发作者进一步讨论这个问题9令!
%为隐层活化函数9可以通过适当调节参数来调节!
的一阶导数值;
输出层活化函数取为A($%&
%;
表B列出了实验结果;
表B调节参数的对比结果$取.次单独实验的平均值&
C=DEBFG3H=I2JGGKL2KK)I)$=M)I=N)GK)=IGH=UUJ$=M)I=N)GKJ&
隐层输出层循环迭代次数PQRSTMUI+V!
#!
-Z888.W;
(BB.;
.!
-Z888(X;
.YBW;
-Z888(.;
BBW(;
8!
-(8(Y8(-;
YBWX;
X!
-W#Z(-;
YYW-;
-W.X(-;
YYW.;
-分析表W的实验结果发现9输出层采用线性函数后9在学习精度和收敛速度上都有所降低;
进一步分析可知9采用线性函数虽然可以逼近输出值在$*69,6&
的任意函数9但是对本文所讨论的符号分类问题而言9显然输出值在$*#9,#&
的R2N3G2L型函数更优越9更容易收敛;
而尽管输出层采用线性函数对于减少饱和现象有一定好处9但在样本波动比较剧烈的区域9其自适应能力却要比R2N3G2L型函数弱;
所以采用线性输出函数不但未能对网络性能进行优化9反而有所降低;
以上的实验和分析已经表明9在采用!
作为隐层及输出层活化函数的基础上9适度地调节值9能够得到较好的学习精度和较快的收敛速度;
而输出层采用线性函数并不能提高网络的性能;
结果和讨论至此9已经初步确定了比较适合于股票市场预测的网络结构和初始条件;
总结如下0学习步长_8;
8(Z矩参数a8;
8#权及阀值的初始域$*8;
8Z98;
8Z&
对原始样本依据表(中的方案S进行规范化处理9网络拓扑结构$相应于#88个输入样本&
0#X$b#cb#X&
dBd#9隐层活化函数A#$%&
8;
XZ%9输出层活化函数A($%&
利用所得的网络结构及初始条件9在选定的沪市综合指数的数据中9取#YYWd8Bd(Bc#YYWd#(d(#连续#88个交易日作为训练学习样本9对#YYWd#(d(.c#YYYd8(d8-的.8个交易日进行预测9训练精度达到了YWV9预测精度达到B8V;
初步说明了人工神经网络应用于股票市场的可行性及实用-#大连理工大学学报第-#卷价值!
对于股票市场走势的预测国外已经有了一些这方面的工作#$%&
尽管运用的方法和预测的指标各不相同但都处于定性研究阶段而且还没有得到令人满意的结果!
本文对应用(网络预测国内股市的涨跌进行了初步的尝试并给出了比较详细的应用方法和步骤!
通过大量的数值实验和分析对网络的性能进行了特定的优化后得到了较好的预测精度!
但在样本处理)预测方法及网络的自适应能力等方面还有待进一步的改进应该能得到更好的结果!
参考文献*#$%+,-./(!
012345065077823*90:
225048?
823343178783;
A0B0AC8257?
803?
07#D%!
EFB58460GH*I5C54J38C0578;
1$KLM!
#N%徐秉铮张百灵韦刚!
神经网络理论与应用#G%!
广州*华南理工大学出版社$KKM!
#O%-JG,PIH-QD,IR9Q.9S,+RPPRHG/-T!
P05383683;
05350703;
8237B105525U526;
823#H%!
VWXWYYZYX_ZaVXbcZde*f2$#G%!
EFB58460GH*GRQ(5077$Kgh!
#M%I./iR9/TEIRGG,PPHJDG!
(52?
077?
23;
52C85;
8=8?
830j530;
25k7345083=25?
0F03;
053836#T%!
lbmnloZmpde$KKNqrsMt*$M$U$u$!
#u%I.-9Rii/QR9EIE.G,G+IRQ,I!
J38C05752v8F;
8232=3j3k32:
3F836348;
74058C;
8C07j7836Fj;
852v8F;
8232=5B8;
551=j3?
8237:
AFj;
8105(30j530;
25k7#H%!
VXbcZZadebdZXdWbdWY!
bdlbdZXZdcZbdwZXWYwZxbXy#$#E%!
08%836*#73%$KKN!
#L%吴微许跃生!
用于神经网络的在线梯度学习算法的收敛性#H%!
第六届全国计算数学年会论文集#E%!
上海*#73%$KKK!
#g%GR-EIHDH9RSEH.+!
.3A84403j38;
78330j530;
7#T%!
ppp&
XWdlXc($KgKrs$ut*hh$UhhM!
#K%iJ9S/)I+H9ST9!
H352%0?
8233;
8FA84403j38;
778*034526;
823053836#H%!
VXbcZZadebpppdZXdWbdWY!
bdlbdZXZdcZbdwZXWYwZxbXy+#E%!
#75048?
823717;
0F:
AF24j530j530;
dZXdWbdWY!
bdlbdZXZdcZbdwZXW