神经网络实现非线性系统设计.docx
《神经网络实现非线性系统设计.docx》由会员分享,可在线阅读,更多相关《神经网络实现非线性系统设计.docx(29页珍藏版)》请在冰豆网上搜索。
神经网络实现非线性系统设计
毕业设计(论文)
中文题目
神经网络实现非线性系统设计
英文题目
NeuralNetworkNonlinearSystem
院系:
年级专业:
姓名:
学号:
指导教师:
职称:
2016年月日
【摘要】神经网络具有极强的非线性及自适应自学习的特性,常被用来模拟判断、拟合和控制等智能行为,成功渗透了几乎所有的工程应用领域,是一个在人工智能方向迅速发展的具有重大研究意义的前沿课题。
本文前两章主要介绍了神经网络的发展背景和研究现状,还有BP网络的结构原理及相关功能。
然后,对如何利用GUI工具和神经网络原理设计非线性系统的基本流程进行了详细的阐述。
最后,通过利用Matlab软件进行编程,以及是通过对BP神经网络算法及函数的运用,研究其在函数逼近和数据拟合方面的应用,并分析了相关参数对运行结果的影响。
【关键词】BP网络,GUI,非线性系统
【ABSTRACT】Neuralnetworkhasastrongnonlinearandadaptiveself-organizingproperties,oftenusedtosimulatethebehaviorofintelligentdecision-making,cognitivecontrol,andthesuccessfulpenetrationofalmostallengineeringapplications,isarapiddevelopmentinthedirectionofartificialintelligenceleadingsubjectofgreatresearchsignificance.
Thefirsttwochaptersdescribesthebackgroundandcurrentdevelopmentissues,aswellastheprincipleofBPnetworkstructureandrelatedfunctions.ThendescribeshowtousetheGUItoolsandneuralnetworktheoryofnonlinearsystemsdesignbasicflow.Finally,theuseofMatlabprogrammingandBPneuralnetworkalgorithmfunctionandstudyitsapplicationintermsoffunctionapproximationanddatafitting,andanalyzestheinfluenceofrelevantparametersontheresultsofrunning.
【keywords】BPnetwork,GUI,NonlinearSystem
1.绪论
人工神经网络(artificialneuralnetwork,ANN)是由很多的简易的神经元进行复杂的相互之间的连接而构成的一个繁杂的网络系统,它是人脑的基本的特征功能它通过模拟人脑的基本特性和信息处理方式,形成一个由大量称为神经元的简单处理单元构成的自适应非线性动态系统[1]。
近些年来,神经网络在模拟决策和认知的方面越深入的发展,成为人工智能方向一个备受青睐的前沿课题。
其具有适应性的简易的基本单元构成的互接的网络,它能模拟人脑神经系统对现实世界物体做出的各种反应。
简单来说,它是一种模拟人脑思维的方式,其特点在于可以将分布式的存储里面的信息进行并行协同处理。
由于神经元的不同,单个神经元和多个神经元的构成网络效果也是不一样的,单个神经元功能有限,构成的神经网络也是较为简单的网络。
但是多个神经元所构成的网络就比较丰富了,能实现的功能行为也是多样的。
它有着强大的非线性建模能力、自组织和自学习能力、可塑造能力、并行分布处理方式及良好的鲁棒性和容错性等特点,被广泛应用于科研与工程中,所以在很多领域比如模式识别,组合优化,预测等被科学家广泛的应用。
1.1神经网络的发展历程
神经网络从二十世纪的诞生到今天已经快一个世纪了,头尾经过有了3个阶段:
1)19世纪90年代-20世纪60年代:
研究的兴起
自1890年关于人脑结构与功能的研究专著拉开神经网络研究的序幕,到20世纪60年代为止,M-P模型、感知器模型和自适应线性网络等多种网络模型及理论都为神经网络的研究奠定了基础。
2)20世纪60年代-20世纪70年代:
低潮的来临
时间到了1969年,人们对感应器进行思考,发现了其存在较大的缺陷以及不足,例如简单的线性感知器不可能实现“异或”的逻辑关系,再加上计算机发展进去全盛时期,因而很多研究人员把目光移向了人工智能,神经网络发展逐渐的走向了萧条。
但是,很多的科学家还是在对这方面的研究中投入了大量的经历,不愿意放弃对其进行的研究。
其中,Grossberg和他夫人就对自适应的共振理论给予提出,并进行了相关的研究;Anderson提出了交互存储器等。
正是拥有这些具有重大价值的科学研究成果,才推动了神经网络的复兴与再发展迈出巨大的一步。
3)20世纪80年代-90年代:
复兴与再发展
伴随着科学的迅速发展,各个科学都取得巨大的进步,与此同时建立在多个复杂学科交叉的神经网络也开始蓬勃发展。
随着各种资源和人力的投入,科学家逐渐意识到神经网络的巨大潜力。
JohnHopfield提出了具有开拓性的Hopfield模型,但是寻求全局最优解的还需深入学习。
1.2神经网络的研究内容和局限性
1.2.1神经网络的研究内容
研究内容包含四个部分[4]:
(1)生物原型研究:
探索人脑结构和神经细胞的功能机制,进行神经系统、生物学、脑神经学、心理学、动物解剖学、神经科学、病理学和其余的生物学的神经系统的专研。
(2)理论模型的建立:
根据生物原型和基础理论的研究成果,寻求建立功能更全面、性能更强大的各类神经网络的结构、数据、仿真等。
(3)虚拟模型和算法研究:
针对要探索的题目来建立相应的理论模型,以实现智能仿真或利用硬件建立模型,或者对所应用的向量算法的探索。
这一系列的操作就是为了探索技术模型。
(4)针对神经网络研发的应用系统:
在理论基础上建立知识工程,完成神经网络的软件模拟和硬件实现,构成相应的应用程序,比如,利用需要的信号或者模式解决问题、改良并排列筛选等。
1.2.2神经网络研究的局限性
相关研究发展迅速但也存在局限性。
当前存在的问题是受限于脑科学的现有成果,对人脑思维和记忆机制及对生物神经网络的模拟程度不够,尚未建立起成熟完整的理论体系,智能水平也不够高,无法很好的满足许多应用方面的要求。
面对随时变化的实验目标,纷繁复杂的应用难题,花费了巨大的精力和资源,编制一些特定的程序、软件求解。
但因缺乏统一的理论指导,这些软件往往带有经验性质不具备通用性,并且在软件设计、实际运行等诸多方面存在不小的缺陷。
1.3神经网络的应用
神经网络理论利用自己独有的组成部分和解决问题的方法,在人工智能、复杂控制、模式处理、机电工程、医疗专业、银行证券等领域具有很大的使用空间[8]。
主要应用在以下领域:
(1)模式处理。
成功应用于图形、符号、手写体及语音辨识,检测图像的
形状,复制和压缩处理等图像。
(2)优化组合。
工业控制方面,比如工业生产控制、机械控制、电气控制
和变结构优化控制等。
(3)机电工程。
汽车系统的方案优化、河川径流的预测、水资源的规划、地震预报、声纳信号的跟踪和分析等。
(4)医疗专业。
对医学设备检测出的数据进行智能判断,综合得出诊断意见。
(5)银行证券。
能对商品价格、股票价格和企业可信度等进行短期预测,完成金融风险分析评估。
1.4神经网络的主要特征
神经网络的下列特征是非常重要的
(1)并行分布处理
数据系统的数学建模一直被困扰的一个重要问题就是数据信息量太过庞大,以此建立一个高效迅速的数据处理预测模型非常重要。
由于人工神经网络有重要的网络化结果,所以将不同的数据散布化是其中的一大特点,只有通过这样的多线程分布式并行处理才能够快熟高效的将庞大规模的大量历史数据进行巡逻分析,一起得到一个合理的神经网络模型。
(2)非线性映射
前文已述,智能建模方法相较于传统建模方法的最重要的优点其实是具备很强大非线性逼近能力,而现实中的工程难题绝大多数都是非线性的,因此人工神经网络可以很轻松的解决非线性的映射难题,也能够最大程度的逼近现实中的梳理关系,人工神经网络打破了传统的建立在线性关系上的机器的限制,使人类的处理信息和思考方式有了极大的提升。
(3)通过训练进行学习
神经网络的网络化结构是建立在一个个单个的神经元基础上的,而建立这些单一的神经元之间又是通过权重进行连接的,而建立和确定这些权重的就是通过历史数据训练得到的。
由于神经网络神经元个数的庞大以及连接方式的问题,使得神经网络具备了重要的处理大量历史信息的功能,与此同时,即便是输入不完整的或者非正确的信息,也能够通过大量数据的学习来进行纠错和修正。
(4)适应与集成
神经网络具有大量的处理不确定性信息的能力,这也就保障了输入数据在不完整或者是缺失的情况下,神经网络依旧可以根据现有的条件来得到最近似逼近的模型。
2神经网络结构及BP神经网络
2.1神经元与网络结构
神经网络的结构取决于它的基本处理单元和互连方法。
2.1.1人工神经元
神经网络的信息是由一个个单独的类似生物的神经元作为基本单位进行处理的,每一个神经网络的神经元都是一个信息汇集处理和中转单位。
图2.2是一种三个输入的结构模型。
图2.2人工神经元结构模型
如果神经元j的变量有多个xi(i=1,2,…,m)变量输入和一个yj变量输出时,这几个变量的关系表达式为:
图2.3输入-输出关系式
其中常量θj是变量j的临界值,Wij是变量i到j的连接系数,f()为神经元的活化函数。
2.1.2人工神经网络的构成
神经网络是通过一个一个的小神经元利用多种多样的连接方式构成的一个信息处理网络,所以不同的神经元连接在一起它们的处理信息能力也是不同的,不同的连接方式决定了神经网络功能的大小和种类,还控制着神经网络的信息整理功能。
神经网络模型可分为以下几种:
1)前向网络
最开始使用的神经网络连接结构,神经元根据输入层,中介层和输出层依次排列,形成了网络化的结构,输入信息又通过输入层进入人工神经网络,经过中间层,从输出层得到最终输出。
图2.4前向网络结构
2)从输出到输入有反馈的前向网络
输出层通过对输入层的信息之间的反馈,这种类型的网络的作用是保存模式的序列,例如回归反向传播网络。
图2.5有反馈的前向网络结构
3)层内互连的前向网络结构
每层神经元内部相互连接结合的前向网络。
神经元之间相互作用,控制层内其他神经元的状态或者将网络分组以实现其他类型的前向网络不能完成的功能。
图2.6有相互结合的前向网络结构
2.2BP网络模型及其算法原理
2.2.1BP神经网络定义
BP神经网络(又叫做反向传播网络)是一种根据误差反向传播算法训练的多层前馈神经网络。
输入层、中间层、输出层构成了整个神经网络的模型结构,其中中间层能够增加变成多层构造。
每一层都是通过神经元相互连接,位于相同一层的神经元没有联系,网络的传递按照导师方法来实行。
2.2.2BP网络模型及其算法框图
BP网络能够实现输入与输出的非线性映射关系,其算法模型如图2.8所示。
图2.8BP算法前馈网络模型
其中
是输入向量;
是隐层输出向量;
是输出层输出向量;
是输入-隐层的权值矩阵;
是隐层-输出的权值矩阵;
本文所采用的BP神经网络算法,基本结构和前文所述的前向结构相同,都包含有输入层,中间层和输出层,输入信号和输入信息经过数据的预处理层进入人工神经网络,经过中间层的激励函数的处理,由输出层输出最终结果。
2.3BP神经网络的主要功能
BP神经网络是前馈网络的核心,以其强大的映射和学习适应能力成为目前应用最广泛的神经网络模型之一。
BP网络主要用于下述方面[14]:
(1)函数逼近:
通过大量历史数据训练网络与目标函数近似;
(2)模式识别和分类:
利用已知输入和待定输出找出之间关系;把数据信息按定义的适当方式进行分类;
(3)数据压缩:
减少数据矢量维数以提高传存效率。
3BP神经网络在非线性系统中的应用
3.1神经网络GUI实现非线性系统设计
美国的mathworks软件公司出品的Matlab具有GUI(GraphicalUserInterfaces)功能,能够让客户利用计算机的操作设计和模仿神经网络,借此完成针对神经网络的非线性程序设计。
3.1.1GUI设计工具的菜单方式
在Matlab的主界面中,选择File菜单中的New菜单选项,再选择其中的GUI命令(如图),就会显示GUI的设计模板。
图3.1GUI
Matlab为用户设计了4种GUI模式以供选择使用(如图3.1),分别是:
(1)
;
(2)
;
(3)
;
(4)
。
图3.4GUIwithAxesandMenu
图3.5ModalQuestionDialog
3.1.2图形用户界面设计窗口
打开GUI设计窗口,选择好设计模式,开始进行图形编辑设计。
图3.6GUI设计窗口
3.2GUI控制系统界面
3.2.1GUI控制系统界面设计
(1)运行程序MATLAB,先在程序中输入字符“guide”,弹出一个窗口,选择whilegui,在单击ok,会进入MATLABGUI。
单击“panel”,然后双击相应的控件,如图1。
(2)更改控件title的属性变成“1”、再建立一个非线性函数,然后再把fontsize的属性更改成“8”,如图2,3。
(3)增加statictext,edittext和pushbutton组件,更改好各个控件的属性参数如图4。
图4添加各控件后图
(4)同理,将软件需要的其他控件一次添加,并修改好各控件的属性。
添加,修改后如图5。
图5添加及修改各控件后的图
(5)点击右键每一个控件,选取viewcallbacks目录下的callback,输入各部分功能实现代码。
3.2.2运行效果
(1)代码编写完成,编译无误后,点击运行图标,如图6。
图6运行按钮
(2)运行后的效果图,如图7。
图7运行效果图
4BP网络在非线性函数中的应用
4.1BP网络在函数逼近中的应用
4.1.1问题的提出
反向传播网络有很强的非线性映射功能,主要进行对函数拟合、函数逼近、数据预测等等。
要求制作一个反向传播网络,逼近
,然后得到一个逼近BP网络的非线性函数。
其中,先后利用1,2,4的频率参数来进行模拟,利用调节参数变量(例如隐藏层节点数量等等)得到信号的频率与隐藏层节点之间,隐藏层节点与函数逼近能力之间的关系。
BP网络由的构成是两种:
正向和反向计算结合。
在正向的计算中,首先输入的函数取值传到隐层的节点,经过中间我们自己设定的传递函数,再把所得到的信息通过隐层的节点输出到输出节点,最后输出这个结果。
若输出的结果与期望值存在较大的误差,则是要进行反向的误差运算。
将所得到的误差信号通过原先输出的通路返回,通过修改连接各个节点的权值使误差减小到可接受的范围。
图4.0是BP神经网络的计算过程的流程图。
图4.0BP神经网络的计算过程的流程图
4.1.2基于BP神经网络逼近函数
步骤1:
首先设定频率参数k=1,然后制作要逼近的非线性函数的曲线。
得到如图4.1所示的函数曲线。
图4.1要逼近的非线性函数曲线
步骤2:
网络的建立
用newff()函数做一个BP网络结构。
隐层神经元数量n能改变,先将其假定为n=3,那么输出层将有一个神经元。
网络训练利用L-M算法来建立函数,其中选择输出层采用purelin函数,隐藏层的神经元传递采用tansig传递函数。
与此同时画一个网络输出曲线图,并和原来的函数相对比,得到如图4.2所示的结果。
图4.2未训练网络的输出结果
因为用newff()函数进行创建函数网络时,临界值和权值的起始化是随机的,所以网络输出结构特别不好,无法达到函数逼近的目标,每一次运行的结果也总有不同的地方。
步骤3:
网络训练
在使用train()函数进行实验以前,首先设置网络训练的初始数据,第一步确定训练时间为50,第二步选择0.01的训练精度,其余的训练参数不做改变选择默认值。
训练结束以后,整理数据得到图4.3。
图4.3训练过程(训练误差、验证误差、测试误差曲线)
由以上结论可知,网络训练速度特别迅速,只需一次循环跌送过程就能达到要求的精度0.01。
步骤4:
网络测试
将训练之后的网络来一次仿真:
制作一个网络输出曲线,并与原来非线性函数曲线和未训练网络输出结果曲线相对比,得出训练后网络的输出结果如图4.4所示。
图4.4训练后网络的输出结果
由此可以看出,非线性函数曲线图目标和训练后的曲线图的几乎一模一样。
这充分表明经过训练后的网络的逼近结果比未经训练前好太多。
4.2.3不同频率下的逼近效果
将频率参数和非线性函数进行更换然后和隐层神经元数目进行比较。
(1)假定频率参数设定为k=4,那么隐层神经元的数量依次取为n=6、n=8后,获得了训练后的网络输出结果如图4.5,4.6所示。
图4.5n=6时训练后网络的效果图4.6n=8时训练后网络的效果
(2)假定频率参数k为6,那么隐层神经元数目分别取n=10、n=12时,得到的训练后的网络输出结果如图4.7,4.8所示。
图4.7n=10时训练后网络的效果图4.8n=12时训练后网络的效果
(3)设频率参数k为8,当隐层神经元数目分别取n=15、n=20时,得到了训练后的网络输出结果如图4.9,4.10所示
图4.9n=15时训练后网络的效果图4.10n=20时训练后网络的效果
(以上所有图中实线表示要逼近的非线性函数曲线;带点的线表示未经训练的函数曲线;虚线表示经过训练的函数曲线)
4.2.4讨论
由上述具体实例可总结,当k=4,n=6时;k=6,n=10时;k=8,n=15时,对该非线性函数有逼近效果更明显。
所以得到,n值的多少对网络的函数逼近效果的影响是非常巨大的。
同理可知变化网络隐藏层神经元的数目,也可以对这种逼近效果产生极大的影响。
隐层神经元的数量越多,预示着在BP网络能够更加逼近非线性函数。
4.2BP网络在函数拟合中的应用
4.2.1问题的提出
如图所示,研究不同映射函数及训练算法对BP神经网络进行函数拟合的影响
4.2.2不同隐层神经元数对BP网络拟合函数的影响
设定隐层神经元数为20,输入层-隐层映射函数为Log-sigmoid型函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择L-M算法训练网络
图4.2.1训练结果(隐层神经元数20)
设定隐层神经元数为100,其他各层间映射函数不变,建立神经网络,同样选择L-M算法训练网络
图4.2.2训练结果(隐层神经元数100)
4.2.3不同映射函数对BP网络拟合函数的影响
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择L-M算法训练网络
图4.2.3训练结果(输入层-隐层采样指数函数)
设定隐层神经元数为20,输入层-隐层映射函数为正切函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择L-M算法训练网络
图4.2.4训练结果(输入层-隐层采样正切函数)
设定隐层神经元数为20,输入层-隐层映射函数为线性函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择L-M算法训练网络
图4.2.5训练结果(输入层-隐层采样线性函数)
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择L-M算法训练网络
图4.2.6训练结果(隐层-输出层采样线性函数)
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为正切传递函数,建立神经网络,选择L-M算法训练网络
图4.2.7训练结果(隐层-输出层采样正切函数)
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为指数传递函数,建立神经网络,选择L-M算法训练网络
图4.2.8训练结果(隐层-输出层采样指数函数)
4.2.4不同算法对BP网络拟合函数的影响
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择L-M算法训练网络
图4.2.9训练结果(L-M算法)
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择动量梯度算法训练网络
图4.2.10训练结果(动量梯度算法)
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择贝叶斯正则化算法训练网络
图4.2.11训练结果(贝叶斯正则化算法)
设定隐层神经元数为20,输入层-隐层映射函数为指数函数,隐层-输出层映射函数为线性传递函数purelin,建立神经网络,选择复位算法训练网络
图4.2.12训练结果(复位算法)
4.2.5结果讨论
在其他变量相同的条件下,隐层神经元数目越大越易收敛;输入层-隐层:
采样指数函数较易收敛;隐层-输出层:
采样线性函数较易收敛;采样不同训练算法,收敛速度不同,甚至不收敛。
5结束语
本文首先总结了神经网络的发展背景和研究内容,分析了当下研究中存在的不足以及局限性,然后进一步描述了对神经系统结构以和BP神经网络的工作机制及其相关功能。
基于MATLAB软件GUI图形界面和BP神经网络的原理下,分析研究了BP神经网络在函数逼近应用以及不同相关参数对其数据拟合造成的影响,得出了并分析了相关结论。
虽然有实例证明在函数逼近以及数据拟合方面神经网络的巨大应用,但是依然存在不少缺陷。
如样本数据太少,分析不够全面,没有讨论在数据拟合的具体效果,还需要多加深入研究。
随着科技的进步发展,神经网络已经成为人工智能方向一个备受青睐的前沿课题,其用途日益广泛,在几乎所有的工程应用领域,都能见到它的身影。
神经网络依靠其自身的优秀特性和独特优势,预计会在未来科技领域的研究中迅猛发展。
参考文献:
[1]郑君里,杨行峻.《人工神经网络》.北京:
高等教育出版社,1992.5:
15-30
[2]郝中华.《BP神经网络的非线性思想》.洛阳师范学院学报2013.3(4)
[3]巨军让,卓戎.《BP神经网络在Matlab中的方便实现》.新疆石油学院学报.