如何使用Matlab建立的人工神经网络原理

3被浏览247分享邀请回答暂时还没有回答,开始写第一个回答内容详情:
1、须通过改进完善。由于BP网络训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼近。当然,感知器和线性神经网络能够解决这类网络问题。但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。对于非线性系统,选择合适的学习率是一个重要的问题。在线性网络中,学习率过大会导致训练过程不稳定。相反,学习率过小又会造成训练时间过长。和线性网络不同,对于非线性多层网络很难选择很好的学习率。对那些快速训练算法,缺省参数值基本上都是最有效的设置。非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。网络隐层神经元的数目也对网络有一定的影响。神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。3BP神经网络在实例中的应用快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手段。Matlab神经网络工具箱的出现,。2、(BP神经网络的MATLAB实现)(最终版)元个数为1,只有一个隐含层,其个数根据上述的设计经验公式和本例的实际情况,选取9-16之间。下面的隐含层神经元个数可变的BP神经网络,通过误差和训练步数对比确定隐含层个数,并检验隐含层神经元个数对网络性能的影响。下面是相关MATLAB程序段:%选取输入变量x取值范围x=-4:0.01:4;%输入目标函数y1=sin((1/2)*pi*x)+sin(pi*x);%隐含层的神经元数目范围s=9:16;%欧氏距离res=1:8;%选取不同的隐含层神经元个数,进行网络测试fori=1:8%建立前向型BP神经网络,输入层和隐含层激励函数为tansig,输出层为purelin%训练函数为trainlm,也是默认函数net=newff(minmax(x),[1,s(i),1],{'tansig','tansig','purelin'},'trainlm');%训练步数最大为2000net.trainparam.epochs=2000;%设定目标误差为0.00001net.trainparam.goal=0.00001;%进行函数训练net=train(net,x,y1);%对训练后的神经网络进行仿真y2=sim(net,x);%求欧式距离,判定隐含层神经元个数及网络性能err=y2-y1;res(i)=norm(err);end用该同一程序在三个不同时刻,运行结果及分析如下:表2隐含层不同神经元。3、数为梯度下降BP算法函数。traingdm函数为梯度下降动量BP算法函数。3.2BP网络在函数逼近中的应用3.2.1问题的提出BP网络由很强的映射能力,主要用于模式识别分类、函数逼近、函数压缩等。下面将通过实例来说明BP网络在函数逼近方面的应用。要求设计一个BP网络,逼近函数:g(x)=1+sin(k*pi/4*x),实现对该非线性函数的逼近。其中,分别令k=1,2,4进行仿真,通过调节参数(如隐藏层节点个数等)得出信号的频率与隐层节点之间,隐层节点与函数逼近能力之间的关系。3.2.2基于BP神经网络逼近函数步骤1:假设频率参数k=1,绘制要逼近的非线性函数的曲线。函数的曲线如图8所示k=1;p=[-1:.05:8];t=1+sin(k*pi/4*p);plot(p,t,'-');title('要逼近的非线性函数');xlabel('时间');ylabel('非线性函数');图8逼近的非线性函数曲线步骤2:网络的建立应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,暂设为n=3,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练的算法采用Levenberg–Marquardt算法trainlm。n=3;net=newff(minmax(p),[n,1],{'tansig''purelin'},'trainlm');。4、BP神经网络的MATLAB实现.doc的乎达到了0.9,而第三个输出则吻合得不是很理想,作进一步研究,在当隐层数据为15时,较第一种情况,它的输出更加接近于期望值。比较可知,当隐层数目越多,则测试得到的样本水平越接近于期望值。结论本文首先总结了神经网络的研究目的和意义,介绍了神经网络的研究背景和现状,分析了目前神经网络研究中存在的问题,然后描述了BP神经网络算法的实现以及BP神经网络的工作原理,给出了BP网络的局限性。在以BP神经网络为基础的前提下,分析研究了BP神经网络在函数逼近和样本含量估计两个实例中的应用。以及分析了结论,即信号的频率越高,则隐层节点越多,隐单元个数越多,逼近能力越强。和隐层数目越多,测试得到的样本的水平越接近于期望值。本文虽然总结分析了BP神经网络算法的实现,给出了实例分析,但是还有很多的不足。所总结的BP神经网络和目前研究的现状都还不够全面,经过程序调试的图形有可能都还存在很多细节上的问题,而图形曲线所实现效果都还不够好,以及结果分析不够全面,正确,缺乏科学性等,这些都还是需加强提高的,本文的完成不代表就对这门学科研究的结束,还有很多知识,理论,研究成果需要不断学习。近几年的不断发展,神经网络更是取得了非常广泛的应用,和令人瞩目的发展,在很多方面都发挥了其独特的作用,特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别等众多方面的应用实例,给人们带来了很多应用上到思考,和解决方法。5、BP神经网络的MATLAB实现旦通过某神经元,该神经元的处理就结束了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断变化状态的动态之中。信号从某初始状态开始,经过若干次变化,才会达到某种平衡状态。根据网络的结构和神经元的特性,网络的运行还有可能进入周期振荡或其他如混沌平衡状态。图6结合型网络结构综上,可知神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络、互连网络等四种结构,其神经网络模型有感知器网络,线性神经网络,BP神经网络,径向基函数网络,反馈神经网络等,本文主要学习研究了BP神经网络,以及BP神经网络在函数逼近和样本含量估计两个实例中的应用分析。2.2BP神经网络及其原理2.2.1BP神经网络定义BP(BackPropagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。2.2.2BP神经网络模型及其基本原理BP网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。图7为一个典型的三层B。6、须通过改进完善。由于BP网络训练中稳定性要求学习效率很小,所以梯度下降法使得训练很慢。动量法因为学习率的提高通常比单纯的梯度下降法要快一些,但在实际应用中还是速度不够,这两种方法通常只应用于递增训练。多层神经网络可以应用于线性系统和非线性系统中,对于任意函数模拟逼近。当然,感知器和线性神经网络能够解决这类网络问题。但是,虽然理论上是可行的,但实际上BP网络并不一定总能有解。对于非线性系统,选择合适的学习率是一个重要的问题。在线性网络中,学习率过大会导致训练过程不稳定。相反,学习率过小又会造成训练时间过长。和线性网络不同,对于非线性多层网络很难选择很好的学习率。对那些快速训练算法,缺省参数值基本上都是最有效的设置。非线性网络的误差面比线性网络的误差面复杂得多,问题在于多层网络中非线性传递函数有多个局部最优解。寻优的过程与初始点的选择关系很大,初始点如果更靠近局部最优点,而不是全局最优点,就不会得到正确的结果,这也是多层网络无法得到最优解的一个原因。为了解决这个问题,在实际训练过程中,应重复选取多个初始点进行训练,以保证训练结果的全局最优性。网络隐层神经元的数目也对网络有一定的影响。神经元数目太少会造成网络的不适性,而神经元数目太多又会引起网络的过适性。3BP神经网络在实例中的应用快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手段。Matlab神经网络工具箱的出现,(全文完)
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC1.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC2.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC3.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC4.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC5.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC6.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC7.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC8.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC9.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC10.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC11.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC12.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC13.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC14.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC15.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC16.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC17.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC18.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC19.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC20.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC21.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC22.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC23.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC24.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC25.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC26.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC27.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC28.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC29.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC30.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC31.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC32.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC33.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC34.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC35.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC36.swf
/FileRoot2//a22afb97-e67d-4db5-8c45-5dd04d12f2fc/A22AFB97-E67D-4DB5-8C45-5DD04D12F2FC37.swf播放次数 加载中...
思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。
逻辑性的思维是指根据逻辑规则进行推理的过程;它先将信息化成概念,并用符号表示,然后,根据符号运算按串行模式进行逻辑推理;这一过程可以写成串行的指令,让计算机执行。然而,直观性的思维是将分布式存储的信息综合起来,结果是忽然间产生想法或解决问题的办法。这种思维方式的根本之点在于以下两点:1.信息是通过神经元上的兴奋模式分布储在网络上;2.信息处理是通过神经元之间同时相互作用的动态过程来完成的。
人工神经网络就是模拟人思维的第二种方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。
神经网络的研究内容相当广泛,反映了多学科交叉技术领域的特点。目前,主要的研究工作集中在以下几个方面:
(1)生物原型研究。从生理学、心理学、解剖学、脑科学、病理学等生物科学方面研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。
(2)建立理论模型。根据生物原型的研究,建立神经元、神经网络的理论模型。其中包括概念模型、知识模型、物理化学模型、数学模型等。
(3)网络模型与算法研究。在理论模型研究的基础上构作具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。这方面的工作也称为技术模型研究。
(4)人工神经网络应用系统。在网络模型与算法研究的基础上,利用人工神经网络组成实际的应用系统,例如,完成某种信号处理或模式识别的功能、构作专家系统、制成机器人等等。
纵观当代新兴科学技术的发展历史,人类在征服宇宙空间、基本粒子,生命起源等科学技术领域的进程中历经了崎岖不平的道路。我们也会看到,探索人脑功能和神经网络的研究将伴随着重重困难的克服而日新月异。
更新时间: 18:13查看: 30500|回复: 118|关注: 0
建立简单的BP神经网络简介
<h1 style="color:# 麦片财富积分
新手, 积分 6, 距离下一级还需 44 积分
运用Matlab创建BP神经网络(R2010b)BP神经网络属于前向网络以下为创建BP神经网络的方法及参数意义(1)net=newff(P,T,S)或者net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)P:输入参数矩阵。(RxQ1)T:目标参数矩阵。(SNxQ2)S:N-1个隐含层的数目(S(i)到S(N-1)),输出层的单元数目取决于T,默认为空矩阵。TF:相关层的传递函数,默认隐含层为tansig函数,输出层为purelin函数。BTF:BP神经网络学习训练函数,默认值为trainlm函数。BLF:权重学习函数,默认值为learngdm。PF:性能函数,默认值为mse。IPF,OPF,DDF均为默认值即可。(2)传递函数purelin 线性传递函数tansig 正切 S 型传递函数logsig 对数 S 型传递函数隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用 tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。(3)学习训练函数神经网络的学习分为有导师学习和无导师学习。最速下降BP算法:traingd动量BP算法:traingdm学习率可变的BP算法:trainda(学习率可变的最速下降BP算法);traindx(学习率可变的动量BP算法)弹性算法:trainrp变梯度算法:traincgf(Fletcher-Reeves修正算法)& && && && &traincgp(Polak_Ribiere修正算法)& && && && &traincgb(Powell-Beale复位算法)& && && && &trainbfg(BFGS 拟牛顿算法)trainoss(OSS算法)trainlm(LM算法)参数说明:通过net.trainParam可以查看参数& & Show Training Window Feedback& &showWindow: true& & Show Command Line Feedback showCommandLine: false& & Command Line Frequency& && && && &show: 两次显示之间的训练次数& & Maximum Epochs& && && && && && & epochs: 训练次数 & & Maximum Training Time& && && && &&&time: 最长训练时间(秒)& & Performance Goal& && && && && && && & goal: 网络性能目标& & Minimum Gradient& && && && && && &min_grad: 性能函数最小梯度& & Maximum Validation Checks& && && &max_fail: 最大验证失败次数& & Learning Rate& && && && && && && && && &lr: 学习速率& & Learning Rate Increase& && && && &&&lr_inc: 学习速率增长值& & Learning Rate& && && && && && && &&&lr_dec: 学习速率下降值& & Maximum Performance Increase&&max_perf_inc:Momentum Constant& && && && && && && &&&mc: 动量因子(4)BP神经网络预测函数SimOut = sim('model', Parameters) & y=sim(net,x)函数功能:用训练好的BP神经网络预测函数输出net:训练好的网络x:输入数据y:网络预测数据(5)训练函数[net,tr] = train(Net,P,T,Pi,Ai)其中,Net&&待训练的网络P& & 输入数据矩阵T& & 输出数据矩阵 (default = zeros)Pi& &初始化输入层条件 (default = zeros)Ai& &初始化输出层条件 (default = zeros)net& &训练好的网络tr& & 训练过程记录注意:P& &Ni-by-TS cell array& &Each element P{i,j,ts} is an Ni-by-Q matrix.T& &Nl-by-TS cell array& &Each element T{i,ts} is a Ui-by-Q matrix. BP网络的常用函数表函数类型函数名称函数用途前向网络创建函数newcf创建级联前向网络Newff创建前向BP网络传递函数logsigS型的对数函数tansigS型的正切函数purelin纯线性函数学习函数learngd基于梯度下降法的学习函数learngdm梯度下降动量学习函数性能函数mse均方误差函数msereg均方误差规范化函数 显示函数plotperf绘制网络的性能plotes绘制一个单独神经元的误差曲面plotep绘制权值和阈值在误差曲面上的位置errsurf计算单个神经元的误差曲面 范例(网上搜寻的,谢谢原作者)现给出一药品商店一年当中12个月的药品销售量(单位:箱)如下:<font color="#56 98 73 00 训练一个BP网络,用当前的所有数据预测下一个月的药品销售量。我们用前三个月的销售量预测下一个月的销售量,也就是用1-3月的销售量预测第4个月的销售量,用2-4个月的销售量预测第5个月的销售量,如此循环下去,直到用9-11月预测12月份的销售量。这样训练BP神经网络后,就可以用10-12月的数据预测来年一月的销售量。实现程序如下:P =[00;98;34;00;...& &73;78;00;00;...& &46;];T = [00 00 56];pmax = max(P);pmax1 = max(pmax);pmin = min(P);pmin1 = min(pmin);for i=1:9& & P1(i,:)=(P(i,:)-pmin1)/(pmax1-pmin1);& & T1(i)=(T(i)-pmin1)/(pmax1-pmin1);endnet = newff(P1',T1,[3 7],{'tansig' 'logsig'},'traingd');for i = 1:9& & net.trainParam.epochs = 15000;& & net.trainParam.goal=0.01;& & net.trainParam.lr = 0.1& & net = train(net,P1(i,:)',T1(i));endy=sim(net,[56]');y1=y*(pmax1-pmin1)+pmin1; 如果神经网络的训练函数使用trainlm,则仿真步骤会很少,但需要较大的系统内存。经预测,来年一月的销售量(y1)为1.箱(每次运行后的结果可能不同)。
<h1 style="color:# 麦片财富积分
学习了,谢谢!
<h1 style="color:# 麦片财富积分
代码通不过啊 在matlab下
<h1 style="color:# 麦片财富积分
2011a上试过吗?
<h1 style="color:# 麦片财富积分
swww 发表于
2011a上试过吗?
net = newff(P1',T1,[3 7],{'tansig' 'logsig'},'traingd');
newff()函数和老版本不同,可以参照F1帮助修改一下
<h1 style="color:# 麦片财富积分
2010b上可以
<h1 style="color:# 麦片财富积分
为什么输入是3,输出是7呢?3,7是怎么确定的?
<h1 style="color:# 麦片财富积分
<h1 style="color:# 麦片财富积分
学习了,谢谢
<h1 style="color:# 麦片财富积分
强贴!读后我觉得自己如坐春风,巨赞楼主!
站长推荐 /1
MATLAB中文论坛是全球最大的 MATLAB & Simulink 中文社区。用户免费注册会员后,即可下载代码,讨论问题,请教资深用户及结识书籍作者。立即注册加入我们吧!
MATLAB官方社交平台
MATLAB中文论坛微社区}

我要回帖

更多关于 人工神经网络的应用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信