基于matlab实现BP神经网络模型仿真.docx

上传人:b****2 文档编号:17342033 上传时间:2023-07-24 格式:DOCX 页数:15 大小:289.56KB
下载 相关 举报
基于matlab实现BP神经网络模型仿真.docx_第1页
第1页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第2页
第2页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第3页
第3页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第4页
第4页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第5页
第5页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第6页
第6页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第7页
第7页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第8页
第8页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第9页
第9页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第10页
第10页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第11页
第11页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第12页
第12页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第13页
第13页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第14页
第14页 / 共15页
基于matlab实现BP神经网络模型仿真.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于matlab实现BP神经网络模型仿真.docx

《基于matlab实现BP神经网络模型仿真.docx》由会员分享,可在线阅读,更多相关《基于matlab实现BP神经网络模型仿真.docx(15页珍藏版)》请在冰点文库上搜索。

基于matlab实现BP神经网络模型仿真.docx

基于matlab实现BP神经网络模型仿真

基于BP神经网络模型及改进模型对全国历年车祸次数预测

一、背景

我国今年来随着经济的发展,汽车需求量不断地增加,所以全国每年的车祸次数也被越来越被关注,本文首先搜集全国历年车祸次数,接着通过这些数据利用BP神经网络模型和改进的径向基函数网络进行预测,最后根据预测结果,分析模型的优劣,从而达到深刻理解BP神经网络和径向基函数网络的原理及应用。

所用到的数据即全国历年车祸次数来自中国汽车工业信息网,网址如下:

制作历年全国道路交通事故统计表如下所示:

年份

事故次数(次)

1998

346129

1999

412860

2000

616971

2001

754919

2002

773137

2003

667507

2004

567753

2005

450254

2006

 378781

2007

327209

2008

265204

2009

238351

 

二、问题研究

(一)研究方向

(1)通过数据利用BP神经网络模型预测历年全国交通事故次数并与实际值进行比较。

(2)分析BP神经网络模型改变训练函数再进行仿真与之前结果进行对比。

(3)从泛化能力和稳定性等方面分析BP神经网络模型的优劣。

(4)利用径向基函数网络模型进行仿真,得到结果与采用BP神经网络模型得到的结果进行比较。

(二)相关知识

(1)人工神经网络

人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。

在工程与学术界也常直接简称为神经网络或类神经网络。

神经网络是一种运算模型,由大量的节点(或称神经元)和之间相互联接构成。

每个节点代表一种特定的输出函数,称为激励函数(activationfunction)。

每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。

网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。

而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

人工神经网络有以下几个特征:

(1)非线性关系是自然界的普遍特性。

大脑的智慧就是一种非线性现象。

人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性

网络关系。

具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

 

(2)非局限性一个通常由多个神经元广泛连接而成。

一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。

通过单元之间的大量连接模拟大脑的非局限性。

联想是非局限性的典型例子。

 (3)非常定性人工神经网络具有自适应、、自学习能力。

神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。

经常采用迭代过程描写动力系统的演化过程。

(4)非凸性一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。

例如能量函数,它的极值相应于系统比较稳定的状态。

非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。

(2)BP神经网络模型

