文档库 最新最全的文档下载
当前位置:文档库 › 基于三次样条权函数神经网络的股价预测

基于三次样条权函数神经网络的股价预测

基于三次样条权函数神经网络的股价预测
基于三次样条权函数神经网络的股价预测

收稿日期:2013-09-02 修回日期:2013-12-16 网络出版时间:2014-02-24基金项目:江苏高校优势学科建设工程资助项目(yx002001)

作者简介:张 浩(1989-),男,硕士研究生,CCF 会员,研究方向为智能计算技术与应用;张代远,教授,博士,研究生导师,研究方向为人工智

能二计算机体系结构二计算机应用等三

网络出版地址:https://www.wendangku.net/doc/468399619.html, /kcms /detail /61.1450.TP.20140224.0930.060.html

基于三次样条权函数神经网络的股价预测

张 浩1,张代远1,2,3

(1.南京邮电大学计算机学院,江苏南京210003;

2.江苏省无线传感网高技术研究重点实验室,江苏南京210003;

3.南京邮电大学计算机技术研究所,江苏南京210003)

摘 要:随着经济的发展,股票投资已成为很多人的一种投资理财方式,而股票价格的预测也成为投资者关心和研究的焦点三建立一个运算速度和精确度都比较高的股价预测模型,对于金融投资者具有理论指导意义和实际应用价值三文中针对传统BP 算法存在的学习速度慢二容易陷入局部极小值二隐层数不易确定等问题,使用三次样条权函数神经网络建立股价预测模型,克服了传统神经网络的缺点三仿真结果表明,该模型具有较高的预测精度,能够对股市进行有效的预测三关键词:权函数;三次样条函数;BP 算法;神经网络;股价预测中图分类号:TP31

文献标识码:A 文章编号:1673-629X (2014)06-0028-04

doi:10.3969/j.issn.1673-629X.2014.06.007

Stock Prediction Based on Neural Networks with Cubic

Spline Weight Functions

ZHANG Hao 1,ZHANG Dai -yuan 1,2,3

(1.College of Computer ,Nanjing University of Posts and Telecommunications ,Nanjing 210003,China ;

2.Jiangsu High Technology Research Key Laboratory for Wireless Sensor Networks ,Nanjing 210003,China ;

3.Institute of Computer Technology ,Nanjing University of Posts and Telecommunications ,Nanjing 210003,China )

Abstract :With economic development ,stocks have become a way of finance and investment for many people ,and the stock price forecas?ting has become the focus of investors ’attention and study.Establishing a stock price forecasting model with high computing speed and accuracy has theoretical and practical significance for financial investors.As the traditional BP algorithm has problems such as low learn?ing speed ,easy to fall into local minimum value ,difficult to determine the number of hidden layer neurons ,the stock prediction model is established using the neural networks with cubic spline weight functions to overcome the shortcomings of traditional neural networks.The simulation results show that the model has high accuracy and can effectively predict the stock market.Key words :weight function ;cubic spline function ;BP algorithm ;neural networks ;stock price prediction

0 引 言

股票预测,是指以准确的调查统计资料和股市信息为依据,从股票市场的历史二现状和规律性出发,运用科学的方法,对股票市场的未来发展前景做出预测[1]三股票预测方法主要有基本分析法[2]二技术分析

法[3]二神经网络预测方法等三在这些预测方法中,神经网络[4]以其高度并行的处理机制二高速运算的能力二高度灵活可变的拓扑结构在股市预测研究中得到

重视,涌现了许多神经网络在预测中成功运用的实

例[5-7]三

传统神经网络BP (Back Propagation )算法,因其

结构简单二性能稳定二并行性高等优点已经成为目前应用最广泛的神经网络算法之一[8-10]三但是BP 算法也存在以下不足之处:

(1)学习算法有可能不收敛,或虽收敛但往往收

敛速度非常慢,并且训练时间强烈地依赖初值的选

择[11];

(2)无法确定隐层神经元个数,使得BP 算法只能

第24卷 第6期2014年6月 计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT

Vol.24 No.6

June 2014

解决一些有局限性的小问题三

文献[12]提出了样条权函数学习算法,将人工神经网络的非线性映射问题转化为求解线性代数方程组的问题,克服了BP算法梯度下降思想的缺点三在此基础上,文中使用样条权函数神经网络建立股票预测模型三仿真结果显示样条权函数学习算法具有较高的精度,能够对股市进行有效的预测,具有较高的理论与实践意义三

1 权函数神经网络拓扑结构

传统方法神经网络至少有3层,通常各个层之间的权值为常数三样条权函数神经网络拓扑结构简单,只有两层(见图1[11]),各层之间互连的权为样条函数,这里称其为权函数三其中输入层的权与神经元全互连,假设输入端有节点是m维的,每个节点通过连接权连接到所有加法单元的输入端,图中x i表示一个样本在输入层第i(i=1,2, ,m)个神经元的输入三假设输出样本向量是n维的,则输出端有n个节点,图中t j(j=1,2, ,n)和z j分别表示输出层第j(j=l,2, ,n)个神经元所对应的目标值和实际输出三

图1中的圆圈为神经元,神经元只完成简单的加法运算,它的功能是将所有与其相连的输入节点的输入量求和,并将该和直接输出[11]三因此样条权函数网络拓扑结构比传统方法的网络简单得多,需要训练的权的个数也明显减少

图1 权函数神经网络拓扑结构图

2 算法原理

