毕业论文-神经网络在股价预测中的应用.doc_第1页
毕业论文-神经网络在股价预测中的应用.doc_第2页
毕业论文-神经网络在股价预测中的应用.doc_第3页
毕业论文-神经网络在股价预测中的应用.doc_第4页
毕业论文-神经网络在股价预测中的应用.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

青岛大学本科生毕业论文(设计)本科毕业论文(设计)题 目:_神经网络在股价预测中的应用_ Neural Networks Application in Stock Price Forecsting学 院:_ _自动化工程学院_ 专 业: 自动化_ 姓 名: 指导教师:_ _ _ 2013年 6 月 5 日摘 要 随着全球经济的高速发展和各国人们对于股票市场投资认识的不断加深,越来越多的人们踏入了股市投资这个行业,因此更多的投资者便越来越关心股票价格预测这个话题。由于股票投资一个最大的特点是更大的风险就意味着更大的利益,因此股票投资者希望通过建立一个非常精确的股市价格的预测模型来获得更多的利益,故股市价格的预测具有非常重要的应用价值。 但是由于股票市场是一个十分繁杂的非线性的动力学系统,影响股票市场变化的因素除了其自身所包含的规律之外,还包括经济环境等诸多因素,故一般的预测方法难以对其进行准确的预测。由于BP神经网络具有非常好的非线性映射能力、泛化能力和容纳错误的能力,因而其非常适合用来解决股票预测领域中的一些问题。 在本文中,详细介绍了BP算法的基本知识,同时针对BP算法在股市预测中存在的学习速度慢、容易陷入局部极小值、预测结果精度不高等问题,提出一种改进的BP神经网络算法。然后本文基于BP网络进行股市的价格进行预测分析的原理,建立一个基于BP网络的股市价格的预测模型,然后采用改进后的BP算法进行股市预测,并通过MATLAB软件对其预测过程进行仿真实验,最终结果达到了所预料的效果。关键词:神经网络,股票预测,BP算法 Abstract With the increasingly rapid economic development and the change of peoples investment consciousness, stock investment has become an important part of modern life, and the prediction of stock price has become the focus of concern and research of investors. How to build a higher computing speed and a more accurate prediction model of stock market, not only has theoretical significance for financial investors, but also has a more important practical application value. Because the income of stock investment is often proportional to the risk. Although the stock market is a highly complicated nonlinear system, its variation has its own regulation, it is influenced by the market, the macroeconomic environment and other noneconomic reasons, so ,it is hard to forecast the accuracy of the method. The BP neural is suitable to solve some problems in stock market prediction, because of its nonlinear mapping ability, generalization ability and good tolerance, In this thesis, the author introduces the basic knowledge of BP algorithm, as well as an improved algorithm of BP neural network which is in order to solve the problems of the BP algorithm in stock prediction in the presence of slow learning speed, easily falling into local minimum and low prediction accuracy. Then the theory of stock market prediction based on BP network and the shock market prediction model which is based on the BP network is established. The shock market prediction model applies the improved BP algorithm for stock market prediction, and simulation experiments are conducted on the prediction by MATLAB software. Then the final results have achieved the desired effect.Keywords: neural networks, the stock prediction, BP algorithm 目录摘要IAbstractII目录III第1章 绪论11.1 课题的研究背景11.2 国内外研究现状21.3 研究目的及意义3第2章 股票预测的有关知识42.1 股票的基本知识42.2 股票预测的评价指标5第3章 神经网络理论及其算法73.1 人工神经网络概论73.1.1 神经元模型73.1.2 神经元传递函数83.1.3 人工神经网络的特点93.2 BP神经网络103.2.1 BP网络的训练过程113.2.2 标准BP神经网络的优缺点133.3 BP算法的改进14第4章 基于 BP 网络的股市预测164.1 BP网络进行股市预测的原理164.1.1 BP网络预测方法设计164.1.2 BP网络用于股市预测的一般步骤174.2 预测模型参数的选择174.3 BP网络在MATLAB中的实现184.4 BP神经网络进行股市预测的准备204.5 BP网络预测的仿真及结果分析204.5.1原始数据204.5.2仿真结果254.5.3实验结论28结束语30谢辞31参考文献32附录34IV 第1章 绪论1.1 课题的研究背景股票是市场经济的产物,股票的发行与交易促进了市场经济的发展。近一些年来,股票市场已经显露出非常强大的生命力,并逐渐成为证券行业乃至整个金融行业不可或缺的组成部分,而股票投资也成为了人们日常生活的一个重要组成部分。股市的突然变化直接影响稳定的金融市场和健康发展的经济,这样对金融市场会产生很大的振荡。如果股票的突然变化能够提前得到预测,我们就可以对股票市场进行很大程度上的的调控和引导,这将促进我们经济的健康发展。因为股票市场受到国家经济、政治等因素的影响,它的内部规律十分复杂,无固定的变化周期,同时我国个人投资者对股票交易的行为可产生直接的影响,其比例已经高达99%,由于投资者的个人心理状态不同,因而造成了资本市场投资者结构具有特殊性,从而使股价产生波动,使股价走势变得难以把握。与机构投资者相比,单独进行投资的人的专业知识比较缺乏,人数也比较多,并且他们的风险承受能力也相应的比较差,这样就对那些从事投资咨询服务的各单位提出了一些更高的要求。非职业的股民一般无法长期的关注着股市的变动,由于他们还得从事各种职业。上述原因便给股票预测提出了新的课题。股票预测分析是投资者衡量自身的投资风险,并判断其投资价值的前提和基础。它是基于精确的考察统计和股市信息,运用一些比较好的方法,从股市的内在规律出发,来确定股票的未来前景。投资者通过股票预测分析各种因素的影响下,一定程度的确定性投资收益的不确定性,从而为股权投资在股票投资过程中减少主观盲目性,提供了一个基础,从而实现了安全,稳定的收入,资本增值,以抵消通胀,维持市场的流动性,投资主体多元化,参与决策管理,取得良好的避税状态及其他投资用途。股市作为市场经济的一个重要特征,伴随着其诞生,数以百万计的投资者的心就随之牵动。股市的特点是比较高的风险意味着比较高的回报,投资者时时刻刻都在关心股市的价格,将获得的财务数据进行分析,想要预测股市价格的变化趋势。最近一些年来,股市的模型建立与预测分析随着各种科学技术的飞速发展而得到了极大的突破,同时也出现了一些全新的处理方法,而神经网络可以依照输入数据本自身的内在规律建立所需要的模型,这是一种非常有用的智能化的信息处理技术,而且其对非线性系统具有良好的逼近能力,可以综合进行处理非常杂乱的信息,这样它就变成人们探索人类世界奥秘的十分重要的方法。它在许多领域已经被广泛地使用,例如它在信号处理、模式识别与自动控制方面都得到很好的发展。神经网络可以克服传统的定量预测方法所面临的困难和很多人为因素的局限,同时不需要建立一个非常复杂的非线性系统的数学模型,因为它具有很强的非线性逼近能力、自适应特性和自学习特性。人工神经网络这种非常有用的技术手段将被更广泛地应用到股市的预测当中去,在股市预测的许多方面都有其独有的优势,这将为股票这种复杂多变的系统的预测提供一个十分广阔的发展平台。1.2 国内外研究现状从股票市场开始出现以来,股票的预测分析便已经得到各个学术界的关注和探讨研究,世界各国有非常多的学者对其进行了深入地研究,因而产生了许多预测分析方法:(1) 证券投资分析方法此种方法可以预测分析股市价格在未来一段时期内变化的规律,其可以分为运用技术进行分析的方法和运用基本知识进行分析的方法。基本分析法是从引起股票发生变化的某些外部因素着手来分析这些因素与股市之间的相互联系,它的目的是为了分析股票的内在投资价值,它属于长期性质的方法,既关心股票的收益,同时又关心股票的升值;而运用技术进行分析的方法则是以股价的动态变化的规律性来作为其研究分析的对象,直接从股票市场着手,同时结合投资者的心理和交易数量等市场因素的分析,以选择最合适的投资时机与投资方式,以便获取短期的效益。(2) 时间序列分析方法此种方法是通过建立一个股市价格和综合指数之间的辨识模型来预测判断未来一段时期股价的变化,例如ARMA:自回归移动平均的模型,ARIMA:其次非平稳的模型,RW:传统的随机游走的模型等一些方法。时间序列分析方法包含两种类别:单变量的模型和多变量的模型。单变量的模型需要大量的输入数据,并且选取该模型的结构参数这一过程是十分复杂的,但是对这样一种模型来说,其对于一些短期的预测具有十分明显的效果;而多变量的模型就例如RegerssinoAnalyssi等。总而言之,此种分析的方法只能适用于非常短的时期内的预测。 (3) 人工智能方法此种方法是近一些年来科学家们研究最热门的地方,自上世纪80年代初开始直到现在,人工智能便得到了非常大的发展,并且其也应用于各种领域,尤其是人工神经网络的研究取得了划时代的发展。经科学家证实,股市分析是通过研究一个非常复杂多变的非线性的动力学系统来进行的,而人工神经网络却包含着各种十分优良的特性,在处理股价预测这种十分复杂多变的时间序列预测问题方面将发挥其独有的作用。(4) 其他预测方法还有一些其他的预测分析的方法,例如马尔可夫法、判别分析法等定量进行分析的方法;还有利用专家进行评估分析的方法、利用市场进行调查研究的方法等定性进行分析的方法也得到了很大的应用。 1.3 研究目的及意义股票市场能够极大的影响国家国民经济的发展变化,股票价格的突然变化也是一个国家各个方面综合的反映。因此,我们越精确地预测未来股市价格的变化趋势,帮助投资股票的人获取利润和躲避风险就越有把握,就越能够使国家的国民经济体系和金融体系得到高速健康持续的发展。而且,眼下投资基金在中国的发展十分迅速。其便于分散风险,主要从事大规模的组合投资。然而,组合投资对于系统风险则根本无法回避,仅仅能分散非线性风险。而预测分析股市价格的变化正是提前预先判定组合投资的资产所面临的收益和风险,这是对整个金融市场的走势和风险进行深入地研究。因而对股票一些内在规律进行预测这种研究,不但可以帮助投资股票的人进行更好的预测分析股票市场的变化趋势,降低投资风险,获得最大收益;并且对于金融市场的健康发展,也同样具有重大的意义和非常广阔的应用前景。研究表明,股市分析是一个十分复杂的非线性的动力学问题,但是神经网络却具有分布式处理、自我适应、自我组织、自我学习和容纳错误等一些优良的特性,因此在处理股市预测这样一种多种因素影响、非线性、不确定的时间序列的预测问题方面会有其独特的优势。BP神经网络是目前最为广泛应用的一种人工神经网络,它拥有非线性的映射的能力、泛化的能力与容纳错误的能力,是自动控制方面最有功效的学习方法之一,同样它也是股票的预测分析中的首选的人工神经网络。将BP网络这种技术应用到股票投资的风险的评估和分析当中,以通过了解股市价格运行的内在规律机制,从中正确预测股市价格的走势,帮助预先测定一些灾难性的股价的振荡,从而采取一些适当的措施以维护股票市场的稳定,保证我国经济的高速健康持续的增长。 第2章 股票预测的有关知识2.1 股票的基本知识股票是由一定的股份有限公司发行,用以证明投资该股票的人所拥有的份额大小,它代表着持有该股票的人对股份有限公司的一部分份额资产所拥有的权利。虽然股票只是一种代表物,但是由于持有该股票的人可以凭借着该股票来获取对应的利益份额并且享有相应的权利,所以股票是一种有价的证券,同时其也具有以下一些重要的性质: (1) 风险性我们生活中的每一项投资都存在着或大或小的风险,就连股票的投资照样也不会例外。其风险性主要体现在以下几个方面:首先,存在着各种各样的影响股份有限公司经营管理的因素,并且股份公司还存在着不确定的经营业绩,股份公司每一段时间的具体的盈利将决定着分给股票持有者的红利和股息的多少。经营好盈利多,股息的红利就可以多发;经营状况不佳盈利就少,股东的收益就少,甚至可能达到无利可分;如果公司破产,那么股票持有者就很有可能血本无归;其次,影响股票价格变化的因素除了股份公司的经营业绩外,还存在着众多的其他一些因素。如果投资者购买的是在二级市场上可以进行流通交易的股票,当该种股票的价格开始下滑时,该股票的持有者就会由于股票的贬值而遭受损失。但是二级市场股价的浮动并不会影响到上市公司的经营和业绩,如果股民购买股票是为了取得上市公司的股息红利,那么二级市场上股票价格的波动对其经济利益并没有实质性的影响。 (2) 收益性股票的收益性是指拥有该股票的人都能够凭借着股票从发行该股票的公司领取一定的分红,从而就可以获得购买该股票所应得的效益,这不仅是购买股票的人向该股份公司进行股票投资的主要原因,同时也是该股份公司发行其股票的应当具备的条件之一。例如根据我国规定,某一公司发行一种股票在前三年内必须要是连续的盈利,股票进行分红的前提条件包括该股票必须是盈利的这个因素,这样就可以为上市股票的收益性提供了一些保障。(3) 参与性根据我国法律规定,拥有股票的人就一定要成为发行该股票的股份有限公司的股东,他便拥有参与该公司管理决策的相应权利。因此,股东进行投资所想要的经济利益在行使其参与公司管理的权利时得到一定的加强。通俗来讲,某一股东要想成为该股份公司的领头者时,其拥有的股票份额必须占整个份额的绝大多数。 (4) 稳定性股票的稳定性是指股票所代表的是拥有股票的人与卖出该股票的公司之间一种较为平和稳定的经济关系。股东通过一定的资金进行投资而买进股票后,拥有股票的人将不能够退还该股票,股份公司和股票是相互联系的,也就是股票是与发行该股票的公司并存的。对于拥有该股票的人来说,只要其拥有该种股票,就永远不会变动该股票代表的各种权益。如果想要改变其股东的身份,要么将该种股票转让给第三方,要么等待发行该股票的公司的破产清盘。 (5) 流通性某一种股票在经得上级一些部门的同意之后,就能够在国家证券交易所内部流通或者进行柜台的交易,持有该股票的人就可将该股票按照相对应的市场价格将其转让给第三方,该股票所代表着的各种权益将全部转让给买进该股票的人。当股东所拥有的股票是可以在市场上流通交易的股票时,拥有该股票的人就可以在任何一个该股票的买卖日到市场上兑现该股票,这就是股票的流通性。但是无论在哪一个国家或者地区,能够上市流通的股票所占的比例都非常的小,并不是所有的股票都可以在市场上进行流通交易。2.2 股票预测的评价指标决定股票的市场价格的因素除了该股票的价值之外,还存在着各种各样的其他一些因素。进行股票预测所涉及的一些变量如下所示:(1) 综合指数是一个影响整个股票市场气势的变量,同时也是股市价格进行预测分析的变量之一,在国内其可以分成上证综合指数与深证综合指数。(2) 开盘价是指该种股票在当天开盘后第一笔进行交易的价格。假如该股票在其可以买卖后30分钟之内不存在成交的价格,则将前一天该股票的收盘价定为其开盘价。(3) 收盘价是指在该股票交易中每一天其最后一笔的交易价格。(4) 最高价与最低价分别是指该股票在每一天所进行交易的价位中的最高的、最低的价位。 (5) 成交量是指股票每一天进行交易的数目。通常手是股票进行交易的最小单位,一手代表100股。(6) 成交金额是指用货币来表示的该股票在一段时期内的成交总量,其等于该股票卖出时的价格乘以该股票在一段时期内成卖出去的数量。(7) 涨跌是将每一天的收盘价与前一天的收盘价来进行比较,从而决定该股票的价格的变化趋势。(8) 市盈率是指某一种股票在市面上每一股所代表的市价与每一股所得到的实际盈利之间的比率。(9) 市净率是指一个股票在市场上的价格与发行该股票时其代表的价格之间的比值。(10) 资产收益率是指一个企业在一段时期内的纯利润与所投资的平均资产的总额之间的比值。 第3章 神经网络理论及其算法3.1 人工神经网络概论人工神经网络(Artificial Neural Network),同时也被简称为神经网络(Neural Network),这是一种模仿生物的神经网络结构和功能的数学计算模型。神经网络是由非常多的人工神经元相互联结而进行计算的。在许多情况之下,人工神经网络则利用外面的信息,来改变自身内部的结构,这是一种自我适应的系统。人工神经网络是受到生物(人或其它动物)的神经网络的启发式操作功能的想法而构造。人工神经网络在一般意义上就是一种学习方法(Learning Method),通过对一些数据的学习,我们可以利用其来达到我们想要的结果。因此,通过标准的数学统计方法,通过统计学的标准数学方法我们能够得到大量的可以用规范性函数来表示的局部结构空间;同时,在人工智能领域的人工感知领域中,我们可以在数理统计学进行推广应用的基础上做一些人工感知方面的决定性的问题,通过数学统计学的应用(即通过统计,人工神经网络有喜欢的人喜欢简单和容易的判断做出决定的能力)相比,这种方法比逻辑推理演算形式化具有更多的优点。3.1.1 神经元模型人工神经网络中最基本的一种单元是人工神经元,神经元的这种模型结构是生物神经元的结构和功能的一种数学抽象。图3-1是一个多个输入、单个输出的非线性的单元,其主要是由输入值、权值、阈值、激活函数和输出值几个部分所构成。 图31 人工神经元模型 上图中, 表示神经元接收的来自前级n个神经元的输入信号;每一个输入都对应于一个权值,即轴突的传递效率;神经元的激活状态由所有输入进行加权求和后的结果决定,即 ;每一个神经元设定一个阈值,如果神经元的输入加权和大于阈值,则它处于激发状态。表示神经元的激活函数,激活状态发生改变时神经元产生输出,为。根据在人工神经网络中的功能的不同,神经元可以分为三种:输入神经元、隐层神经元和输出神经元。可以接收来自外部信息的神经元是输入神经元,对外部输出信息的是输出神经元,隐层神经元处于神经网络内部,并不直接与外部环境接触。这三种类型的神经元彼此相互连结,共同构成了一个功能完备的神经网络。3.1.2 神经元传递函数根据神经元输出的特性的异同,可采用一些不同的传递函数来表示,主要有图3-2所示的几种形式。 图3-2 神经元传递函数(1) 阈值型函数此类函数可分为阶跃函数与sgn函数,其分别如图(a)和(b)所示,其表达式为: (2) 分段线性函数该函数如上图(c)所示,其表达式为: (3) S型函数此函数如图(d)所示,在(0,1)内单调连续取值,型函数的表达式为: (4) 双曲正切S型函数此函数如图(e)所示,在(-1,l)内单调连续取值,型函数的表达式为: 3.1.3 人工神经网络的特点神经网络的主要特点是:(1)分布式存储信息神经网络是指许多神经元之间的相互连接,并对各个层次之间连接的权值的分布来表示一些特定的信息,将其信息存储于该网络不同的位置中,其具有鲁棒性能和容错性能。如果由于某些原因,输入信号失真或网络局部受损,网络输出则仍能保证其正确性。(2)并行协同处理信息单个人工神经元的功能极其有限,其结构也非常简单,由于神经网络是由很多人工神经元构成的,具有实时性与并行性,因此可以实现多种不同的行为。人工神经网络对输入的数据进行一定地处理运算,这是依赖于网络中的每个神经元独立完成的,而且各神经元之间又互不影响,可以同时处理信息,然后一层层地传下去,并最终得到网络的总输出。(3)信息处理与存储合二为一神经元不仅具有信息处理的功能,而且还具有信息存储的功能,对信息的记忆与处理同时体现在神经元之间权值的变化以及激励函数对神经元的影响中。(4)自学习、自组织在网络的训练过程中,神经网络的权值会不断地发生调整和变化,它表示着各个人工神经元之间的连接强度。此外,随着反复学习和训练样本的增加,每个神经元之间的权值会不断地增大,神经元的反映灵敏度便会得到相应地提高。3.2 BP神经网络1986年,Rumelhart和McCelland领导的科学家小组在Parallel Distributed Processing一书中,提出了具有非线性连续转移函数的多层感知器的误差反向传播(error back proragation,简称BP)算法。这种算法成为目前应用最多的一种神经网络学习算法。 图3-3 BP神经网络模型其如图3-3所示,基于BP算法的BP神经网络是一种单方向传播的多层的前向网络,一般为三层或者三层以上,其一般由输入层、输出层与至少一个隐含层组成。各层必须包括一个或者多个人工神经元,并且每层之间一般采用全互连的方式,即下层的单元与上层的单元之间都要实现全部连接,而同一层的各人工神经元之间不能存在相互的连接,相邻两层的人工神经元之间都通过可调的权值来连接,并且各人工神经元之间不会存在反馈。它的信息是由输入层依次向第一个隐含层进行传递,一直直到输出层。每一个人工神经元以加权和的形式来综合它的全部或者一部分的输入数据,并且根据选用的激活函数形式来产生相对应的输出。BP神经网络的激活函数为非线性连续可微的非递减的函数,我们一般使用型函数。BP算法的基本思路是:其学习的过程是由输入信号的正方向进行传播与误差的反方向进行传播这两个过程构成。在正方向传播时,我们输入的样本由输入层开始传入,经各隐含层逐层进行处理后,然后传给输出层。如果输出层实际的输出与其期望的输出不相符时,则便开始进入误差的反方向传播阶段。误差的反方传是指将输出的误差以某一种方式通过该网络的隐含层向其输入层开始逐层反传,并且将这个误差分给每一个层次的所有单元,从而便获得各个层次每一个单元的误差信号,此误差信号即可以作为修改每个单元权值的根据。这样一种信号正方向的传播与误差反方向的传播的各个层次的权值调整的过程是循环往复地进行的。神经网络的学习训练体现在该网络的权值在不断进行调整的过程中。这个过程一直进行到该神经网络输出的误差减小到某一个设定值,或者达到我们预先设定那个学习次数为止。3.2.1 BP网络的训练过程BP神经网络的训练过程一般可分为以下几个步骤: (1) 初始化BP神经网络各层之间的连接权值和神经元的阈值,设定网络基本参数,如学习步长、误差精度等,准备输入训练样本数据集合;(2) 将样本集合中的训练样本输入到网络中进行一定地训练。设所训练的样本为,输入层与隐层之间的连接权值为,隐层神经元的阈值为,则计算隐层各个神经元的输出值的公式可以表示为: 为了更方便地表示,令,则隐层各个单元的输出值公式可表示为:(3) 根据隐层各个单元的输出、由隐层到输出层的连接权值和输出层神经元阈值便可以得到计算输出层神经元的输出公式如下式所示: 同样地为了方便起见,令,则输出层神经元的输出值公式可表示为:(4) 计算实际输出的值与期望的值之间的这个差值,判断其差值是否小于我们预先进行设定的误差。如果计算的差值小于设定误差,那么转回到步骤(2),从样本集合中选取下一个样本对进行新一轮的训练;否则,网络便转入误差反方向传播的阶段,按照使误差E不断减小直到小于设定误差的调整原则,对网络各层的连接权值进行调整和修改。利用梯度下降的方法求连接权值的变化,输出层的连接权值修正公式表示为: 其中, 那么, 所以有, 根据以上公式可以推导出隐含层到输出层之间的连接权值的调整公式为: 以及隐含层到输入层之间的连接权值的调整公式为: (5) 从样本集合中顺次选取下一个样本对,返回步骤(2)继续进行训练,直到所需要训练的样本都已经被训练完毕。(6) 如果网络的全局型的误差小于预先设定的误差,那么结束训练,输入新的样本到网络中进行测试;如果输出值大于预先设定的误差,那么返回到步骤(1)重新开始。BP算法训练流程图如图3-4所示: 图3-4 BP算法训练流程图3.2.2 标准BP神经网络的优缺点 BP 网络是目前世界上应用最为广泛的神经网络之一,主要是由于基于 BP 算法的多层感知器具有以下一些吸引人的能力:(1) 非线性映射能力 BP 网络通过学习存储大量的输入和输出模式相对应的映射关系,而并需要事先用知识性的数学方程来描述这种映射关系。在工程上及许多技术领域中,经常会遇到诸如此类的问题:在输入输出系统方面已经集聚了许多相关的输入输出数据,但其内部的规律性仍然尚未掌握,因此不能用准确的数学分析方法来描述其中蕴涵的内在规律性。这种问题具有难以得非常准确的解、缺乏专家的经验、能够转化成为模式识别或者非线性映射的问题的共同特点。对于这种类型的问题,基于BP算法的多层感知器具有非常大的优势。(2) 泛化能力 在将BP神经网络训练之后,其所输入的样本数据中的这种非线性的映射关系便被储存在该网络的权值矩阵当中,在以后的工作阶段中,当向该BP网络输入训练时未曾出现过的非样本数据时,网络也能照常完成由m维输入空间到n维输出空间的正确的映射关系。泛化能力是衡量一个多层次感知器的性能好坏的一个非常重要的方面。(3) 容错能力 BP 网络还允许有较大误差的输入样本。因为权值的调整是一个从大量的输入样本中进行提取具有统计特性数据的过程,能够反映其正确规律的权值是从全体样本得来的,少量样本的误差并不能决定权值调整的结果。然而随着BP神经网络应用范围的逐步扩大,其也逐步显露出了越来越多的缺陷和不足之处,例如:(1) BP算法容易陷入局部极值并且达不到全面的优化从数学的角度来看,传统的 BP神经网络是一种按局部进行搜索来优化的一种方法,它所要解决的就是一个复杂的非线性化问题,沿局部改善的方向逐渐调整网络的权值,这样会使BP算法陷入局部极值,权值收敛于一个局部极小点,从而使网络训练失败。同时初始的网络权重使BP神经网络对其十分的敏感,当我们使用各种各样的权重来对神经网络进行初始化时,该网络便将收敛于不同的局部极小值。(2) BP神经网络在学习时其收敛的速度比较慢由于BP神经网络算法在本质上来说是一种梯度下降法,而它所要进行优化的目标函数又是十分复杂的,因此,必然会出现“锯齿形现象”,这将使得BP算法低效;同时由于所要优化的目标函数也很复杂,它必然会在BP神经元输出接近0或1的时候,得到一些较为平坦的区域,这时权值误差改变的量非常得小,这将使得该网络的训练过程变得十分缓慢;在BP神经网络的模型当中,为了使该网络可以顺利地执行BP算法,我们就不能使用所谓传统的一维搜索方法来求每一次迭代所得的步长,而必须先把该步长更新的规则预先赋予给该BP网络,这种方法也会产生BP算法的低效性能。以上种种情况,将导致BP神经网络算法收敛速度慢的现象。(3) 网络的结构参数(包括隐层数、隐层神经元数)和运算参数(如学习速率、非线性函数等)的选取一般缺乏理论上的指导,都是在经验的基础上来确定的,因此,这将导致网络往往会具有很大的冗余性,同时也增加了网络学习的时间。3.3 BP算法的改进标准BP算法的改进可以分为两大类:其中一类就是基于标准的梯度下降法的算法来进行改进,例如弹性BP算法、自适应学习速率法、动量法等;而另一类则是基于数值优化方法的算法改进,例如共轭梯度法、拟牛顿法、LM法等。 (1) 增加动量项 标准的BP算法在进行调整权值的过程当中,只按照N时刻的误差梯度下降的方向来进行调整,而从不考虑N时刻以前的梯度下降的方向,这往往会使训练的过程发生一些振荡,收敛的速度也会变得比较缓慢。为了提高BP网络在训练时的速度,我们就可以在它的权值的调整公式当中增加一个动量项。 现在就以输出层作为例子,则其权值调整向量表达式为: 从上式我们可以看出,增加一个动量项这种方法就是从前一次的权值的调整量当中取出一些量来叠加到本次权值的调整量中,其中被称之为动量因子。动量项这个量反映了前一段时间积累的调整的经验,对于N时刻权值的调整起到一定阻尼的作用。特别是当误差的曲面上突然出现变化时,增加动量项这种方法便可以减小网络振荡的趋势,提高我们对其进行训练的速度。(2) 自适应调节学习速率学习速率的另一个名称为步长,在标准的BP算法中它就是一个常数,然而我们在实际的应用过程当中,便很难确定一个自始至终都非常合适的最佳学习速率。从误差的曲面上我们就可以得到,在比较平滑的一块区域内如果非常小就会增加该网络所需训练的次数,这样我们便希望可以增大值;而在误差变化非常剧烈的区域内,太大则会由于调整量太大而跨过比较窄的“坑凹”处,使训练过程出现振荡,这样就使迭代的次数增加。神经网络可以自适应的改变其学习的速率,让其在该增大的时候就会增大,在该减小的时候就会减小,这种方法可以加快所建立的网络的收敛速度。自适应调节学习速率的调整公式为: = 其它 其中,表示第k次神经网络训练后所得到的误差平方和,表示第k次训练神经网络的学习速率,自适应的调节学习速率可以缩短网络训练所花费的时间。 第4章 基于 BP 网络的股市预测4.1 BP网络进行股市预测的原理BP神经网络通过记忆输入到网络中的历史数据,找出股票在股市中变化的规律,从而用以预测在未来一段时期内某一股票价格的变化趋势。4.1.1 BP网络预测方法设计设某一时间序列为,其中该时间序列的历史数据为,对未来n+m+k (k0)时刻的该序列的取值进行相应的预测,即预测(k0)的某一种非线性的函数关系: 我们经常使用如下三种预测:(1) 单步预测单步预测是指当该神经网络所有输入的数据都是在时间序列下的实际值时所进行的预测。在进行单步预测的时候,把时间序列上的实际值这些所需的输入数据输入到神经网络当中,其输出就是下一个时刻的预测的值,若想要继续对的值进行预测,则必须使用实际值来作为网络输入的数据,便可以得到预测的值。(2) 多步预测 多部预测是指当BP神经网络开始输入所要求的历史数据的时候,网络输出的便是这些预测的值。实验已经证实多步预测当用于预测股票的价格的时候,其预测误差比较大。这可能是由于在网络调整其权值与阀值的时候,每一次迭代过程都要累加前一次k个预测的值的误差,因而便造成此网络难以收敛于某个值,甚至可能导致该网络发生严重振荡的情况。(3) 滚动预测滚动预测,又可以称为先迭代一步,再进行下一步预测,即首先对网络进行一次中的预测,然后再将该网络的输出预测值传回到网络的输入端再作为该网络输入的一部分数据,以用于进行下一个步骤的预测。假若开始进行预测的时候,其输入的数据是时序实际的值,其输出便是下一个时间点的预测的值,然后再将与一起作为该网络输入的数据对进行预测估计,然后得到输出预测的值,再将与作为该网络输入的数据对进行预测估计,如此反复进行迭代,便可以得到对未来的一段时期预测的值。如下表4-1所示,便可以预测未来q个时刻的值。 执行的步骤 神经网络的输入 其输出(预测值) 1 2 . . . q 表4-1 滚动预测可见,当ql时,输入的数据一般不只是时序实际的观测值,同时也包含预测的值,特别是当qm时,全部输入的数据都是预测的值。按照股票买卖的数据量,我们一般可以将投资预测分为短时间投资的预测和长时间投资的预测。我们要实现短时间的投资预测就得使用单步预测的方法;而时间序列比较长一些的预测一般可以采用迭代一步来进行预测,即像前面讲诉的方法那样来用一个短时间的预测模型来进行逐步的预测,将预测得到的数据反馈给预测的模型作为输入量来继续进行预测。4.1.2 BP网络用于股市预测的一般步骤用BP神经网络对股票的市场价格来进行预测一般可以分为两大部分,即神经网络的训练和神经网络的预测,其大致步骤可以如下所示:(1)选取正常运作情况下的股票样本数据作为训练样本数据,构造训练样本;(2)对股票样本数据进行预处理,即对原始数据进行归一化处理;(3)构造一个训练样本,设定网络输入的数据和目标的数据;(4)选用具有三层结构的BP网络建立预测模型;(5)训练所建立的网络,待该网络训练达到要求后,就可以运用该网络对未来股市的价格进行预测。4.2 预测模型参数的选择 预测模型设计主要需要确定输入输出层的节点数目、所建立网络的层数、所需隐层节点的数目、激活函数的类型、训练的终止条件等等。(1) 输入输出层的节点数目在设计的时候根据问题的需要来设定。(2) 网络层数的选取实验已经证实,任何一个三层的BP网络都可以近似地表示任何一个连续可微的非线性函数。由于神经网络具有简单容易实行、计算量比较小、并行性非常强等优点,因此其目前仍然是多层式的神经网络进行训练的首选的网络结构之一,而且也己被更多的人们广泛地用于各种实际的问题。故本文采用三层次的网络进行股市预测。(3) 隐层节点数的选取影响我们设置的隐层节点数目的多少的原因是多方面的,包括我们所要训练的数据的多少、误差的大小以及数据本身的规律性等等。确定最佳的隐节点数的一个非常常用的方法是试凑法,即可以首先设置比较少的隐节点来训练所建立的网络,然后再逐渐增加其隐节点的数目,利用同一个样本来进行训练,从其中来确定网络的误差达到最小时做所对应的隐节点的数目。下面介绍几个粗略估计隐节点数的公式: 式中,为隐层节点的数目;为输入节点数;为输出层节点的数目;为110区间内的某一固定值。在这篇文章中将采用式来确定网络所需隐层节点的大致数目,然后再通过进行反复的试验来得到具体的节点数。(4) 激活函数的选取初始化参数时,激活函数通常选择的是连续可微的型函数。其表达式如式(3-5)所示。(5) 训练终止条件,主要由最大许可误差值与训练次数来决定。设计时应可根据用户需求来设定其值。当满足条件时,BP网络训练自行终止。4.3 BP网络在MATLAB中的实现 (1) BP神经网络的生成及初始化 一个BP神经网络可以利用newff函数生成。其常用的格式为: 其中,为R组输入数据中每一组元素中的最值组成的维的矩阵;神经网络共有i层,则表示第i层的长度;而则为第i层的传递函数,一般为“tansig”;为BP神经网络训练的函数,一般为“trainlm”;为权值、阈值的BP学习算法,一般为“learngdm”;为BP神经网络网络性能的函数,一般为“mse”;net为生成的BP网路。newff函数建立了一个神经网络并且对这个网络的权值与阈值赋予了初值,用户可以根据自己的需要来重新进行定义各层网络的初始化函数。(2) BP神经网络的训练采用train函数可以对我们所建立的BP神经网络进行训练。其常用格式为:其中,NET为等待训练的BP神经网络;此时P为网络的输入信号;T为网络的目标,一般为0;Pi为初始的输入延迟,一般为0;Ai为初始的层次延迟,一般为0;net为训练后得到的的BP神经网络;tr为网络在训练过程中得到的记录;Y为该BP网络的输出信号;E为BP网络的误差;Pf为最终输入的延迟;Af为最终层的延迟。在网络训练之前,我们一般要对原始数据进行一定的处理以提高网络的训练效率。(3) BP神经网络的仿真采用sim函数可以对我们所建立的BP神经网络进行仿真。其常用格式为:其中,Y为网络输出;此时Pf为最终输出的延迟;Af为最终层的延迟;E为网络误差;perf为网络性能;net为待仿真的神经网络;P为网络输入;Pi为初始输入的延迟时间,一般设置为0;Ai为初始层的延迟时间,一般设置为0;T为网络的目标,一般设置为0。此外,在MATLAB工具箱中提供了postreg函数,可以利用其对我们所建立的网络进行仿真而得到的输出与目标输出作某种分析比较,以此来分析网络经过训练所得到的结果的优劣。(4) 数据的预处理和后处理 数据的预先处理和后处理是一个非常有效地训练BP神经网络关键的步骤,这将直接地影响到训练后BP神经网络的性能。比较常用的方法就是将原始的数据进行归一化的处理,即通过一些线性的变换将输入和输出的数据都统一地限制到0,1或-1,1区间内。 MATLAB工具箱中提供了两种函数:premnmx和postmnmx,前一种函数的功能是将数据变化到-1和1之间,后一种函数的功能是恢复被前者处理后的数据。 premnmx函数的常用格式为: 这个函数的作用是把BP网络输入的数据A和目标的数据B归一化成为An和Bn,同时将返回输入数据A中的最小值mina和最大值maxa,以及目标数据B的最小值minb和最大值maxb。postmnmx函数的常用格式为:这个函数的作用是将前面premnmx函数所归一化后的数据来进行反归一化的处理。另外,MATLAB工具箱中还提供了tramnmx函数,该函数的作用是利用预先计算的最大最小值对数据进行变换。该函数适用于向已经训练好了的网络加入新的输入向量的情形。4.4 BP神经网络进行股市预测的准备 (1) 初始数据的选取为了验证本文提出的基于改进BP算法的股市预测模型的准确性,本篇文章将武汉钢铁的股票数据作为预测对象。选取前280组数据作为网络训练的样本,然后将剩下的40组数据作为网络预测的样本,用来评估本文所建立BP神经网络模型性能的优劣。输入量选取前一天的开盘价、最高价、最低价、每五日的平均价以及收盘价5个变量,输出量选取第二天股票的收盘价。(2) BP神经网络模型的建立首先建立基于改进BP算法的预测模型,选用三层网络结构构成BP网络:输入层、一个隐层和输出层。本文中采用5个输入层节点,3个隐含层节点和1个输出层节点。 初始权值采用Rand函数生成的随机数,激活函数选择的是式(3-5)所示的连续可微的型函数。训练终止条件设置为最大许可误差E0.001或者为训练次数200次。设定学习速率初始值为,设定动量因子的初始值为0.9。4.5 BP网络预测的仿真及结果分析4.5.1原始数据 武钢股份股票价格部分历史数据(共221组):日期开盘最高最低MA1收盘2012-5-112.842.852.812.862.822012-5-142.842.842.792.842.82012-5-152.792.82.762.8162.782012-5-162.772.782.762.8022.762012-5-172.772.82.752.792.792012-5-212.792.792.762.7822.782012-5-222.792.82.772.7822.82012-5-232.792.82.772.7822.782012-5-242.782.82.772.7882.792012-5-252.792.852.782.7922.812012-5-282.822.882.822.812.872012-5-292.882.92.852.8282.892012-5-302.882.882.852.8422.852012-5-312.842.852.822.852.832012-6-12.832.852.82.852.812012-6-42.782.782.752.8262.752012-6-52.762.82.752.82.762012-6-62.772.792.762.7822.762012-6-72.772.792.732.7642.742012-6-82.752.772.732.7522.752012-6-112.752.792.742.7562.772012-6-122.762.772.742.7542.752012-6-132.752.772.732.7542.762012-6-142.762.772.752.7562.752012-6-182.772.782.762.762.772012-6-192.772.782.762.762.772012-6-202.782.782.752.7622.762012-6-212.762.772.712.7562.732012-6-252.772.782.722.7522.732012-6-262.722.722.682.742.712012-6-272.72.722.672.722.672012-6-282.672.692.672.7042.682012-6-292.692.72.662.6962.692012-7-22.72.712.652.6822.662012-7-32.672.682.642.672.652012-7-42.662.672.642.6682.662012-7-52.652.652.622.6582.632012-7-62.642.662.612.652.652012-7-92.642.642.62.6382.62012-7-102.62.622.592.632.612012-7-112.62.632.62.622.612012-7-122.612.622.592.6162.612012-7-132.622.622.62.6082.612012-7-162.612.622.552.6062.592012-7-172.582.592.572.62.582012-7-182.592.622.582.62.612012-7-192.622.632.62.5982.62012-7-202.62.622.592.5982.612012-7-232.62.62.562.5942.572012-7-242.572.612.572.5962.592012-7-252.592.62.572.5882.572012-7-262.572.632.572.592.612012-7-272.62.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论