BP(BackPropagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的之一。

BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。

它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。

BP神经网络模型拓扑结构包括输入层(input)、隐层(hidelayer)和输出层(outputlayer)。

(3)径向基函数网络模型

径向基函数(RadialBasisFunction,RBF)神经网络由三层组成,输入层节点只传递输入信号到隐层,隐层节点由像高斯函数那样的辐射状作用函数构成,而输出层节点通常是简单的线性函数。

隐层节点中的作用函数(基函数)对输入信号将在局部产生响应,也就是说,当输入信号靠近基函数的中央范围时,隐层节点将产生较大的输出,由此看出这种网络具有局部逼近能力,所以径向基函数网络也称为局部感知场网络。

三、建模

第一步:

根据数据选定BP神经网络的结构,本文中所用到的BP神经网络模型网络层数为2,隐层神经元数目为10,选择隐层和输出层神经元函数分别为tansig函数和purelin函数,网络训练方法分别用了梯度下降法、有动量的梯度下降法和有自适应lr的梯度下降法。

第二步:

对输入数据和输出数据进行归一化处理;

第三步:

有函数newff()构造神经网络。

第四步:

在对神经网络训练之前,首先设定相关参数,例如最大训练次数、训练要求精度、学习率等。

第五步:

对BP神经网络进行训练。

第六步:

重复训练直到满足要求为止。

第七步:

保存训练好的神经网络,并用训练好的神经网络进行预测。

第八步:

将预测值和实际输出值进行对比,分析模型的稳定性。

 

四、仿真

x=[];

y=[];

p=x';t=y';

[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%数据归一

figure

(1);

plot(pn,tn,'-');

title('实际输入与实际输出图','fontsize',12)

ylabel('实际输出','fontsize',12)

xlabel('样本','fontsize',12)

net=newff(minmax(pn),[101],{'tansig''purelin'},'traingd');

'r',pn,t2,'b');

legend('期望输出','预测输出')

title('预测输出与实际输出对比','fontsize',12)

ylabel('函数输出','fontsize',12)

xlabel('样本','fontsize',12)

figure(3)

plot(pn,t2,':

og');

holdon

plot(pn,tn,'-*');

legend('预测输出','期望输出')

title('BP网络预测输出','fontsize',12)

ylabel('函数输出','fontsize',12)

xlabel('样本','fontsize',12)

error=t2-tn;

figure(4)

plot(error,'-*')

title('BP网络预测误差','fontsize',12)

ylabel('误差','fontsize',12)

xlabel('样本','fontsize',12)

figure(5)

plot((tn-t2)./t2,'-*');

title('神经网络预测误差百分比')

errorsum=sum(abs(error))

%输出训练后的权值和阈值

iw1={1};

b1={1};

lw2={2};

b2={2};

 

仿真结果如下图所示:

(1)模型训练方法为梯度下降法,函数为traingd

 

 

神经网络的第一层的权重为:

 

14.

 

神经网络第一层的偏置为:

 

神经网络的第二层的权重为:

神经网络第而层的偏置为:

 

(2)模型训练方法为有动量的梯度下降法,函数为traingdm

 

(3)模型训练方法为有自适应lr的梯度下降法,函数为traingda

五、评价

(1)初始值的影响

本文建立BP神经网络模型时用的是newff()函数,由于newff()的随意性,所以基本上每一次的训练结果都是不同的。

前馈型神经网络在训练之前必须要对权值和阈值进行初始化,newff()可以自动完成这一过程,但是,权值和阈值的初始化时随机的,这里就不详细研究了。

(2)训练函数的影响

从上文所给的结果图可以看出,训练函数对模型训练的影响是显著的,网络训练方法分别用了梯度下降法、有动量的梯度下降法和有自适应lr的梯度下降法,可以看到用梯度下降法要训练24961步才能达到要求的训练精度,而使用有动量的梯度下降法和有自适应lr的梯度下降法分别只需要11199步和830步。

大幅度的缩减了训练次数,但得到的训练过的模型一样精准。

(3)稳定性

BP神经网络模型有一下几点不足:

首先,由于学习速率是固定的,因此网络的收敛速度慢,需要较长的训练时间。

对于一些复杂问题,BP算法需要的训练时间可能非常长,这主要是由于学习速率太小造成的,可采用变化的学习速率或自适应的学习速率加以改进。

  其次,BP算法可以使权值收敛到某个值,但并不保证其为误差平面的全局最小值,这是因为采用梯度下降法可能产生一个局部最小值。

对于这个问题,可以采用附加动量法来解决。

  再次,网络隐含层的层数和单元数的选择尚无理论上的指导,一般是根据经验或者通过反复实验确定。

因此,网络往往存在很大的冗余性,在一定程度上也增加了网络学习的负担。

  最后,网络的学习和记忆具有不稳定性。

也就是说,如果增加了学习样本,训练好的网络就需要从头开始训练,对于以前的权值和阈值是没有记忆的。

但是可以将预测、分类或聚类做的比较好的保存。

(4)泛化能力

BP神经网络模型的泛化能力很弱,而且学习和记忆具有不稳定性,所以在实际的应用中,原始的BP算法很难胜任。

本文最后给出径向基函数网络的仿真结果及源代码,并与BP神经网络模型进行比较。

径向基函数网络的仿真matlab源代码如下:

clear

clc

x=[];%输入

y=[];%输出

p=x';t=y';

net=newrb(p,t);

Y=sim(net,p);

figure

(1)

plot(p,Y,':

og');

holdon

plot(p,t,'-*');

legend('预测输出','期望输出')

title('径向基函数网络输出','fontsize',12)

ylabel('函数输出','fontsize',12)

xlabel('样本','fontsize',12)

error=Y-t;

figure

(2)

plot(error,'-*')

title('径向基函数网络预测误差','fontsize',12)

ylabel('误差','fontsize',12)

xlabel('样本','fontsize',12)

结果如下图所示:

从上图可以看出用newrb()函数建立径向基函数网络模型进行仿真也得到了很好的结果,并且该模型比BP神经网络模型更简单,而且需要设定的参数更少。

稳定性也比BP模型好很多。

最后,用newrb()函数建立径向基函数网络模型预测2010年全国车祸次数,得到结果为:

304560次。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2