通常,神经网络训练的目的就是求解网络的权值三不失一般性,这里仅仅考虑第j个输出单元对应的权值三如图2所示,把输入样本向量的每一维都看成独立的变量,不做任何约束,那么每一个样条神经元是一维输入的,这样便能够采用一维样条函数去逼近三求出的样条函数为实现网络映射的神经元变换函数三图2中,加法器∑的输入量为z j(j=1,2, ,m),则有[12]:

z=∑m i=1z i,z i=w i(x i)(1)在图2中,z和z i之间相差一个加权系数ηi,即

z

i

i

z(2)其中,ηi满足∑m i=1ηi=1,因此有:

z=1ηi w i(x i)(3)假设网络有m个输入节点,n个输出节点,则权函数神经网络算法的训练目的就是利用插值的方法求得mn个插值权函数

图2 神经元输出值为m个独立权函数值的加和3 三次样条插值权函数的建立与求解对于图2,每一个输入样本由m维向量构成,其相应的输出样本由1维向量构成,假设需要训练的网络样本有N+2个三与第i(i=1,2, ,m)个输入节点相连的神经元的权函数用w i(x i)表示,输入向量第i个分量用x i表示三节点x i的输入量有N+2个,按照输入样本的顺序,这N+2个输入量组成一个N+2维向量[12],记为:

x

i

=(x

i0,x i1, ,x i(N+1))(4)目标向量是N+2维向量,记为:

z=(z0,z1, ,z N+1)(5)设权函数为w i(x i),根据式(3)和式(5)有[12]:

z

i

=(w

i(x i0),w i(x i1), ,w i(x i(N+1)))=

(ηi z0,ηi z1, ,ηi z N+1)(6)按照上式来分配目标样本,由式(4)决定权函数

w

i(x i)的输入量,由式(6)决定输出量,相应的插值点为[12]:Ip

i

={(x

i0,ηi z0),(x i1,ηi z1), ,(x i(N+1),ηi z N+1)}(7)这里用样条权函数S i(x i)代替理论权函数,文中选择三次样条函数作为目标权函数S i(x i)三假设有如Ip={(x0,y0),(x1,y1), ,(x N+1,y N+1)}的N+2个插值点,则对应的分段三次样条权函数写成如下形式[12]:

s

p(x)=-

M

p

6h p(x p+1-x)3+

M

p+1

6h p(x-x p)+

(y p h

p

-M p h p6)(x p+1-x)+

(y p+1h

p

-M p+1h p

6)(x-x p)(8)

四92四

 第6期 张 浩等:基于三次样条权函数神经网络的股价预测

其中,M p =s ″(x p ),M p +1=s ″(x p +1),h p =x p +1-x p ,x

∈(x p ,x p +1),p =0,1,2, ,N 三

考虑到边界条件,M p 的计算公式为

[12]

:

g 0M 0+g 1M 1=u 0h p -1M p -1+2(h p -1+h p )M p +h p M p +1=u p g N M N +g N +1M N +1=u N +ì?í??

??1

(9)

其中,u p =6(d p -d p -1),d p =(y p +1-y p )/h p ,d p -1=

(y p -y p -1)/h p -1,p =1,2, ,N ;g 0,g 1,g N ,g N +1,u 0,u N +1是与边界条件有关的常数三

将求得的M p 代入式(8),就得到了分段三次多项

式S p (x ),p =1,2, ,N ,这些分段多项式组合起来,便是所求的三次样条权函数三

4 三次样条权函数神经网络算法在股票预

测中的应用

通过对历史数据的学习,样条权函数神经网络能够得出股票价格的变化趋势,并将其存储在网络的权值函数中三对于训练好的网络,将预测交易日之前的交易数据作为输入样本数据输入网络,通过网络变换,输出值作为预测结果,从而实现已知股票历史数据,而对股票未来的走势进行预测,具体步骤如下:

(1)选取训练样本数据,构造训练样本三

股票预测有很多相关的参考变量[13-15],比如综合

指数,开盘价,收盘价,成交金额,最低价,成交量,最高价等,文中选取每日的开盘价二收盘价二最高价和最低价作为样本数据三数据的分析周期常采用5日二10日二20日等,文中选择5日作为分析周期,即用连续5天的历史交易数据作为网络输入即预测依据,其后一天的历史数据作为目标数据三持续按此方式进行排列,形成训练样本三

(2)建立样条权函数神经网络预测模型三

文中运用的样条权函数神经网络只有输入层与输

出层三依次将连续5天的交易数据作为一个输入样本,这样就有20个输入层节点三其后一天的收盘价作为一个输出样本,输出层节点数为1,网络训练的目的就是求出20(网络输入样本向量20维,输出样本向量

1维)个样条函数,这20个样条函数的加权系数ηi (i =1,2, ,20)都设为1/20,即平均分配三

(3)训练网络三(4)模拟预测三

在样条权函数神经网络训练完成以后,将独立于训练数据的测试数据(比如股票某连续五日的数据)作为神经网络的输入,其后一天的收盘价作为网络的目标输出,通过实际输出与目标输出的误差来分析网络模型的预测性能三这里用误差的平方和作为分析指

标,假设测试样本有m 个,计算公式如下:

E =

12

∑m k =1

(y

k

-y *k )2

(10)

式中,y k 和y *k 分别是网络对第k 个输入样本的实

际输出和目标输出三

5 股票预测仿真实验

取中国移动2013年5月1日至6月27日这35个交易日的股票历史数据作为训练样本进行网络训练三取2013年6月28日至7月15日的15组数据作为预测样本进行网络模拟预测三用BP 算法和样条权函数神经网络算法分别对网络进行训练,其中BP 算法网络隐层神经元个数为30,用时5.9904s 达到了网络所能训练的最高精度,训练样本点处实际输出与目标输出拟合情况如图3所示,而三次样条权函数神经网络训练用时0.078s ,训练样本点处实际输出与目标输出的拟合情况如图4所示三训练好的网络对于10天的股票收盘价格进行预测,实际价格与预测价格的误差平方和E =12.5773,预测结果如图5所示,误差如图6所示

