神经网络 – BP神经网络与RBF神经网络模型解决实际问题 – (Matlab建模)

神经网络 – BP神经网络与RBF神经网络模型解决实际问题 – (Matlab建模)目录神经网络模型简述实例:交通运输能力预测设计MATLAB程序及仿真结果由于货物运输、地方经济及企业发展的紧密联系,因此作为反映货物运输需求的一项重要指标,货运量预测研究和分析具有较强的实际意义。常用的货运量预测方法包括时间序列方法、移动平滑法、指数平滑和随机时间序列方法、相关(回归)分析法、灰色预测方法和作为多种方法综合的组合预测方法等.这些方法大都集中在对…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

目录

神经网络模型简述

实例:交通运输能力预测设计

MATLAB程序及仿真结果


    由于货物运输、地方经济及企业发展的紧密联系,因此作为反映货物运输需求的一项重要指标, 货运量预测研究和分析具有较强的实际意义。

    常用的货运量预测方法包括时间序列方法、移动平滑法、指数平滑和随机时间序列方法、相关(回归)分析法、灰色预测方法和作为多种方法综合的组合预测方法等.这些方法大都集中在对其因果关系回归模型和时间序列模型的分析上, 所建立的模型不能全面和本质地反映所预测动态数据的内在结构和复杂特性, 从而丢失了信息量.人工神经网络作为一种并行的计算模型, 具有传统建模方法所不具备的很多优点, 有很好的非线性映射能力, 对被建模对象的经验知识要求不多, 一般不必事先知道有关被建模对象的结参数和动作特性等方面的知识, 只需给出对象的输入和输出数据, 通过网络本身的学习功能就可以达到输入与输出的映射关系.货运量预测可以利用BP 网络模型和径向基网络模型来实现。

神经网络模型简述

BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,其激励函数是一般是S函数(即sigmoid函数)。从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,BP算法就是以网络误差平方为目标函数、采用梯度下降法来计算目标函数的最小值。

径向基神经网络(RBF神经网络)是一种性能良好的前向网络,其激励函数是一般是高斯函数。具有最佳逼近、训练简洁、学习收敛速度快以及克服局部最小值问题的性能,目前已经证明RBF网络能够以任意精度逼近任意连续的函数,且具有全局逼近能力,从根本上解决了BP网络的局部最优问题,而且拓扑结构紧凑,结构参数可实现分离学习,收敛速度快。因此它已经被广泛应用于模式识别、非线性控制和图像处理等领域。

神经网络 - BP神经网络与RBF神经网络模型解决实际问题 - (Matlab建模)

实例:交通运输能力预测设计

    输入的神经元可以根据需要求解的问题和数据表示方式确定。根据对关于货运量影响因素的分析,这里分别取国内生产总值GDP 、工业总产值、铁路运输路线长度、复线里程比重、公路运输线路长度、等级公路比重、铁路货车数量和民用载货车辆数量等8 项指标作为货运量的影响因子, 将它们作为网络的输入.以货运总量、铁轮货运量和公路货运量作为网络输出.由此来构建BP 网络和RBF网络。利用某7 年的历史统计数据作为网络的训练样本, 以后续2 年的历史统计数据作为网络的外推测试样本.输入样本如表1 所示, 目标样本如表2 所示.

表 1  输入的样本数据

GDP

工业

总产

铁路

运输

长度

复线

比重

公路

运输

长度

等级

公路

比重

铁路

货运

数量

民用

载货

车辆

58478

135185

5.30

0.23

16.2

0.21

1015.3

586.4

67884

152369

5.30

0.27

18.5

0.26

1107.6

577

74462

182563

6.21

0.25

21.4

0.28

1214.6

601.2

78345

201587

6.32

0.26

25.7

0.29

1336.5

626.8

82067

225689

6.32

0.26

30.2

0.31

1443.5

675.96

89403

240568

6.47

0.28

34.6

0.33

1516.2

726.31

95933

263856

6.48

0.28

39.5

0.36

1642.6

764.25

104790

285697

6.70

0.30

42.0

0.39

1763.1

852.21

116694

308765

6.70

0.30

46.3

0.41

1867.1

878.23

表 2  目标样本

货运量

铁路货运量

公路货运量

102467

52266

46153

124486

60728

56246

148691

69355

67346

162663

79757

78267

186695

91757

95647

205764

99736

98756

226697

109965

102765

245716

120537

111258

263683

130465

120412

    由于输入的每组样本数据包含8 项, 所以神经网络的输入层设置8个神经元。每组输入样本对应的目标样本包含3 项,所以输出层设置3 个神经元。

    

关于隐含层的设计:

    一般来讲, 一个三层的神经网络可以完成任意n 维输入到m 维输出的映射.但实际上, 隐层的层数和单元数的选择尚无理论上的指导, 一般是根据经验或者反复实验确定.因此, 网络往往存在很大的冗余性, 一定程度上增加了网络学习的负担.隐单元数目太多会导致学习时间过长、误差不一定最佳, 也会导致容错性差、不能识别以前没有看到的样本, 因此一定存在一个最佳的隐单元数.文中建立的BP神经网络模型中, 隐层神经元个数介于5-17.通过训练结果中误差的大小最终确定隐层中神经元的个数为14 .而RBF神经网络采用正规化网络模型,隐单元的个数与训练样本的个数相同,即7个.

MATLAB程序及仿真结果

BP网络程序:

