如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
2009年3月哈尔滨金融高等专科学校学报JournalofHarbinSeniorFinanceCollege第1期总第97期BP神经网络预测的MATLAB实现焦淑华,夏,徐海静,刘冰莹1123:在人工神经网络的实际应用中,大多数的人工神经网络模型是采用前馈反向传播网络(Back-Propagation摘要Network,简称BP网络)或它的变化形式。它是前向网络的核心,体现了人工神经网络最精华的部分。近年来MATLAB因其编程效率高,易学易懂,被广泛应用。以旅游需求预测为例,说明MATLAB可以实现BP神经网络的预测。关键词:神经网络;MATLAB;预测、一问题的提出在旅游经济的发展过程中,的确有某种规律性的东西,或者称为模式。这种规律性的东西常常蕴涵于看似杂乱无章的大量历史数据中,因此,要想获得有效的预测,关键在于根据历史数据发现规律。从数学的角度看,就是建立某种映射关系(函数),并进行函数的拟合。神经网络是解决这一问题的最佳工具之一。经过几十年的发展,已经形成了上百种人工神经网络?1974年,P.Werbos在其博士论文中提出了第一个适合多层网络的学习算法,但该算法并未受到足够重视和广泛的应用。直到20世纪80年代中期,DavidRunelhart,GeoffreyHinton和RonaldWilliams,DavidParkr,以及YannnLeCun分别独立发现了BP算法。1986年,美国加利福尼亚的PDP(paralleldistributedprocession)小组发表了《ParallelDistributedProcessing》一书,将该算法应用于神经网络的研究,才使之称为迄今为止最著名的多层网络学习算法―――BP算法。由此算法训练的神经网络,称之为BP神经网络。标准的BP网络是根据W-H学习规则,采用梯度下降算法,对非线性可微分函数进行权值训练的多层网络。由Kolmogorov定理和BP定理可知,对于一个三层BP神经网络,只要隐层节点数足够多,就具有逼近任意复杂的非线性映射的能力。目前,在人工神经网络的实际应用中,大多数的人工神经网络模型是采用前馈反向传播网络(Back-Propagation-Network,简称BP网络)或它的变化形式。它是前向网络的核心,体现了人工神经网络最精华的部分。BP神经网络,即多层前馈式误差反传神经网络,通常〔收稿日期〕2008-10-08注:黑龙江省教育厅2007年度高职高专院校科技术研究项目(课题编号:11525028)的研究成果。(11哈尔滨金融高等专科学校基础部,黑龙江哈尔滨150030;21黑龙江大学信息管理学院,黑龙江哈尔滨150080;31黑龙江科技学院数力系,黑龙江哈尔滨150027)―55―由输入层、输出层和若干隐含层构成:每一层都由若干个节点组成,每一个节点表示一个神经元,上层节点与下层节点之间通过权连接,层与层之间的节点采用全互联的连接方式,每层内节点之间没有联系。以一个三层结构的BP神经网络为例,即含有一个输入层、一个输出层和一个隐含层,其结构如图1:图1二、建立BP神经网络预测模型在进行BP网络预测模型设计时,主要考虑网络的层数和每层中神经元的个数。(一)网络层数BP网络是通过输入层到输出层的计算来完成的。多于一层的隐含层虽然能在速度上提高网络的训练,但是在实际应用中需要较多的训练时间,而训练速度可以用增加隐含层节点个数来实现,因此在应用BP神经网络进行预测时,选取只有一个隐含层的三层BP神经网络就足够了。(二)网络各层中神经元的个数输入、输出节点是与样本紧密相关的,与其应用的领域有关。根据旅游人数的历史数据,确定输入层神经元数为5,即输入变量为连续5年的旅游人数;输出层神经元数为1,即输出变量为第六年的旅游人数。>>nettrainParam.show=500;.>>net=train(net,P,T)如果隐含层神经元数目过少,网络很难识别样本,难以完成训练,并且网络的容错性也会降低;如果数目过多,则会增加网络的迭代次数,从而延长网络的训练时间,同时也会降低网络的泛化能力,导致预测能力下降。在具体设计时,首先根据经验公式初步确定隐含层神经元个数,然后通过对不同神经元数的网络进行训练对比,再最终确定神经元数。通用的隐含层神经元数的确定经验公式有:i=n+m+a其中i为隐含层神经元的个数,n为输入层神经元的个数,m为输出层神经元的个数,a为常数且1<a<10(参见图1)。由此,可以设定隐含层的神经元数为12。三、BP神经网络预测的MATLAB实现(一)数据样本的预处理本文的数据样本来源于《中国旅游统计年鉴》。为了保证数据为同一数量级,首先需要对