图3 训练样本点处BP

网络输出

图4 训练样本点处三次样条权函数神经网络输出仿真结果表明:三次样条权函数神经网络与BP 网络相比,具有较高的训练精度和训练速度三用三次样条权函数神经网络进行股价预测,预测股价与实际

四03四 计算机技术与发展 第24卷

股价误差都在0到2之间,体现该方法具有较强的预测能力

图5 

三次样条权函数神经网络股价预测情况

图6 三次样条权函数神经网络股价预测误差图

6摇结束语

文中采用的三次样条权函数神经网络结构简单,只有两层,不含隐层,文中算法所需的神经元个数与样本数无关,克服了传统算法的诸多问题,网络的权值是与输入样本有关的函数,而不是常数三

基于样条权函数神经网络,文中提出了一种股票预测的新方法三所建立的模型简单,避免传统BP 算法在网络训练时对隐层神经元个数二训练函数二激励函数等参数做出复杂的假设三实验表明基于此模型的预测方法预测能力良好,对于股市投资者具有一定的参

考价值三

参考文献:

[1] 沈 冰.股票投资分析[M ].重庆:重庆出版社,2002.

[2] Schekman J A ,Lebaran B.Nonlinear dynamics and stock re?turns [J ].Journal of Business ,1989,62(3):311-317.[3] 陈之大,贺学会.证券投资技术分析[M ].成都:西南财经大学出版社,1996.

[4] Guo Baolong ,Guo Lei.A new approach to visual motion

computation [J ].Journal of Xidian University ,1994,21(4):

457-463.

[5] Saad E W ,Prokhorov D V ,Wunsch D https://www.wendangku.net/doc/468399619.html,parative study

of stock trend prediction using time delay ,recurrent and probability neural networks [J ].IEEE Trans on Neural Net?works ,1998,9(6):1456-1470.

[6] Kohzadi N ,Boyd M S ,Kermanshahi B ,et al.A comparison

of artificial neural networks and time series models for fore?casting commodity price [J ].Neurocomputing ,1996,10(2):169-181.

[7] Kuan Chung -Ming ,White H.Artificial neural networks :an

econometric perspective [J ].Econometric Reviews ,1994,13(1):1-91.[8] Chan L W ,Fallside F.An adaptive training algorithm for

back propagation network [J ].Computers Speech and Lan?guage ,1987,2(3-4):205-218.

[9] Vogl T P ,Mangis J K ,Rigler A K ,et al.Accelerating the

convergence of the back propagation method [J ].Biological

Cybernetics ,1988,59(4-5):257-263.

[10]Hsin H C ,Li C C ,Sun M ,et al.An adaptive training algo?

rithm for back propagation neural networks [C ]//Proc of IEEE international conference on system ,man and cybernet?ics.Chicago ,IL :IEEE ,1992:1049-1052.

[11]张代远.样条权函数神经网络的一种新型算法[J ].系统工

程与电子技术,2006,28(9):1434-1436.[12]张代远.新神经网络新理论与方法[M ].北京:清华大学出版社,2006.

[13]林俊国.证券投资学[M ].北京:经济科学出版社,2006.[14]赵宝福.证券投资学[M ].北京:中国物资出版社,2000.

[15]吴晓求.证券投资学[M ].北京:中国金融出版社,2000

.

(上接第27页)

 

 3):177-201.

[7] 崔 阳,杨炳儒.超图在数据挖掘领域中的几个应用[J ].

计算机科学,2010,37(6):220-222.[8] 王志平,王众托.超网络理论及其应用[M ].北京:科学出版社,2008.

[9] Ramaswamy M ,Sarkar S ,Chen Ye https://www.wendangku.net/doc/468399619.html,ing directed hy?

per graphs to verify rule -based expert systems [J ].IEEE Transactions on Knowledge and Data Engineering ,1997,9

(2):221-237.

[10]Gursaran G S ,Kaungo S ,Sinha A K.Rule base content veri?

fication using a diagraph -based modeling approach [J ].Artif

Intell Eng ,1999,13:321-336.

[11]王海英,黄 强.图论算法及其MATLAB 实现[M ].北京:

北京航空航天大学出版社,2010.

[12]熊 巧.Apriori 算法的改进与应用[J ].工业控制计算机,

2013,26(4):48-49.四

13四 第6期 张 浩等:基于三次样条权函数神经网络的股价预测

基于三次样条权函数神经网络的股价预测

作者:张浩, 张代远, ZHANG Hao, ZHANG Dai-yuan

作者单位:张浩,ZHANG Hao(南京邮电大学 计算机学院,江苏 南京,210003), 张代远,ZHANG Dai-yuan(南京邮电大学 计算机学院,江苏 南京 210003; 江苏省无线传感网高技术研究重点

实验室,江苏 南京 210003; 南京邮电大学 计算机技术研究所,江苏 南京 210003)

刊名:

计算机技术与发展

英文刊名:Computer Technology and Development

年,卷(期):2014(6)

本文链接:https://www.wendangku.net/doc/468399619.html,/Periodical_wjfz201406007.aspx

基于Bp神经网络的股票预测

基于B p神经网络的股 票预测 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] ,,makingin-depththeoreticalanalysisandempiricalstudiesontheshort-termclosingpriceforecastsofsinglestock. Secondly,makingresearchonthemodelandstructureofBPneuralnetwork, learningrules,weightsofBPalgorithmandsoon,buildingastockshort-termforecastingmodelbasedontheBPneuralnetwork,,usingsystemofmultiple-inputsingle-outputandsinglehiddenlayer,,. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因