p=[58478 135185 5.30 0.23 16.2 0.21 1015.3 586.4;
67884 152369 5.30 0.27 18.5 0.26 1107.6 577;
74462 182563 6.21 0.25 21.4 0.28 1214.6 601.2;
78345 201587 6.32 0.26 25.7 0.29 1336.5 626.8;
82067 225689 6.32 0.26 30.2 0.31 1443.5 675.96;
89403 240568 6.47 0.28 34.6 0.33 1516.2 726.31;
95933 263856 6.48 0.28 39.5 0.36 1642.6 764.25]';
t=[102467 52266 46153;124486 60728 56246;
148691 69355 67346;162663 79757 78267;
186695 91757 95647;205764 99736 98756;
226697 109965 102765]';
t1=clock;#对应于测试样本的目标输出
TF1 = 'tansig';TF2 = 'logsig'; 
net=newff(p,t,[14,3],{TF1 TF2 },'trainlm');
Net.trainParam.show=500;
net.trainParam.epochs=1000;
net.trainParam.goal=0.0001;
net=train(net,p,t);
date=etime(clock,t1)
y=sim(net,p);
p1=[104790 285697 6.70 0.30 42.0 0.39 1763.1 852.21;116694 308765 6.70 0.30 46.3 0.41 1867.1 878.23]';#测试样本
y1=sim(net,p1)#测试样本p1对应的BP网络实际输出

Jetbrains全家桶1年46,售后保障稳定

BP网络程序运行结果:

神经网络 - BP神经网络与RBF神经网络模型解决实际问题 - (Matlab建模)神经网络 - BP神经网络与RBF神经网络模型解决实际问题 - (Matlab建模)

可以看出, 网络在训练18次(Epoch)后就收敛于目标函数.当带入2 组测试样本P1后, 网络的实际输出为:

y1 =1.0e+05 *
    2.2598    2.2802
    1.1027    1.1147
    1.0390    1.0464
耗时:date =0.6080

RBF网络程序:

p=[58478 135185 5.30 0.23 16.2 0.21 1015.3 586.4;
67884 152369 5.30 0.27 18.5 0.26 1107.6 577;
74462 182563 6.21 0.25 21.4 0.28 1214.6 601.2;
78345 201587 6.32 0.26 25.7 0.29 1336.5 626.8;
82067 225689 6.32 0.26 30.2 0.31 1443.5 675.96;
89403 240568 6.47 0.28 34.6 0.33 1516.2 726.31;
95933 263856 6.48 0.28 39.5 0.36 1642.6 764.25]';
t=[102467 52266 46153;
124486 60728 56246;
148691 69355 67346;
162663 79757 78267;
186695 91757 95647;
205764 99736 98756;
226697 109965 102765]';
t2=clock;
net=newrb(p,t);
datet=etime(clock,t2)
p1=[104790 285697 6.70 0.30 42.0 0.39 1763.1 852.21;
116694 308765 6.70 0.30 46.3 0.41 1867.1 878.23]';
y1=sim(net,p1)

RBF网络程序执行结果:

y1 =1.0e+05 *
    2.2670    2.2670
    1.0996    1.0996
    1.0277    1.0277
耗时:date = 0.0780

由于训练样本容量比较小,只有7 组数据, 所以预测精度不是很高.考虑到这些因素, 这里得到的预测结果还是可以接受的。

但从耗时来看,RBF网络的耗时远远小于BP网络,随着样本数据量加大,两者在耗时上的差距会越来越明显。

RBF网络的优点:
①  它具有唯一最佳逼近的特性,且无局部极小问题存在。
②  RBF神经网络具有较强的输入和输出映射功能,并且理论证明在前向网络中RBF网络是完成映射功能的最优网络。
③  网络连接权值与输出呈线性关系。
④  分类能力好。
⑤  学习过程收敛速度快。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/222951.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 2022年计算机考研过线就能上的学校[通俗易懂]

    2022年计算机考研过线就能上的学校[通俗易懂]部分考研同学本科是双非计算机类专业,基础能力一般,编程能力较弱,那么对于这类考生,主要还是以求稳为主,选择一个分数略低,复试较简单的学校,上岸几率就会加大。那么2022年计算机考研过线上岸率高的院校有哪些呢?

  • 完全卸载Oracle方法(超详细)

    完全卸载Oracle方法(超详细)Step0:进入服务找到Oracle开头的服务将这些服务全部停止Step1.点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击UniversalInstallerStep2.点击之后稍等一会然后会进入进入下图界面,点击卸载产品Step3.选中要删除的Oracle产品,然后点击删除Step4.进入下图所示的目…

  • 悲观锁和乐观锁的使用[通俗易懂]

    悲观锁和乐观锁的使用[通俗易懂]1、悲观锁(PessimisticLock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。最常用的就是select..forupdate,它是一种行锁,会把select出来的结果行锁住,在本

  • 颜色代码对应表「建议收藏」

    颜色代码对应表「建议收藏」颜色代码表http://www.knowsky.com/tools/advancedColorPicker.swfwidth=900height=500先用鼠标左键在左边大的方框内移动获取颜色(黑色

  • vscode设置终端_vscode 关联PDF

    vscode设置终端_vscode 关联PDFhttps://blog.csdn.net/qq_36743482/article/details/103487025

  • awk 字符串替换 gsub

    awk 字符串替换 gsubgsub(r,s)在整个$0中用s替代rgsub(r,s,t)在整个t中用s替代rawk-F”,”‘{str=gsub(/\t*|*$/,””,$3);ret=$1″,”$2″,”$3″,”NR;printret}’去除第三个字段的空格与制表符awk-F”\t”‘{if($3==”吉林”){gsub($3,”吉林省”,$3);pr

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号