第一范文网 - 专业文章范例文档资料分享平台

2019年整理基于matlab实现BP神经网络模型仿真

来源:用户分享 时间:2025/7/10 0:10:22 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

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

http://www.autoinfo.gov.cn/autoinfo_cn/cszh/gljt/qt/webinfo/2006/05/1246501820021204.htm

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

年份 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 事故次数(次) 346129 412860 616971 754919 773137 667507 567753 450254 378781 327209 265204 238351

二、 问题研究

(一) 研究方向

(1) 通过数据利用BP神经网络模型预测历年全国交通事故次数并与实际值进行比较。 (2) 分析BP神经网络模型改变训练函数再进行仿真与之前结果进行对比。 (3) 从泛化能力和稳定性等方面分析BP神经网络模型的优劣。

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

进行比较。

(二) 相关知识 (1) 人工神经网络

人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

人工神经网络有以下几个特征: (1)非线性 非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性 网络关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。

(2)非局限性 一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。

(3)非常定性 人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。

(4)非凸性 一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。 (2) BP神经网络模型

BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。 (3) 径向基函数网络模型

径向基函数(Radial Basis Function,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),[10 1],{'tansig' 'purelin'},'traingd'); net.trainParam.epochs=50000; net.trainParam.goal=0.00001;

net.trainParam.lr=0.01; %net.trainParam.min_grad=1e-50; net=train(net,pn,tn); t2=sim(net,pn); figure(2);

plot(pn,tn,'r',pn,t2,'b'); legend('期望输出','预测输出')

title('预测输出与实际输出对比','fontsize',12) ylabel('函数输出','fontsize',12) xlabel('样本','fontsize',12) figure(3)

plot(pn,t2,':og'); hold on

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=net.IW{1}; b1=net.b{1}; lw2=net.LW{2}; b2=net.b{2};

仿真结果如下图所示:

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

2019年整理基于matlab实现BP神经网络模型仿真.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c2eion65rb48az813jgo32teb88j4b1005rt_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top