(采用BP神经网络完成非线性函数的逼近)神经网络

控制系统仿真与模型处理设计报告 (采用BP神经网络完成非线性函数的逼近)

1、题目要求: (1)确定一种神经网络、网络结构参数和学习算法。 (2)选择适当的训练样本和检验样本,给出选取方法。 (3)训练网络使学习目标误差函数达到0.01,写出学习结束后的网络各参数,并绘制学习之前、第100次学习和学习结束后各期望输出曲线、实际输出曲线。绘制网络训练过程的目标误差函数曲线。 (4)验证网络的泛化能力,给出网络的泛化误差。绘制网络检验样本的期望输出曲线和网络输出曲线。 (5)分别改变神经网络的中间节点个数、改变网络的层数、改变学习算法进行比较实验,讨论系统的逼近情况,给出你自己的结论和看法。 2、设计方案: 在MATLAB中建立M文件下输入如下命令: x=[0:0.01:1]; y=2.2*power(x-0.25,2)+sin(5*pi*x); plot(x,y) xlabel('x'); ylabel('y'); title('非线性函数'); 得到如下图形,即所给的非线性函数曲线图:

构造一个1-7-1的BP神经网络,第一层为输入层,节点个数为1;第二层为隐层,节点个数为7;变换函数选正切s型函数(tansig);第三层为输出层,节点个数为1,输出层神经元传递函数为purelin函数。并且选Levenberg-Marquardt算法(trainlm)为BP网络的学习算法。对于该初始网络,我们选用sim()函数观察网络输出。继续在M函数中如下输入。 net=newff(minmax(x),[1,7,1],{'tansig','tansig','purelin'},'trainlm'); y1=sim(net,x); figure; plot(x,y,'b',x,y1,'r') title('期望输出与实际输出比较'); xlabel('t'); 则得到以下所示训练的BP网络期望输出与实际输出曲线比较: 应用函数train()对网络进行训练之前,需要预先设置训练参数。将最大训练次数为100次,训练精度设置为0.01,学习速度为0.01。 net.trainParam.epochs=100; net.trainParam.goal=0.001; net.trainParam.lr=0.01; net=train(net,x,y); y2=sim(net,x);

BP神经网络逼近非线性函数

