神经网络 – 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)


相关推荐

  • 二叉树的五大性质及证明「建议收藏」

    二叉树的五大性质及证明「建议收藏」二叉树(BinaryTree)定义:一棵二叉树是结点的一个有限集合,该集合或者为空,或者是由一个根结点加上两棵分别称为左子树和右子树的、互不相交的二叉树组成。特点:每个结点至多只有两棵子树(二叉树中不存在度大于2的结点)五种形态: 1.性质1性质1 在二叉树的第i层至多有2^(i-1)个结点。(i>=1) [用数学归纳法证明]  …

  • Go Int转string几种方式性能测试[通俗易懂]

    Go Int转string几种方式性能测试[通俗易懂]Go语言内置int转string至少有3种方式:fmt.Sprintf("%d",n)strconv.Itoa(n)strconv.FormatInt(n,10)下面针对这3中方式的性能做一下简单的测试:packagegotestimport( "fmt" "strconv" "testing")funcBenchmarkSprintf(b*testing.B){ n…

    2022年10月21日
  • ideaIU-2022.01.13激活码-激活码分享

    (ideaIU-2022.01.13激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html747EFQ8BIF-eyJsa…

  • python执行测试用例_测试用例是由什么组成

    python执行测试用例_测试用例是由什么组成前言通常我们认为每个测试用例都是相互独立的,因此需要保证测试结果不依赖于测试顺序,以不同的顺序运行测试用例,可以得到相同的结果。pytest默认运行用例的顺序是按模块和用例命名的ASCII编码

  • C# WinForm界面美化插件简介

    C# WinForm界面美化插件简介 美化C#的WIN程序界面可以考虑用第三方控件,比如DotNetBar或DevExpress。但是它们都是收费的,虽然有破解版。。但是使用时还是需要权衡的。另外,用第三方控件会让运行速度下降。 1.      DevExpress收费软件 2.      Rad 3.      Irisskin2在项目中添加DLL文件,在程序中控制显示即可。使

  • 熊猫烧香病毒简析[通俗易懂]

    熊猫烧香病毒简析[通俗易懂]熊猫烧香从2007年1月肆虐网络到现在。已经过了查不多4个年头了。病毒的作者李俊现在也从监狱里被放了出来。在当时熊猫烧香确实给大家一个意外,它采用了一种新的方式对计算机的程序和系统造成了很严重的破坏。 其实我的这篇文章也不叫什么分析,只是说简单的简析。我只是简单的对病毒的机

    2022年10月28日

发表回复

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

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