本书以MATLAB R2016a为平台,通过专业技术与大量典型实例相结合,介绍了各种典型网络的训练过程和实际应用。全书共27个案例,从实用角度出发,详尽地讲述感知器网络、线性神经网络、RBF神经网络、BP神经网络、反馈神经网络及自组织神经网络等内容,扩展介绍神经网络在其他工程领域的实际应用。本书可作为科研人员及工程技术人员的参考用书,也可作为本科生和研究生的学习用书。
全书共27个案例,从实用角度出发,详尽地讲述感知器网络、线性神经网络、RBF神经网络、BP神经网络、反馈神经网络及自组织神经网络等内容,扩展介绍神经网络在其他工程领域的实际应用。
前 言
1943年,心理学家W.S.McCulloch和数理逻辑学家W.Pitts建立了神经网络和数学模型,称为MP模型。他们通过MP模型提出了神经元的形式化数学描述和网络结构方法,证明了单个神经元能执行逻辑功能,从而开创了人工神经网络研究的时代。近年来,人工神经网络正在模拟人类认知的道路上更加深入发展,与模糊系统、遗传算法、进化机制等结合,形成计算智能,成为人工智能的一个重要方向,将在实际应用中得到发展。将信息几何应用于人工神经网络的研究,为人工神经网络的理论研究开辟了新的途径。神经计算机的研究发展很快,已有产品进入市场。光电结合的神经计算机为人工神经网络的发展提供了良好条件。
神经网络是通过对人脑的基本单元神经元的建模和连接,探索模拟人脑神经系统功能的模型,并研制一种具有学习、联想、记忆和模式识别等智能信息处理功能的人工系统。神经网络的一个重要特性是它能够从环境中学习,并把学习的结果分布存储于网络的突触连接中。神经网络的学习是一个过程,在其所处环境的激励下,相继给网络输入一些样本模式,并按照一定的规则(学习算法)调整网络各层的权值矩阵,待网络各层权值都收敛到一定值,学习过程结束,之后就可以用生成的神经网络来对真实数据分类。
神经网络在很多领域中已得到了很好的应用,但其需要研究的方面还很多。其中,具有分布存储、并行处理、自学习、自组织及非线性映射等优点的神经网络与其他技术的结合,以及由此而来的混合方法和混合系统,已经成为一大研究热点。由于其他方法也有它们各自的优点,所以将神经网络与其他方法相结合,取长补短,继而可以获得更好的应用效果。目前,这方面的工作有神经网络与模糊逻辑、专家系统、遗传算法、小波分析、混沌、粗集理论、分形理论、证据理论和灰色系统等的融合。
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图像处理、动画和表达式作图,可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能进行了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时,对一些特殊的可视化要求(例如图形对话等),MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外,新版本的MATLAB还着重在图形用户界面(GUI)的制作上做了很大的改进,可以满足对这方面有特殊要求的用户的需求。
MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。MATLAB在很多领域,如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通信、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。
一种语言之所以能够如此迅速地普及和应用,显示出如此旺盛的生命力,是因为它有着不同其他语言的特点。正如C语言等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作的要求,被称为第四代计算机语言的MATLAB(简称M语言),利用其丰富的函数资源和工具箱资源,使编程人员可以根据不同的需要选择相应的优化函数,而不需要编写烦琐的程序代码。该软件最突出的特点就是简洁、开放式、便捷等,它提供了更为直观、符合人们思维习惯的代码。同时给用户带来最直观、最简洁的程序开发环境。目前的MATLAB可以说是科学技工作者必不可少的工具之一,掌握这一重要工具将使得日常的学习和工作事半功倍。
MATLAB之所以有如此强大的功能在于其还在不断扩大的工具箱的应用,离开了工具箱的应用,MATLAB环境下的操作也仅仅是简单的矩阵运算与作图而已。神经网络工具箱正是在MATLAB环境下所开发出来的众多工具箱之一,它是以人工神经网络理论为基础,用MATLAB语言构造出典型神经网络的激活函数,根据各种典型的修正网络权值的规则,加上网络的训练过程,用MATLAB编写出各种网络权值训练的子程序,网络的设计者可以根据所需去调用工具箱中有关神经网络的设计与训练程序,使自己能够从烦琐的编程中解脱出来,致力于思考问题和解决问题,从而提高效率和解题质量。
本书基于MATLAB R2016a全面讲解MATLAB相关知识,帮助读者尽快掌握MATLAB的应用。本书具有如下特点:
(1)全面细致,循序渐进。本书以MATLAB R2016a为平台,简要、全面、由浅入深地介绍MATLAB软件的特色、使用,再辅以MATLAB在工程中的应用案例,帮助读者尽快掌握用MATLAB进行工程应用分析的技能。
(2)内容新颖,应用典型。本书结合MATLAB解决工程应用中的各种实际问题,详细地讲解MATLAB软件的使用方法与技巧,并通过大量典型的应用例子来实操,在讲解过程中辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中的内容。
(3)轻松易学,上手快速。本书理论与实例相结合,并通过MATLAB的在线帮助、自带实例等内容,使读者轻松掌握所学内容,快速上手,还可以提高快速分析和解决实际问题的能力,从而能够在最短的时间内,以最高的效率解决实际通信系统中遇到的问题。
本书主要由顾艳春编写,参加编写的还有赵书兰、刘志为、栾颖、王宇华、吴茂、方清城、邓奋发、何正风、丁伟雄、李娅、辛焕平、杨文茵、李晓东和张德丰。
本书可以作为广大科研人员、学者、工程技术人员的参考用书,也可以作为广大在校本科生和研究生的学习用书。本书提供案例源代码下载,读者可以登录华信教育资源网(www.hxedu.com.cn)查找本书,免费下载。
由于时间仓促,加之作者水平有限,所以错误和疏漏之处在所难免。在此,诚恳地期望得到各领域的专家和广大读者的批评指正。
编 著 者
顾艳春,男,华南理工计算机应用硕士,中山大学博士,佛山科学技术学院计算机系副主任。发表文章10余篇,承担和参与国家自然科学基金、科技厅项目7项,参与多项横向课题的研究。精通MATLAB,具备丰富实践和写作经验。
目 录
第1章 RBF神经网络的实际应用1
1.1 用于曲线拟合的RBF神经网络1
1.2 径向基网络实现非线性函数回归10
1.3 CRNN网络应用13
1.4 PNN网络应用15
1.5 RBF神经网络的优缺点19
第2章 SOM网络算法分析与应用22
2.1 SOM网络的生物学基础22
2.2 SOM网络的拓扑结构22
2.3 SOM网络的权值调整23
2.4 SOM网络的MATLAB实现26
2.5 SOM网络的应用33
第3章 线性网络的实际应用45
3.1 线性化建模45
3.2 模式分类50
3.3 消噪处理51
3.4 系统辨识54
3.5 系统预测55
第4章 BP网络算法分析与应用61
4.1 BP网络模型61
4.2 BP网络学习算法62
4.2.1 BP网络学习算法62
4.2.2 BP网络学习算法的比较67
4.3 BP神经网络特点68
4.4 BP网络功能68
4.5 BP网络实例分析68
第5章 神经网络在选址与地震预测中的应用78
5.1 配送中心选址78
5.2 地震预报81
5.2.1 问题概述82
5.2.2 网络设计83
5.2.3 网络训练与测试83
5.2.4 网络实现88
第6章 模糊神经网络的算法分析与实现91
6.1 模糊神经网络的形式91
6.2 神经网络和模糊控制结合的优点92
6.3 神经模糊控制器92
6.4 神经模糊控制器的学习算法95
6.5 模糊神经网络MATLAB函数97
6.5.1 模糊神经系统的建模函数97
6.5.2 采用网格分割方式生成模糊推理系统函数102
6.6 MATLAB模糊神经推理系统的图形用户界面103
第7章 BP网络的典型应用107
7.1 数据归一化方法107
7.2 提前终止法109
7.3 BP网络的局限性111
7.4 BP网络典型应用112
7.4.1 用BP网络估计胆固醇含量112
7.4.2 线性神经网络在信号预测中的应用115
第8章 线性神经网络算法分析与实现120
8.1 线性神经网络工具箱函数120
8.1.1 创建函数120
8.1.2 学习函数122
8.1.3 性能函数124
8.2 线性神经网络模型及结构125
8.3 线性神经网络的学习算法与训练126
8.3.1 线性神经网络的学习算法126
8.3.2 线性神经网络的训练128
8.4 线性神经网络的滤波器130
第9章 感知器网络算法分析与实现133
9.1 单层感知器133
9.1.1 单层感知器模型133
9.1.2 单层感知器功能134
9.1.3 单层感知器结构136
9.1.4 单层感知器学习算法137
9.1.5 单层感知器训练138
9.1.6 单层感知器局限性139
9.1.7 单层感知器的MATLAB实现140
9.2 多层感知器147
9.2.1 多层感知器模型147
9.2.2 多层感知器设计方法147
9.2.3 多层感知器的MATLAB实现148
第10章 神经网络工具箱函数分析与应用153
10.1 神经网络仿真函数153
10.2 神经网络训练函数155
10.2.1 train156
10.2.2 trainb函数156
10.3 神经网络学习函数158
10.4 神经网络初始函数161
10.5 神经网络输入函数163
10.6 神经网络的传递函数165
10.7 神经网络求点积函数168
第11章 BM网络与BSB网络算法分析与实现169
11.1 Boltzmann神经网络169
11.1.1 BM网络的基本结构169
11.1.2 BM模型的学习169
11.1.3 BM网络的实现172
11.2 BSB神经网络174
第12章 感知器网络工具箱函数及其应用177
12.1 创建函数177
12.2 显示函数180
12.3 性能函数181
第13章 RBF神经网络算法分析与应用186
13.1 RBF神经网络模型186
13.2 RBF网的数学基础188
13.2.1 内插问题188
13.2.2 正则化网络189
13.3 RBF神经网络的学习算法190
13.3.1 自组织选取中心法190
13.3.2 梯度训练方法191
13.3.3 正交最小二乘(OLS)学习算法192
13.4 其他RBF神经网络193
13.4.1 广义回归神经网络193
13.4.2 泛化回归神经网络194
13.4.3 概率神经网络195
13.5 RBF神经网络MATLAB函数196
13.5.1 创建函数196
13.5.2 权函数199
13.5.3 输入函数200
13.5.4 传递函数201
13.5.5 mse函数201
13.5.6 变换函数202
第14章 Simulink神经网络应用204
14.1 Simulink神经网络仿真模型库204
14.2 Simulink神经网络应用208
第15章 ART网络与CP网络算法分析与应用213
15.1 ART-1型网络213
15.1.1 ART-1型网络结构213
15.1.2 ART-1网络学习过程215
15.1.3 ART-1网络的应用216
15.2 ART-2型网络218
15.2.1 网络结构与运行原理219
15.2.2 网络的数学模型与学习算法220
15.2.3 ART-2型网络在系统辨识中的应用222
15.3 CP神经网络概述223
15.3.1 CP网络学习224
15.3.2 CP网络应用225
第16章 Hopfield网络算法分析与实现231
16.1 Hopfield神经网络231
16.1.1 离散型Hopfield网络231
16.1.2 DHNN的动力学稳定性234
16.1.3 网络权值的学习236
16.1.4 联想记忆功能239
16.2 连续型Hopfield网络240
16.3 Hopfield神经网络的应用242
16.3.1 Hopfield神经网络函数242
16.3.2 Hopfield神经网络的应用245
第17章 LVQ网络算法分析与应用259
17.1 LVQ神经网络的结构259
17.2 LVQ神经网络的学习算法260
17.2.1 LVQ1算法260
17.2.2 LVQ2算法260
17.3 LVQ神经网络的特点261
17.4 LVQ神经网络的MATLAB函数262
17.5 LVQ神经网络的应用264
第18章 自组织网络算法分析与实现269
18.1 竞争学习的概念270
18.2 竞争学习规则271
18.3 竞争学习原理272
18.4 竞争神经网络MATLAB实现275
18.5 竞争型神经网络存在的问题279
第19章 Elman网络算法分析与应用280
19.1 Elman神经网络结构280
19.2 Elman神经网络权值修正的学习算法281
19.3 Elman网络稳定性推导282
19.4 对角递归网络稳定时学习速率的确定283
19.5 Elman神经网络在数据预测中的应用284
第20章 BP网络工具箱函数及其应用288
20.1 创建函数289
20.2 传递函数291
20.3 学习函数293
20.4 训练函数294
20.5 性能函数297
20.6 显示函数298
第21章 神经网络在实际案例中的应用300
21.1 农作物虫情预测300
21.1.1 虫情预测原理300
21.1.2 网络实现301
21.2 人脸识别304
21.2.1 模型建立305
21.2.2 网络实现306
第22章 神经网络工具箱函数分析与应用310
22.1 神经网络的构建函数310
22.2 神经网络的应用函数324
第23章 线性神经网络算法分析与设计330
23.1 线性神经网络结构330
23.2 线性神经网络设计331
23.3 自适应滤波线性神经网络333
23.4 线性神经网络的局限性335
23.5 线性神经网络的MATLAB应用举例336
第24章 神经网络工具箱函数及实例分析342
24.1 传递函数及其导函数342
24.1.1 传递函数342
24.1.2 传递函数的导函数349
24.2 距离函数354
24.3 权值函数及其导函数356
24.3.1 权值函数357
24.3.2 权值函数的导函数358
24.4 结构函数359
24.5 分析函数361
24.6 转换函数362
24.7 绘图函数368
24.8 数据预处理和后处理函数375
第25章 神经网络的工程应用383
25.1 线性神经网络在线性预测中的应用383
25.2 神经模糊控制在洗衣机中的应用385
25.2.1 洗衣机的模糊控制385
25.2.2 洗衣机的神经网络模糊控制器的设计387
25.3 模糊神经网络在配送中心选址中的应用391
25.4 Elman神经网络在信号检测中的应用394
25.5 神经网络在噪声抵消系统中的应用397
25.5.1 自适应噪声抵消原理397
25.5.2 噪声抵消系统的MATLAB仿真399
第26章 神经网络算法分析与工具箱应用402
26.1 网络对象属性404
26.1.1 结构属性404
26.1.2 子对象结构属性408
26.1.3 函数属性411
26.1.4 权值和阈值413
26.1.5 参数属性415
26.1.6 其他属性415
26.2 子对象属性416
26.2.1 输入向量416
26.2.2 网络层417
26.2.3 输出向量422
26.2.4 阈值向量422
26.2.5 输入权值向量424
26.2.6 目标向量427
26.2.7 网络层权值向量428
第27章 自定义函数及其应用432
27.1 初始化函数432
27.2 学习函数435
27.3 仿真函数440
27.3.1 传递函数440
27.3.2 传递函数导数函数443
27.3.3 网络输入函数444
27.3.4 网络输入导函数446
27.3.5 权值函数448
27.3.6 权值导数函数450
27.4 自组织函数452
27.4.1 拓扑函数452
27.4.2 距离函数454
参考文献456