BP神经网络逼近非线性函数3、试用BP神经网络逼近非线性函数 f(u) = )5.0 u(9.1 e+ - sin(10u) 其中,u∈[-0.5,0.5] 解题步骤: ①网络建立:使用“net=newff(minmax(x), [20, 1], {'tansig’,’ purelin' });,语句建立个前馈BP神经网络。该BP神经网络只含个隐含层,且神经元的个数为20。隐含层和输出层神经元的传递函数分别为tansig和pure-lin。其他参数默认。 ②网络训练:使用“net=train (net, x , y) ;”语句训练建立好的BP神经网络。当然在网络训练之前必须设置好训练参数。如设定训练时间为50个单位时间,训练目标的误差小于0.01,用“net.trainParam.epochs=50; net.train-Param.goal=0.01;”,语句实现。其他参数默认。 ③网络仿真:使用“y1=sim(net, x); y2=sim(net, x};”语句仿真训练前后的BP神经网络。 (2)程序如下: clear all; x=[-0.5:0.01:0.5]; y=exp(-1.9*(0.5+x)).*sin(10*x); net=newff(minmax(x),[20,1],{'tansig' 'purelin'}); y1=sim(net,x); %未训练网络的仿真结果net.trainParam.epochs=50; net.trainParam.goal=0.01; net=train(net,x,y); y2=sim(net,x); %训练后网络的仿真结果figure;

神经网络建模及Matlab中重要的BP网络函数

神经网络建模及Matlab中重要的BP网络函数一、神经组织的基本特征 1.细胞体是一个基本的初等信号处理器,轴突是信号的输出通路,树突是信号的输入通路。信号从一个神经细胞经过突触传递到另一个细胞。 2.不同的神经元之间有不同的作用强度,称为联接强度。当某细胞收到信号时,它的电位发生变化,如果电位超过某一阈值时,该细胞处于激发态,否则处于抑制状态。 3.两神经元之间的联接强度随其激发与抑制行为相关性的时间平均值正比变化,也就是说神经元之间的联接强度不是一成不变的。这就是生物学上的Hebb律。

∑t j ij t S w )(二、人工神经元的M-P 模型(McCulloch 、Pitts,1943) 1.构造一个模拟生物神经组织的人工神经网络的三要素: (1).对单个神经元给出定义; (2).定义网络结构:决定神经元数量及连接方式; (3).给出一种方法,决定神经元之间的联接强度。 2.M-P 模型 其中,t 表示时间 S i (t)表示第i 个神经元在t 时刻的状态,S i (t)=1表示处于激发态,S i (t)=0表示处于抑制态 w ij 表示第j 个神经元到第i 个神经元的联接强度,称之为权,可正可负 表示第i 个神经元在t 时刻所接收到的所有信号的线性迭加。 μi 表示神经元i 的阈值, 可以在模型中增加一个S k (t)=1神经元k ,并且w ik =-μi ,则阈值可归并到和号中去。 注: 1.M-P 神经元虽然简单,但可以完成任何计算。 2.神经元的状态可以取[0,1]中的连续值,如用以下函数代替θ(x): ???<≥=-=+∑0 0011x x x t S w t S i j j ij i )() )(()(θμθ

基于神经网络的股票价格走势预测及其MATLAB实现——论文

基于神经网络的股票价格走势预测及其MATLAB实现 摘要 伴随着我国经济的高速发展和广大投资者日益旺盛的需求,股票投资已经成为一种常见的投资手段,而股票价格预测也逐渐成为广大投资者关心和研究的重点问题。股票价格的波动是一个高度复杂化的非线性动态系统,其本身具有诸如大规模数据、噪声、模糊非线性等特点。针对这些特点本文在深入分析股票市场实际预测中所面临的关键问题和比较各种已有的股票预测方法的基础上,探讨运用神经网络这一人工智能工具,研究基于历史数据分析的股票预测模型。 神经网络是建立在对大规模的股票历史数据的学习仿真的基础上,运用黑盒预测方式找出股市波动的内在规律,并通过将其存储在网络的权值、阈值中,以此来预测未来短期或是中长期的价格走势。 关键字:神经网络,股票,预测,MATLAB工具箱 ABSTRACT Along with the economy growth and increasingly strong demand of many investors in our country, stock has become a common means of investment, and stock price forecast has greatly been one of the focuses of study topic. The change of stock price is a highly complicated nonlinear dynamic system, itself has many characteristics such as massive data, noise, fuzzy and nonlinear. This article analyses the key issues being existent in the real stock market prediction and compares various existing stock forecasting methods. We will try to research on stock price prediction model based on a neural network with huge historical data. Neural network is based on studying massive historical data, uses the black box of forecasting ways to find the internal disciplinarian of stock market, and stores them in the weights and valves values of the neural network for predicting the short-term or long-term trend in the future. KEYWORD:Neural networks, Stock, prediction, MATLAB toolbox

BP神经网络在Matlab函数逼近中的应用

燕山大学 模式识别与智能系统导论 题目:BP网络在函数逼近中的应用 专业:控制工程 姓名: X X X 学号:

一BP神经网络及其原理............................................................ - 1 - 1.1 BP神经网络定义............................................................. - 1 - 1.2 BP神经网络模型及其基本原理..................................... - 1 - 1.3 BP神经网络的主要功能................................................. - 3 - 1.4 BP网络的优点以及局限性............................................. - 3 - 二基于MATLAB的BP神经网络工具箱函数 ........................ - 6 - 2.1 BP网络创建函数............................................................. - 7 - 2.2 神经元上的传递函数...................................................... - 7 - 2.3 BP网络学习函数............................................................. - 8 - 2.4 BP网络训练函数............................................................. - 9 - 三BP网络在函数逼近中的应用.............................................. - 10 - 3.1 问题的提出.................................................................... - 10 - 3.2 基于BP神经网络逼近函数......................................... - 10 - 3.3 不同频率下的逼近效果................................................ - 14 - 3.4 讨论................................................................................ - 17 -

神经网络作业(函数逼近)

智能控制理论及应用作业 1资料查询 BP 神经网络的主要应用: 人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等 Rbf神经网络的主要应用: 函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测 Hopfield网络应用: 车牌识别、图像识别、遥感影像分类、字母识别、交通标志识别、优化计算中的应用、联想记忆存储器的实现、 2 BP编程算法: 2.1 利用样本训练一个BP网络 注:此程序自李国勇书中学习而来 程序部分: function [ output_args ] = bp( input_args ) %UNTITLED Summary of this function goes here % Detailed explanation goes here %此设计为两层BP神经网络,3输入,3隐含层节点,两个输出 %初始化部分: lr=0.05; %%需要给定学习速率 error_goal=0.001; %期望的误差 max_epoch=100000; %训练的最大步长 a=0.9; %惯性系数 Oi=0; Ok=0; %给两组输入,以及目标输出: X=[1 1 1;-1 -1 1;1 -1 1;]; %随便给一组输入输入,训练BP网络

T=[1 1 1 ;1 1 1]; %X=-1:0.1:1; %输入范围 %T=sin(pi*X); %X=[] q=3; %隐含层的节点数自己定义,在此给3个 %初始化 [M,N]=size(X); %输入节点个数为M,N为样本数 [L,N]=size(T); %输出节点个数为L wij=rand(q,M); %先给定加权系数一组随机值 wki=rand(L,q); wij0=zeros(size(wij)); %加权系数矩阵的初始值 wki0=zeros(size(wki)); for epoch=1:max_epoch %计算开始 NETi=wij*X; %各个隐含层的净输入 for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; %再输入作用下,隐含层的输出 end end NETk=wki*Oi; %各个输出层的净输入 for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; %在输入作用下,输出层的输出end end E=((T-Ok)'*(T-Ok))/2; %性能指标函数,就是误差 if(E

BP神经网络实现函数逼近python实现

机器学习作业一BP神经网络实现函数逼近 一.算法描述 BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。 二.数据描述 逼近函数y = sin(x) 三.算法参数 输入学习率,迭代次数,逼近函数,神经网络规模 输出逼近的函数 四.实验流程 反向传播算法(Back Propagation)分二步进行,即正向传播和反向传播。 这两个过程简述如下: 1.正向传播 输入的样本从输入层经过隐单元一层一层进行处理,传向输出层;在逐层处理的过程中。在输出层把当前输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。 2.反向传播 反向传播时,把误差信号按原来正向传播的通路反向传回,逐层修改连接权值,以望代价函数趋向最小。 输入层输入向量(n维):X=(x1,x2,…,xi,…,xn)T 隐层输出向量(隐层有m个结点):Y=(y1,y2,…,yj,…,ym)T 输出层输出向量(l维):O=(o1,o2,…,ok,…,ol)T 期望输出向量:d=(d1, d2,…,dk,…,dl)T 输入层到隐层之间的权值矩阵:V=(V1,V2,…,Vj,…,Vm) 隐层到输出层之间的权值矩阵用:W=(W1,W2,…,Wk,…,Wl) 对输出层第k个结点和隐含层的第j个结点有如下关系:

神经网络

第一节、神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示: 图1. 人工神经元模型 图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j 到神经元i的连接权值,θ表示一个阈值( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为: 图中yi表示神经元i的输出,函数f称为激活函数( Activation Function )或转移函数( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:

若用X表示输入向量,用W表示权重向量,即: X = [ x0 , x1 , x2 , ....... , xn ] 则神经元的输出可以表示为向量相乘的形式: 若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。 图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。 2. 常用激活函数 激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。 (1) 线性函数( Liner Function ) (2) 斜面函数( Ramp Function ) (3) 阈值函数( Threshold Function )

图2 . 阈值函数图像 以上3个激活函数都是线性函数,下面介绍两个常用的非线性激活函数。 (4) S形函数( Sigmoid Function ) 该函数的导函数: (5) 双极S形函数

神经网络作业(函数逼近)

神经网络作业(函数逼近)

智能控制理论及应用作业 1资料查询 BP 神经网络的主要应用: 人脸识别、风电功率预测、短时交通流混沌预测、高炉熔渣粘度预测、汇率预测、价格预测、函数逼近等 Rbf神经网络的主要应用: 函数逼近、短时交通流预测、模式识别、降水预测、民航客运量预测、遥感影像分析、声纹识别、语言识别、人脸识别、车牌识别、汇率预测 Hopfield网络应用: 车牌识别、图像识别、遥感影像分类、字母识别、交通标志识别、优化计算中的应用、联想记忆存储器的实现、 2 BP编程算法:

T=[1 1 1 ;1 1 1]; %X=-1:0.1:1; %输入范围 %T=sin(pi*X); %X=[] q=3; %隐含层的节点数自己定义,在此给3个 %初始化 [M,N]=size(X); %输入节点个数为M,N为样本数 [L,N]=size(T); %输出节点个数为L wij=rand(q,M); %先给定加权系数一组随机值 wki=rand(L,q); wij0=zeros(size(wij)); %加权系数矩阵的初始值 wki0=zeros(size(wki)); for epoch=1:max_epoch %计算开始 NETi=wij*X; %各个隐含层的净输入

for j=1:N for i=1:q Oi(i,j)=2/(1+exp(-NETi(i,j)))-1; %再输入作用下,隐含层的输出 end end NETk=wki*Oi; %各个输出层的净输入 for i=1:N for k=1:L Ok(k,i)=2/(1+exp(-NETk(k,i)))-1; %在输入作用下,输出层的输出 end end E=((T-Ok)'*(T-Ok))/2; %性能指标函数,就是误差 if(E

神经网络误差函数大全

关于误差函数的深入研究姓名:李宏成 学号:6720130345

摘要 我写这篇文章的目的意在补充老师上课中遗留的一些问题以及我自身对神经网络中误差函数的一些看法。文章涉及到hebb学习规则中误差函数推导过程,非线性传输函数中误差函数推导过程以及感知机的误差函数证明。如有不足之处,敬请谅解。

1.Hebb 学习规则中误差函数的推导过程 首先,在推导过程中我们首先要问问自己为什么我们要选择最小二乘?有许多东西都可以被优化,为什么我们要选择这样的指标(()() ∑=-= m i T P W T W F 1 2 )? 其次,理论的推导过程是以有监督hebb 学习规则为前提,采用的传输函数是类似于线性联想器的purelin 函数。此函数为一过原点且斜率为1的直线,因此整个系统的输出结果就可以直接认为是该系统的净输入。 在这里,我们先定义如下几个基本参数 m 表示训练的样本数目 p 表示输入变量 a 表示实际输出 w 表示权值参数 于是()a p ,就构成了一个训练样本,更一般的() () ()( )p a p i i ,表示第i 列训练样本集。所以, 我们可以用如下表达式来表述成我们所预想的结果: ()n n p w p w p w p a +++=...1100 (1.1) 为了突出权值在实际输出函数()p a 中的作用和更具有真实性质,以上式(1.1)子我们可以改写成: ()B p w p w p w p a n n w ++++=...1100 (1.2) 其中B 是一个偏置项,你可以把偏置项看成是对未建模事物产生的效应的一种估测。我们举个例子,购买房屋时我们主要是考虑房子每平米的价格,地理位置等主要特征(这里所指的权值),也许房子还有其它的特征比如说朝向,楼层高度,是否有电梯等因素。 用矩阵形式表示(1.2)可以改写成: () ()()()()i i T i i i n i i w b p W b p w p a +=+∑==1 (1.3) 现在我们假设偏置项() i b 服从均值为0,方差为2 ?的高斯分布,那么它的概率密度函数可以表示为: () () ()() ()()()( )? ?? ? ? ?--=???? ??-=22 222exp 212exp 21σσπσσπi T i w i i p W p a b b f (1.4) 观察等式(1.4)的右半部分,我们不难看出输出项() i w a 服从均值为() i T P W ,方差为2 ?的高 斯分布。这里假设不同输入对应的偏置项() i p 是彼此独立同分布的,这意味着它们都服从均值和方差完全相同的高斯分布。现在我们定义一个似然性函数: ()()()() ??? ? ? ?--=???? ??-=22 222exp 21 2exp 21σσπσσπP W p a B W L T w (1.5)

基于Bp神经网络的股票预测

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

BP神经网络逼近非线性函数

应用BP神经网络逼近非线性函

一、实验要求 1、逼近的非线性函数选取为y=sin(x1)+cos(x2),其中有两个自变量即x1,x2,一个因变量即y。 2、逼近误差<5%,即:应用测试数据对网络进行测试时,神经网络的输出与期望值的最大误差的绝对值小于期望值的5%。 3、学习方法为经典的BP算法或改进形式的BP算法,鼓励采用改进形式的BP算法。 4、不允许采用matlab中现有的关于神经网络建立、学习、仿真的任何函数及命令。 二、实验基本原理 2.1 神经网络概述 BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传播,误差反向传播。在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出,则转入反向传播,根据预判误差调整网络权值和阈值,从而使BP神经网络预测输出不断逼近期望输出。BP神经网络的拓扑结构如图所示。 2.2 BP神经网络训练步骤 BP神经网络预测前首先要训练网络,通过训练使网络具有联想记忆和预测能力。BP神经网络的训练过程包括以下几个步骤。 步骤1:网络初始化。根据系统输入输出序列(X,Y)确定网络输入层节点数n、隐含层节点数l、输出层节点数m,初始化输入层、隐含层和输出层神经元之间的连接权值ωij,ωjk,初始化隐含层阈值a,输出层阈值b,给定学习速率和神经元激励函数。 步骤2:隐含层输出计算。根据输入变量X,输入层和隐含层间连接权值ωij 以及隐含层阈值a,计算隐含层输出H。

j 1 (a )n j ij i i H f x ω==-∑ j=1,2,…,l 式中,l 为隐含层节点数,f 为隐含层激励函数,该函数有多种形式,一般选取为1 (x)1x f e -=+ 步骤3:输出层输出计算。根据隐含层输出H ,连接权值ωjk 和阈值b ,计算BP 神经 网络预测输出O 。 1 l k j jk k j O H b ω==-∑ k=1,2,…,m 步骤4:误差计算。根据网络预测输出O 和期望输出Y ,计算网络预测误差e 。 k k k e Y O =- k=1,2,…,m 步骤5:权值更新。根据网络预测误差e 更新网络连接权值ωij ,ωjk 1 (1)x(i)m ij ij j j jk k k H H e ωωηω==+-∑ i=1,2,…,n j=1,2,…,l jk jk j k H e ωωη=+ j=1,2,…,l k=1,2,…,m 步骤6:阈值更新。根据网络预测误差e 更新网络节点阈值a ,b 。 1 (1)m j j j j jk k k a a H H e ηω==+-∑ j=1,2,…,l k k k b b e =+ k=1,2,…,m 步骤7:判断算法迭代是否结束,若没有结束,返回步骤2。 2.3 附加动量法 经典BP 神经网络采用梯度修正法作为权值和阈值的学习算法,从网络预测误差的负梯 度方向修正权值和阈值,没有考虑以前经验的积累,学习过程收敛缓慢。对于这个问题,可以采用附加动量法来解决,带附加动量的算法学习公式为 [](k)(k 1)(k)a (k 1)(k 2)ωωωωω=-+?+--- 式中,ω(k),ω(k-1),ω(k-2)分别为k ,k-1,k-2时刻的权值;a 为动量学习率,一般取值为0.95。

Matlab神经网络工具箱函数.

MATLAB 神经网络工具箱函数 说明:本文档中所列出的函数适用于 MATLAB5.3以上版本, 为了简明起见, 只列出了函数名, 若需要进一步的说明,请参阅 MATLAB 的帮助文档。 1. 网络创建函数 newp 创建感知器网络 newlind 设计一线性层 newlin 创建一线性层 newff 创建一前馈 BP 网络 newcf 创建一多层前馈 BP 网络 newfftd 创建一前馈输入延迟 BP 网络 newrb 设计一径向基网络 newrbe 设计一严格的径向基网络 newgrnn 设计一广义回归神经网络 newpnn 设计一概率神经网络 newc 创建一竞争层 newsom 创建一自组织特征映射 newhop 创建一 Hopfield 递归网络 newelm 创建一 Elman 递归网络 2. 网络应用函数

sim 仿真一个神经网络 init 初始化一个神经网络 adapt 神经网络的自适应化 train 训练一个神经网络 3. 权函数 dotprod 权函数的点积 ddotprod 权函数点积的导数 dist Euclidean 距离权函数normprod 规范点积权函数negdist Negative 距离权函数mandist Manhattan 距离权函数linkdist Link 距离权函数 4. 网络输入函数 netsum 网络输入函数的求和dnetsum 网络输入函数求和的导数5. 传递函数 hardlim 硬限幅传递函数hardlims 对称硬限幅传递函数purelin 线性传递函数

tansig 正切 S 型传递函数 logsig 对数 S 型传递函数 dpurelin 线性传递函数的导数 dtansig 正切 S 型传递函数的导数dlogsig 对数 S 型传递函数的导数compet 竞争传递函数 radbas 径向基传递函数 satlins 对称饱和线性传递函数 6. 初始化函数 initlay 层与层之间的网络初始化函数initwb 阈值与权值的初始化函数initzero 零权/阈值的初始化函数 initnw Nguyen_Widrow层的初始化函数initcon Conscience 阈值的初始化函数midpoint 中点权值初始化函数 7. 性能分析函数 mae 均值绝对误差性能分析函数 mse 均方差性能分析函数 msereg 均方差 w/reg性能分析函数

神经网络逼近函数

神经网络近似函数 题目: 采用神经网络逼近下列函数: 双极值型算例 9655 .0,537.0] 3,0[2/)3)(89.22.3()(max max 2==∈-+--=f x x x x x x x f 最优值 解: )(x f 的实际图如下: 神经网络训练前: 应用newff()函数建立BP 网络结构。隐层神经元数目n 可以改变,暂设为n=5,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig 函数和purelin 函数,网络训练的算

法采用Levenberg – Marquardt算法trainlm。 因为使用newff( )函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也不同。 神经网络训练后 应用train()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为500,训练精度设置为0.001,其余参数使用缺省值。训练后得到的误差变化过程如下所示。 由上图可知,逼近结果未达到目标,为此我们增加神经元数目n=20; 仿真结果如下:

至此,神经网络逼近结果符合要求。 下图是训练时间图: 从以上结果可以看出,网络训练速度很快,很快就达到了要求的精度0.001。 结论: 1.n 取不同的值对函数逼近的效果有很大的影响。改变BP 网络隐层神经元的数目,可以改变BP 神经网络对于函数的逼近效果。隐层神经元数目越多,则BP 网络逼近非线性函数的能力越强。(左边n=3,右边n=20)

2.不同的精度要求,对函数的逼近效果也不同。精度要求越高,逼近效果越好。 (左边精度为0.01,右边为0.001) 程序文本: clear all; x=[0:0.001:3]; y=-x.*(x.*x-3.2*x+2.89).*(x-3)/2.0; net=newff(minmax(x),[5,1],{'tansig''purelin'},'trainlm'); y1=sim(net,x); %神经网络训练前 net.trainParam.epochs=500; net.trainParam.goal=0.001; net=train(net,x,y);

基于Bp神经网络的股票预测

深圳大学 神经网络原理课程实验 题目:基于BP神经网络的股票预测姓名: 专业: 学院: 信息工程学院 指导教师: 职称: 2014年5月17日

基于神经网络的股票预测 【摘要】: 股票分析和预测是一个复杂的研究领域,本论文将股票技术分析理论与人工神经网络相结合,针对股票市场这一非线性系统,运用BP神经网络,研究基于历史数据分析的股票预测模型,同时,对单只股票短期收盘价格的预测进行深入的理论分析和实证研究。本文探讨了BP神经网络的模型与结构、BP算法的学习规则、权值和阈值等,构建了基于BP神经网络的股票短期预测模型,研究了神经网络的模式、泛化能力等问题。并且,利用搭建起的BP神经网络预测模型,采用多输入单输出、单隐含层的系统,用前五天的价格来预测第六天的价格。对于网络的训练,选用学习率可变的动量BP算法,同时,对网络结构进行了隐含层节点的优化,多次尝试,确定最为合理、可行的隐含层节点数,从而有效地解决了神经网络隐含层节点的选取问题。 【abstract] Stock analysis and forecasting is a complex field of study. The paper will make research on stock prediction model based on the analysis of historical data, using BP neural network and technical analysis theory. At the same time, making in-depth theoretical analysis and empirical studies on the short-term closing price forecasts of single stock. Secondly, making research on the model and structure of BP neural network, learning rules, weights of BP algorithm and so on, building a stock short-term forecasting model based on the BP neural network, related with the model of neural network and the ability of generalization. Moreover, using system of multiple-input single-output and single hidden layer, to forecast the sixth day price by BP neural network forecasting model structured. The network of training is chosen BP algorithm of traingdx, while making optimization on the node numbers of the hidden layer by several attempts. Thereby resolve effectively the problem of it. 【关键词】BP神经网络股票预测分析 1.引言 股票市场是一个不稳定的非线性动态变化的复杂系统,股价的变动受众多因素的影响。影响股价的因素可简单地分为两类,一类是公司基本面的因素,另一类是股票技术面的因素,虽然股票的价值是公司未来现金流的折现,由公司的基本面所决定,但是由于公司基本面的数据更新时间慢,且很多时候并不能客观反映公司的实际状况,采用适当数学模型就能在一定

神经网络实例--对正弦函数拟合

%利用神经网络工具箱对一个正弦函数进行拟合,源码如下: clc clear close all %----------------------------------------------- %产生训练样本与测试样本 P1=1:2:200; %训练样本,每一列为一个样本 T1=sin(P1*0.1); %训练目标 P2=1:2:200; %测试样本,每一列为一个样本 T2=sin(P2*0.1); %测试目标 %------------------------------------------------ %归一化 [PN1,minp,maxp,TN1,mint,maxt] = premnmx(P1,T1); PN2=tramnmx(P2,minp,maxp); TN2=tramnmx(T2,mint,maxt); %------------------------------------------- %设置网络参数 NodeNum = 20; %隐藏节点数 TypeNum = 1; %输出维数 TF1='tansig'; TF2='purelin'; %判别函数(缺省值) net=newff(minmax(PN1),[NodeNum TypeNum],{TF1 TF2}); %------------------------------------------------------ %指定训练参数 net.trainFcn='trainlm'; net.trainParam.show=20; %训练显示间隔 net.trainParam.lr=0.3; %学习步长-traubgd,traubgdm net.trainParam.mc=0.95; %动量项系数-traingdm,traingdx net.trainParam.mem_reduc=1; %分块计算Hessian矩阵(仅对Levenberg-Marquardt算法有效) net.trainParam.epochs=1000; %最大训练次数 net.trainParam.goal=1e-8; %最小均方误差 net.trainParam.min_grad=1e-20; %最小梯度 net.trainParam.time=inf; %最大训练时间 %------------------------------------------------------- %训练 net=train(net,PN1,TN1); %训练 %-------------------------------------------------- %测试 YN1=sim(net,PN1); %训练样本实际输出 YN2=sim(net,PN2); %测试样本实际输出 MSE1=mean((TN1-YN1).^2); MSE2=mean((TN2-YN2).^2);

相关文档
相关文档 最新文档