当前位置:文档之家› 基于MATLAB的神经网络算法研究及仿真

基于MATLAB的神经网络算法研究及仿真

基于MATLAB的神经网络算法研究及仿真
基于MATLAB的神经网络算法研究及仿真

基于MATLAB的神经网络算法研究及仿真

焦文明

摘要:人工神经网络以其具有信息的分布存储、并行处理以及自学习能力等优点, 已经在模式识别、信号处理、智能控制及系统建模等领域得到越来越广泛的应用。MATLAB中的神经网络工具箱是以人工神经网络理论为基础, 利用MATLAB 语言构造出许多典型神经网络的传递函数、网络权值修正规则和网络训练方法,网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序, 免去了繁琐的编程过程。采用Matlab软件编程实现BP 神经网络算法,将神经网络算法应用于函数逼近和样本含量估计问题中,并分析相关参数对算法运行结果的影响。

关键词:神经网络;BP神经网络;函数逼近

1 绪论

人工神经网络(Artificial Neural Networks,NN)是由大量的、简单的处理单元(称为神经元)广泛地互相连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。神经网络具有大规模并行、分布式存储和处理、自组织、自适应和自学习能力,特别适合处理需要同时考虑许多因素和条件的、不精确和模糊的信息处理问题。神经网络的发展与神经科学、数理科学、认知科学、计算机科学、人工智能、信息科学、控制论、机器人学、微电子学、心理学、微电子学、心理学、光计算、分子生物学等有关,是一门新兴的边缘交叉学科。

神经网络具有非线性自适应的信息处理能力,克服了传统人工智能方法对于直觉的缺陷,因而在神经专家系统、模式识别、智能控制、组合优化、预测等领域得到成功应用。神经网络与其他传统方法相组合,

将推动人工智能和信息处理技术不断发展。近年来,神经网络在模拟人类认知的道路上更加深入发展,并与模糊系统、遗传算法、进化机制等组合,形成计算智能,成为人工智能的一个重要方向。

MATLAB是一种科学与工程计算的高级语言,广泛地运用于包括信号与图像处理,控制系统设计,系统仿真等诸多领域。为了解决神经网络问题中的研究工作量和编程计算工作量问题,目前工程领域中较为流行的软件MA TLAB,提供了现成的神经网络工具箱(Neural Network Toolbox,简称NNbox),为解决这个矛盾提供了便利条件。神经网络工具箱提供了很多经典的学习算法,使用它能够快速实现对实际问题的建模求解。在解决实际问题中,应用MATLAB 语言构造典型神经网络的激活传递函数,编写各种网络设计与训练的子程序,网络的设计者可以根据需要调用工具箱中有关神经网络的设计训练程序,使自己能够从烦琐的编程中解脱出来,减轻工程人员的负担,从而提高工作效率。

2 神经网络结构及BP神经网络

2.1 神经元与网络结构

人工神经网络(artificial neural network,ANN)是模仿生物神经网络功能的一种经验模型。生物神经元受到传入的刺激,其反应又从输出端传到相联的其它神经元,输入和输出之间的变换关系一般是非线性的。神经网络是由若干简单(通常是自适应的)元件及其层次组织,以大规模并行连接方式构造而成的网络,按照生物神经网络类似的方式处理输入的信息。模仿生物神经网络而建立的人工神经网络,对输入信号有功能强大的反应和处理能力。

神经网络是由大量的处理单元(神经元)互相连接而成的网络。为了模拟大脑的基本特性,在神经科学研究的基础上,提出了神经网络的模型。但是,实际上神经网络并没有完全反映大脑的功能,只是对生物神经网络进行了某种抽象、简化和模拟。神经网络的信息处理通过神经元的互相作用来实现,知识与信息的存储表现为网络元件互相分布式的物理联系。神经网络的学习和识别取决于各种神经元连接权系数的动态演化过程。

若干神经元连接成网络,其中的一个神经元可以接受多个输入信号,按照一定的规则转换为输出信号。

由于神经网络中神经元间复杂的连接关系和各神经元传递信号的非线性方式,输入和输出信号间可以构建出各种各样的关系,因此可以用来作为黑箱模型,表达那些用机理模型还无法精确描述、但输入和输出之间确实有客观的、确定性的或模糊性的规律。因此,人工神经网络作为经验模型的一种,在化工生产、研究和开发中得到了越来越多的用途。

神经网络连接的几种基本形式:

1)前向网络

前向网络结构如图2.1所示,网络中的神经元是分层排列的,每个神经元只与前一层的神经元相连接。神经元分层排列,分别组成输入层、中间层(也称为隐含层,可以由若干层组成)和输出层。每一层的神经元只接受来自前一层神经元的输入,后面的层对前面的层没有信号反馈。输入模式经过各层次的顺序传播,最后在输出层上得到输出。感知器网络和BP网络均属于前向网络。

图2.1前向网络结构

2)从输出到输入有反馈的前向网络

其结构如图2.2所示,输出层对输入层有信息反馈,这种网络可用于存储某种模式序列,如神经认知机和回归BP网络都属于这种类型。

图2.2有反馈的前向网络结构

3) 层内互连前向网络

其结构如图2.3所示,通过层内神经元的相互结合,可以实现同一层神经元之间的横向抑制或兴奋机制。这样可以限制每层内可以同时动作的神经元素,或者把每层内的神经元分为若干组,让每一组作为一个整体进行运作。例如,可利用横向抑制机理把某层内的具有最大输出的神经元挑选出来,从而抑制其他神经元,使之处于无输出状态。

图2.3有相互结合的前向网络结构

4) 相互结合型网络

相互结合型网络结构如图2.4所示,这种网络在任意两个神经元之间都可能有连接。Hopfield 网络和Boltzmann 机均属于这种类型。在无反馈的前向网络中,信号一旦通过某神经元,该神经元的处理就结束了。而在相互结合网络中,信号要在神经元之间反复传递,网络处于一种不断变化状态的动态之中。信号从某初始状态开始,经过若干次变化,才会达到某种平衡状态。根据网络的结构和神经元的特性,网络的

运行还有可能进入周期振荡或其他如混沌平衡状态。

图2.4结合型网络结构

综上,可知神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络、互连网络等四种结构,其神经网络模型有感知器网络,线性神经网络,BP神经网络,径向基函数网络,反馈神经网络等,本文主要学习研究了BP神经网络,以及BP神经网络在函数逼近和样本含量估计两个实例中的应用分析。

2.2 BP神经网络及其原理

2.2.1 BP神经网络定义

BP (Back Propagation)神经网络是一种神经网络学习算法。其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。相邻层之间各神经元进行全连接,而每层各神经元之间无连接,网络按有教师示教的方式进行学习,当一对学习模式提供给网络后,各神经元获得网络的输入响应产生连接权值(Weight)。然后按减小希望输出与实际输出误差的方向,从输出层经各中间层逐层修正各连接权,回到输入层。此过程反复交替进行,直至网络的全局误差趋向给定的极小值,即完成学习的过程。

2.2.2BP神经网络模型及其基本原理

BP神经网络是误差反向传播神经网络的简称,它由一个输入层,一个或多个隐含层和一个输出层构成,每一次由一定数量的的神经元构成。这些神经元如同人的神经细胞一样是互相关联的。其结构如图2.5所示:

图2.5BP神经网络模型

生物神经元信号的传递是通过突触进行的一个复杂的电化学等过程, 在人工神经网络中是将其简化

模拟成一组数字信号通过一定的学习规则而不断变动更新的过程,这组数字储存在神经元之间的连接权重。网络的输入层模拟的是神经系统中的感觉神经元,它接收输入样本信号。输入信号经输入层输入,通过隐含层的复杂计算由输出层输出,输出信号与期望输出相比较,若有误差,再将误差信号反向由输出层通过隐含层处理后向输入层传播。在这个过程中,误差通过梯度下降算法,分摊给各层的所有单元,从而获得各单元的误差信号,以此误差信号为依据修正各单元权值,网络权值因此被重新分布。此过程完成后,输入信号再次由输入层输入网络,重复上述过程。这种信号正向传播与误差反向传播的各层权值调整过程周而复始地进行着,直到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。权值不断调整的过程就是网络的学习训练过程。

BP神经网络的信息处理方式具有如下特点:

1)信息分布存储。人脑存储信息的特点是利用突触效能的变化来调整存储内容,即信息存储在神经元之间的连接强度的分布上,B P神经网络模拟人脑的这一特点,使信息以连接权值的形式分布于整个网

络。

2) 信息并行处理。人脑神经元之间传递脉冲信号的速度远低于冯·诺依曼计算机的工作速度,但是在很多问题上却可以做出快速的判断、决策和处理,这是由于人脑是一个大规模并行与串行组合的处理系统。BP神经网络的基本结构模仿人脑,具有并行处理的特征,大大提高了网络功能。

3)具有容错性。生物神经系统部分不严重损伤并不影响整体功能,BP神经网络也具有这种特性,网络的高度连接意味着少量的误差可能不会产生严重的后果,部分神经元的损伤不破坏整体,它可以自动修正误差。这与现代计算机的脆弱性形成鲜明对比。

4)具有自学习、自组织、自适应的能力。BP神经网络具有初步的自适应与自组织能力,在学习或训练中改变突触权值以适应环境,可以在使用过程中不断学习完善自己的功能,并且同一网络因学习方式的不同可以具有不同的功能,它甚至具有创新能力,可以发展知识,以至超过设计者原有的知识水平。

3 BP神经网络在实例中的应用

快速发展的Matlab软件为神经网络理论的实现提供了一种便利的仿真手段。Matlab神经网络工具箱的出现,更加拓宽了神经网络的应用空间。神经网络工具箱将很多原本需要手动计算的工作交给计算机,一方面提高了工作效率,另一方面,还提高了计算的准确度和精度,减轻了工程人员的负担。

神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一。它以人工神经网络理论为基础,利用MATLAB编程语言构造出许多典型神经网络的框架和相关的函数。这些工具箱函数主要为两大部分。一部分函数特别针对某一种类型的神经网络的,如感知器的创建函数、BP网络的训练函数等。而另外一部分函数则是通用的,几乎可以用于所有类型的神经网络,如神经网络仿真函数、初始化函数和训练函数等[15]。这些函数的MATLAB实现,使得设计者对所选定网络进行计算过程,转变为对函数的调用和参数的选择,这样一来,网络设计人员可以根据自己的的需要去调用工具箱中有关的设计和训练程序,从烦琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。

3.1 基于MATLAB的BP神经网络工具箱函数

最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。Matlab神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表3.1所示。

表3.1 BP网络的常用函数表

3.1.1BP网络创建函数

1) newff

该函数用于创建一个BP网络。调用格式为:

net=newff

net=newff(PR,[S1S2..SN1],{TF1TF2..TFN1},BTF,BLF,PF)

其中,

net=newff;用于在对话框中创建一个BP网络。

net为创建的新BP神经网络;

PR为网络输入向量取值范围的矩阵;

[S1S2…SNl]表示网络隐含层和输出层神经元的个数;

{TFl TF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;

BTF表示网络的训练函数,默认为‘trainlm’;

BLF表示网络的权值学习函数,默认为‘learngdm’;

PF表示性能数,默认为‘mse’。

2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。3.1.2神经元上的传递函数

传递函数是BP网络的重要组成部分。传递函数又称为激活函数,必须是连续可微的。BP网络经常采用S型的对数或正切函数和线性函数。

1) logsig

该传递函数为S型的对数函数。调用格式为:

A=logsig(N)

info=logsig(code)

其中,

N:Q个S维的输入列向量;

A:函数返回值,位于区间(0,1)中;

2)tansig

该函数为双曲正切S型传递函数。调用格式为:

A=tansig(N)

info=tansig(code)

其中,

N:Q个S维的输入列向量;

A:函数返回值,位于区间(-1,1)之间。

3)purelin

该函数为线性传递函数。调用格式为:

A=purelin(N)

info=purelin(code)

其中,

N:Q个S维的输入列向量;

A:函数返回值,A=N。

3.1.3BP网络学习函数

1)learngd

该函数为梯度下降权值阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。调用格式为:

[dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)

[db,ls]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)

info=learngd(code)

2) learngdm函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。

3.1.4BP网络训练函数

1)train

神经网络训练函数,调用其他训练函数,对网络进行训练。该函数的调用格式为:

[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai)

[net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai,VV,TV)

2) traingd函数为梯度下降BP算法函数。traingdm函数为梯度下降动量BP算法函数。

3.2BP网络在函数逼近中的应用

BP 网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。BP 网络模型结构见图 3.1。网络同层节点没有任何连接,隐层节点可以由一个或多个。网络的学习过程由正向和反向传播两部分组成。在正向传播中,输入信号从输入层节点经隐层节点逐层传向输出层节点。每一层神经元的状态只影响到下一层神经元网络,如输出层不能得到期望的输出,那么转入误差反向传播过程,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算,在经正向传播过程,这两个过程反复运用,使得误差信号最小或达到人们所期望的要求时,学习过程结束。

图3.1 BP 网络模型结构

利用神经网络工具箱进行设计和仿真的具体步骤:

1.确定信息表达方式:将实际问题抽象成神经网络求解所能接受的数据形式;

2.确定网络模型:选择网络的类型、结构等;

3.选择网络参数:如神经元数,隐含层数等;

4.确定训练模式:选择训练算法,确定训练步数,指定训练目标误差等;

5.网络测试:选择合适的训练样本进行网络测试。

3.2.1第一步问题的提出

设计一个简单的BP 网络,实现对非线性函数的逼近,通过改变BP 网络的隐层神经元的数目,采用不同的训练方法来观察训练时间和训练误差的变化情况。假设将要将要逼近的函数为正弦函数,其频率参数N=1,绘制此函数见图3.2 所示。

N=1;

p= [- 1:0.05:1] ;

t=sin (N*pi*p) ;

%假设N=1,绘制此函数曲线

plot (p,t,'r*')

title ('要逼近的非线性函数')

xlabel ('时间') ;

3.2.2第二步网络建立

应用newff () 建立两层的BP 网络,隐层神经元数目可以改变,此时S=8 ,输出层一个神经元,隐层和输出层的传递函数分别为tansig 和purelin ,学习算法采用Levenberg - Marquadt ( trainlm) 。用sim() 观察初始化网络输出如图3.3 所示。

S=8;

net=newff (minmax (p) , [S,1] , {'tansig','purelin'} ,'trainlm') ;

y1=sim (net,p) ;

figure;

plot (p,t, 'r* ',p,y1,'b- ')

title ('未训练网络的输出结果')

xlabel ('时间') ;

ylabel ('仿真输出- 原函数*') ;

legend ('要逼近的非线性函数','未训练网络的输出结果')

图3.2要逼近的非线性函数

图3.3未训练时网络的输出结果

3.2.3第三步网络训练

将训练时间设为10,精度为0.001,用train ()进行训练,误差曲线见图3.4 所示。net.trainParam.epochs=10;

net.trainParam.goal=0.001;

net1 = train (net,p,t)

图3.4训练过程图

3.2.4第四步网络测试

用sim()观察训练后的网络输出如图3.5 所示。

y2 = sim (net1,p)

figure;

plot (p,t,'r* ',p,y1,'b- ',p,y2,'ko')

title ('训练后网络的输出结果')

xlabel ('时间') ;

ylabel ('仿真输出')

legend ('要逼近的非线性函数','未训练网络的输出结果','训练后网络的输出结果')

图3.5训练后网路的输出结果

从图3.5 可以看出经过很短时间的训练后BP 网络很好的逼近了非线性函数。

4. 结论

MATLAB 神经网络工具箱功能强大, 它提供了许多有关神经网络设计、训练和仿真的函数,我们只要根据需要调用相关函数, 就能方便进行神经网络设计与仿真, 从而免除了编写复杂而庞大的算法程序的困扰,可以很容易的调整各项参数,实现对神经网络的设计和仿真,为我们的工程应用提供很好的参考价值。

参考文献

[1]周开利,康耀红. 神经网络模型及其MATLAB仿真程序设计[M]. 北京:清华大学出版社,2005:90-95.

[2] 闵惜琳,刘国华. 用MATLAB神经网络工具箱开发BP网络应用[J]. 计算机应用,2001,21(8):163-164.

[3] 刘建斌. 人工神经网络在电磁建模中的应用[D]. 上海交通大学,2003:10-11.

[4] 张德丰. MATLAB神经网络应用设计[M]. 机械工业出版社,2009:7-12.

神经网络学习算法matlab仿真(借鉴参照)

东南大学自动化学院 智能控制概论 神经网络学习算法研究 学院: 姓名: 学号: 日期:

目录 1 任务要求叙述 ..................................................... 错误!未定义书签。 2 系统分析及设计原理 ......................................... 错误!未定义书签。 3 设计实现.............................................................. 错误!未定义书签。4仿真验证.. (6) 5 讨论与分析.......................................................... 错误!未定义书签。

一.任务要求叙述 (1)任务 (a) 运行算法,观察和分析现有学习算法的性能; clear all;close all; nu=20;pi=3.1415926; for i=1:nu p(i)=2*pi*i/nu; t(i)=0.5*(1+cos(p(i))); end minmax=[min(p(:)) max(p(:))] net = newff([ 0 7],[6 1],{'logsig' 'purelin'},'traingd');% traingd traingdm trainlm net.trainParam.epochs = 10000; net.trainParam.goal = 0.0001; net.trainParam.show=200; net.trainParam.lr=0.1; net.trainParam.mc=0.6; %0.9 default value; available for momentum net = train(net,p,t); y1 = sim(net,p); figure(2); plot(p,t,'*-',p,y1,'r--') %************** test data ****************** nu2=nu*3/2; for i=1:(nu2) p2(i)=2*pi*i/(nu2); t2(i)=0.5*(1+cos(p2(i))); end y2 = sim(net,p2); figure(3); plot(t2,'*-');hold on; plot(y2,'r'); xlabel('times');ylabel('outputs'); figure(4); plot(t2-y2); xlabel('times');ylabel('error'); (b) 为了进一步提高学习逼近效果,可以采取那些措施,调节规律如何?根据所提的每种措施,修改算法程序,给出仿真效果验证、过程以及相应的曲线图,给出适当的评述;(c) 联系、结合前向神经网络的算法样本学习、测试等过程,谈谈本人对神经网络系统的一些认识和看法。

(完整版)BP神经网络matlab实例(简单而经典).doc

p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); % 原始数据归一化 net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx'); %设置网络,建立相应的BP 网络net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM 算法训练BP 网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); anew=postmnmx(anewn,mint,maxt); %对 BP 网络进行仿真%还原数据 y=anew'; 1、 BP 网络构建 (1)生成 BP 网络 net newff ( PR,[ S1 S2...SNl],{ TF1 TF 2...TFNl }, BTF , BLF , PF ) PR :由R 维的输入样本最小最大值构成的R 2 维矩阵。 [ S1 S2...SNl] :各层的神经元个数。 {TF 1 TF 2...TFNl } :各层的神经元传递函数。 BTF :训练用函数的名称。 (2)网络训练 [ net,tr ,Y, E, Pf , Af ] train (net, P, T , Pi , Ai ,VV , TV ) (3)网络仿真 [Y, Pf , Af , E, perf ] sim(net, P, Pi , Ai ,T ) {'tansig','purelin'},'trainrp' BP 网络的训练函数 训练方法 梯度下降法 有动量的梯度下降法 自适应 lr 梯度下降法 自适应 lr 动量梯度下降法弹性梯度下降法训练函数traingd traingdm traingda traingdx trainrp Fletcher-Reeves 共轭梯度法traincgf Ploak-Ribiere 共轭梯度法traincgp

人工神经网络Matlab实现代码

以下是用Matlab中的m语言编写的BP神经网络代码,实现的是一个正弦函数的拟合过程,包括了初始化、BP算法、绘制曲线等过程,可以将代码放到一个M文件中运行,以下是代码: defaultpoints=20; %%%%%%%%%隐含层节点数 inputpoints=1; %%%%%%%%%输入层节点数 outputpoints=1; %%%%%%%%%输出层节点数 Testerror=zeros(1,100);%%%%每个测试点的误差记录 a=zeros(1,inputpoints);%%%%输入层节点值 y=zeros(1,outputpoints);%%%样本节点输出值 w=zeros(inputpoints,defaultpoints);%%%%%输入层和隐含层权值 %初始化权重很重要,比如用rand函数初始化则效果非常不确定,不如用zeros初始化 v=zeros(defaultpoints,outputpoints);%%%%隐含层和输出层权值 bin=rand(1,defaultpoints);%%%%%隐含层输入 bout=rand(1,defaultpoints);%%%%隐含层输出 base1=0*ones(1,defaultpoints);%隐含层阈值,初始化为0 cin=rand(1,outputpoints);%%%%%%输出层输入 cout=rand(1,outputpoints);%%%%%输出层输出 base2=0*rand(1,outputpoints);%%输出层阈值 error=zeros(1,outputpoints);%%%拟合误差 errors=0;error_sum=0; %%%误差累加和 error_rate_cin=rand(defaultpoints,outputpoints);%%误差对输出层节点权值的导数 error_rate_bin=rand(inputpoints,defaultpoints);%%%误差对输入层节点权值的导数 alfa=0.5; %%%% alfa 是隐含层和输出层权值-误差变化率的系数,影响很大 belt=0.5; %%%% belt 是隐含层和输入层权值-误差变化率的系数,影响较小 gama=5; %%%% gama 是误差放大倍数,可以影响跟随速度和拟合精度,当gama大于2时误差变大,容易震荡 %%%%规律100个隐含节点,当alfa *gama =1.5时,效果好,其他值误差变大,belt基本不影响效果 %%%%规律200个隐含节点,当alfa *gama =0.7时,效果好,其他值误差变大,belt基本不影响效果,最小误差和100个隐含点一样 %%%%规律50个隐含节点,当alfa *gama =3时,效果好,其他值误差变大,belt基本不影响效果,最小误差和100个隐含点一样 trainingROUND=200;% 训练次数,有时训练几十次比训练几百次上千次效果要好很多sampleNUM=361; % 样本点数 x1=zeros(sampleNUM,inputpoints); %样本输入矩阵 y1=zeros(sampleNUM,outputpoints); %样本输出矩阵 x2=zeros(sampleNUM,inputpoints); %测试输入矩阵

基于matlab实现BP神经网络模型仿真

基于BP神经网络模型及改进模型对全国历年车祸次数预测 一、背景 我国今年来随着经济的发展,汽车需求量不断地增加,所以全国每年的车祸次数也被越来越被关注,本文首先搜集全国历年车祸次数,接着通过这些数据利用BP神经网络模型和改进的径向基函数网络进行预测,最后根据预测结果,分析模型的优劣,从而达到深刻理解BP神经网络和径向基函数网络的原理及应用。所用到的数据即全国历年车祸次数来自中国汽车工业信息网,网址如下: https://www.doczj.com/doc/ee5203130.html,/autoinfo_cn/cszh/gljt/qt/webinfo/2006/05/124650 1820021204.htm 制作历年全国道路交通事故统计表如下所示: 二、问题研究 (一)研究方向 (1)通过数据利用BP神经网络模型预测历年全国交通事故次数并与实际值进行比较。(2)分析BP神经网络模型改变训练函数再进行仿真与之前结果进行对比。 (3)从泛化能力和稳定性等方面分析BP神经网络模型的优劣。 (4)利用径向基函数网络模型进行仿真,得到结果与采用BP神经网络模型得到的结果进行比较。

(二)相关知识 (1)人工神经网络 人工神经网络是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。在工程与学术界也常直接简称为神经网络或类神经网络。神经网络是一种运算模型,由大量的节点(或称神经元)和之间相互联接构成。每个节点代表一种特定的输出函数,称为激励函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重,这相当于人工神经网络的记忆。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。 人工神经网络有以下几个特征: (1)非线性非线性关系是自然界的普遍特性。大脑的智慧就是一种非线性现象。人工神经元处于激活或抑制二种不同的状态,这种行为在数学上表现为一种非线性网络关系。具有阈值的神经元构成的网络具有更好的性能,可以提高容错性和存储容量。 (2)非局限性一个神经网络通常由多个神经元广泛连接而成。一个系统的整体行为不仅取决于单个神经元的特征,而且可能主要由单元之间的相互作用、相互连接所决定。通过单元之间的大量连接模拟大脑的非局限性。联想记忆是非局限性的典型例子。 (3)非常定性人工神经网络具有自适应、自组织、自学习能力。神经网络不但处理的信息可以有各种变化,而且在处理信息的同时,非线性动力系统本身也在不断变化。经常采用迭代过程描写动力系统的演化过程。 (4)非凸性一个系统的演化方向,在一定条件下将取决于某个特定的状态函数。例如能量函数,它的极值相应于系统比较稳定的状态。非凸性是指这种函数有多个极值,故系统具有多个较稳定的平衡态,这将导致系统演化的多样性。 (2)BP神经网络模型 BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。 (3)径向基函数网络模型 径向基函数(Radial Basis Function,RBF)神经网络由三层组成,输入层节点只传递输入信号到隐层,隐层节点由像高斯函数那样的辐射状作用函数构成,而输出层节点通常是简单的线性函数。 隐层节点中的作用函数(基函数)对输入信号将在局部产生响应,也就是说,当输入信号靠近基函数的中央范围时,隐层节点将产生较大的输出,由此看出这种网络具有局部逼近能力,所以径向基函数网络也称为局部感知场网络。

BP神经网络模型应用实例

BP神经网络模型 第1节基本原理简介 近年来全球性的神经网络研究热潮的再度兴起,不仅仅是因为神经科学本身取得了巨大的进展.更主要的原因在于发展新型计算机和人工智能新途径的迫切需要.迄今为止在需要人工智能解决的许多问题中,人脑远比计算机聪明的多,要开创具有智能的新一代计算机,就必须了解人脑,研究人脑神经网络系统信息处理的机制.另一方面,基于神经科学研究成果基础上发展出来的人工神经网络模型,反映了人脑功能的若干基本特性,开拓了神经网络用于计算机的新途径.它对传统的计算机结构和人工智能是一个有力的挑战,引起了各方面专家的极大关注. 目前,已发展了几十种神经网络,例如Hopficld模型,Feldmann等的连接型网络模型,Hinton等的玻尔茨曼机模型,以及Rumelhart等的多层感知机模型和Kohonen的自组织网络模型等等。在这众多神经网络模型中,应用最广泛的是多层感知机神经网络。多层感知机神经网络的研究始于50年代,但一直进展不大。直到1985年,Rumelhart等人提出了误差反向传递学习算法(即BP算),实现了Minsky的多层网络

设想,如图34-1所示。 BP 算法不仅有输入层节点、输出层节点,还可有1个或多个隐含层节点。对于输入信号,要先向前传播到隐含层节点,经作用函数后,再把隐节点的输出信号传播到输出节点,最后给出输出结果。节点的作用的激励函数通常选取S 型函数,如 Q x e x f /11)(-+= 式中Q 为调整激励函数形式的Sigmoid 参数。该算法的学习过程由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并 传向输出层。每一层神经元的状态只影响下一层神经

BP神经网络的数据分类MATLAB源代码.doc

%%%清除空间 clc clear all ; close all ; %%%训练数据预测数据提取以及归一化 %%%下载四类数据 load data1 c1 load data2 c2 load data3 c3 load data4 c4 %%%%四个特征信号矩阵合成一个矩阵data ( 1:500 , : ) = data1 ( 1:500 , :) ; data ( 501:1000 , : ) = data2 ( 1:500 , : ) ; data ( 1001:1500 , : ) = data3 ( 1:500 , : ) ; data ( 1501:2000 , : ) = data4 ( 1:500 , : ) ; %%%%%%从1到2000间的随机排序 k = rand ( 1 , 2000 ) ; [ m , n ] = sort ( k ) ; %%m为数值,n为标号

%%%%%%%%%%%输入输出数据 input = data ( : , 2:25 ) ; output1 = data ( : , 1) ; %%%%%%把输出从1维变到4维 for i = 1 : 1 :2000 switch output1( i ) case 1 output( i , :) = [ 1 0 0 0 ] ; case 2 output( i , :) = [ 0 1 0 0 ] ; case 3 output( i , :) = [ 0 0 1 0 ] ; case 4 output( i , :) = [ 0 0 0 1 ] ; end end %%%%随机抽取1500个样本作为训练样本,500个样本作为预测样本 input_train = input ( n( 1:1500 , : ) )’ ; output_train = output ( n( 1:1500 , : ) )’ ; input_test = input ( n( 1501:2000 , : ) )’ ;

神经网络PID控制及Matlab仿真

神经网络PID控制及Matlab仿真 摘要 PID控制技术是一种应用很普遍的控制技术,目前在很多方面都有广泛的应用。论文首先简要介绍了神经网络的理论基础和神经网络的学习算法,传统的常规PID控制器。为了达到改善常规PID控制器在复杂的、动态的和不确定的系统控制还存在着许多不足之处的目的,文中系统的分析了神经网络PID控制器。 本文主要研究了神经网络PID控制。利用神经网络具有强的非线性映射能力、自学习能力、联想记忆能力、并行信息处理方式及优良的容错性能,应用神经网络对PID控制器进行改进后,对于工业控制中的复杂系统控制有着更好的控制效果,有效的改善了由于系统结构和参数变化导致的控制效果不稳定。文中深入研究了基于神经网络的BP神经网络PID控制器及其仿真等。 最后,对常规PID控制器和神经网络PID控制器进行了仿真比较,仿真结果表明,应用神经网络对常规PID控制器进行改进后提高了系统的鲁棒性和动态特性,有 效的改善了系统控制结果,达到了预期的目的前言 在工业控制过程中,PID控制是一种最基本的控制方式,其鲁棒性好、结构简单、易于实现,但常规的PID控制也有其自身的缺点,因为常规PID控制器的参数是根据被控对象数学模型确定的,当被控对象的数学模型是变化的、非线性的时候,PID参数不易根据其实际的情况做出调整,影响了控制质量,使控制系统的控制品质下降。特别是在具有纯滞后特性的工业过程中,常规的PID控制更难满足控制精度的要求。 PID控制是最早发展起来的控制策略之一,按偏差的比例、积分和微分进行控制的调节器称为 PID控制器,它是连续系统中技术成熟,应用最广泛的一种调节器。由于其算法简单,实现简易、鲁棒性能良好和可靠性高,能够对很大一类工业对象进行有效控制等一系列优点,被广泛应用于工业过程控制,尤其适用于可建立精确数学模型的确定性控制系统。但是在实际的工业生产过程中,往往具有非线性,时变不确定性,因而难以建立精确的数学模型,应用常规 PID控制器不能达到理想的控制效果:在实际生产过程中,由于受到参数整定方法繁杂的困扰,常规PID控制器参数往往整定不良,性能欠佳,对运行工况的适应性很差。

BP神经网络地设计实例(MATLAB编程)

神经网络的设计实例(MATLAB编程) 例1 采用动量梯度下降算法训练BP 网络。训练样本定义如下: 输入矢量为 p =[-1 -2 3 1 -1 1 5 -3] 目标矢量为t = [-1 -1 1 1] 解:本例的MATLAB 程序如下: close all clear echo on clc % NEWFF——生成一个新的前向神经网络% TRAIN——对BP 神经网络进行训练 % SIM——对BP 神经网络进行仿真pause % 敲任意键开始 clc % 定义训练样本 P=[-1, -2, 3, 1; -1, 1, 5, -3]; % P 为输入矢量T=[-1, -1, 1, 1]; % T 为目标矢量

clc % 创建一个新的前向神经网络 net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') % 当前输入层权值和阈值 inputWeights=net.IW{1,1} inputbias=net.b{1} % 当前网络层权值和阈值 layerWeights=net.LW{2,1} layerbias=net.b{2} pause clc % 设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 1000; net.trainParam.goal = 1e-3; pause clc % 调用TRAINGDM 算法训练BP 网络 [net,tr]=train(net,P,T);

Matlab训练好的BP神经网络如何保存和读取方法(附实例说明)

Matlab训练好的BP神经网络如何保存和读取方法(附实例说明) 看到论坛里很多朋友都在提问如何存储和调用已经训练好的神经网络。 本人前几天也遇到了这样的问题,在论坛中看了大家的回复,虽然都提到了关键的两个函数“save”和“load”,但或多或少都简洁了些,让人摸不着头脑(呵呵,当然也可能是本人太菜)。通过不断调试,大致弄明白这两个函数对神经网络的存储。下面附上实例给大家做个说明,希望对跟我有一样问题的朋友有所帮助。 如果只是需要在工作目录下保到当前训练好的网络,可以在命令窗口 输入:save net %net为已训练好的网络 然后在命令窗口 输入:load net %net为已保存的网络 加载net。 但一般我们都会在加载完后对网络进行进一步的操作,建议都放在M文件中进行保存网络和调用网络的操作 如下所示: %% 以函数的形式训练神经网络 functionshenjingwangluo() P=[-1,-2,3,1; -1,1,5,-3]; %P为输入矢量 T=[-1,-1,1,1,]; %T为目标矢量 net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm') %创建一个新的前向神经网络 inputWeights=net.IW{1,1} inputbias=net.b{1} %当前输入层权值和阀值 layerWeights=net.LW{2,1} layerbias=net.b{2} net.trainParam.show=50; net.trainParam.lr=0.05; net.trainParam.mc=0.9;

基于遗传算法的BP神经网络MATLAB代码

用遗传算法优化BP神经网络的Matlab编程实例(转) 由于BP网络的权值优化是一个无约束优化问题,而且权值要采用实数编码,所以直接利用Matlab遗传算法工具箱。以下贴出的代码是为一个19输入变量,1个输出变量情况下的非线性回归而设计的,如果要应用于其它情况,只需改动编解码函数即可。 程序一:GA训练BP权值的主函数 function net=GABPNET(XX,YY) %-------------------------------------------------------------------------- % GABPNET.m % 使用遗传算法对BP网络权值阈值进行优化,再用BP算法训练网络 %-------------------------------------------------------------------------- %数据归一化预处理 nntwarn off XX=[1:19;2:20;3:21;4:22]'; YY=[1:4]; XX=premnmx(XX); YY=premnmx(YY); YY %创建网络 net=newff(minmax(XX),[19,25,1],{'tansig','tansig','purelin'},'tra inlm'); %下面使用遗传算法对网络进行优化 P=XX; T=YY; R=size(P,1); S2=size(T,1); S1=25;%隐含层节点数 S=R*S1+S1*S2+S1+S2;%遗传算法编码长度 aa=ones(S,1)*[-1,1]; popu=50;%种群规模 save data2 XX YY % 是将 xx,yy 二个变数的数值存入 data2 这个MAT-file,initPpp=initializega(popu,aa,'gabpEval');%初始化种群 gen=100;%遗传代数

人工神经网络作业MATLAB仿真(共3篇)

人工神经网络作业M A T L A B 仿真(共3篇) -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

人工神经网络仿真作业(3篇) 人工神经网络仿真作业1: 三级倒立摆的神经网络控制 人工神经网络仿真作业2: 基于模型整体逼近的机器人RBF网络自适应控制 人工神经网络仿真作业3: 基于RBF的机械手无需模型自适应控制研究

神经网络仿真作业1:三级倒立摆的神经网络控制 摘要:建立了基于人工神经网络改进BP 算法的三级倒立摆的数学模型,并给 出了BP 网络结构,利用Matlab 软件进行训练仿真,结果表明,改进的BP 算法控制倒立摆精度高、收敛快,在非线性控制、鲁棒控制等领域具有良好的应用前景。 1.引言 倒立摆系统的研究开始于19世纪50年代,它是一个典型的非线性、高阶次、多变量、强耦合和绝对不稳定系统.许多抽象的控制概念,如系统的稳定性、可控性、系统的收敛速度和抗干扰能力都可以通过倒立摆直观地表现出来。随着现代控制理论的发展,倒立摆的研究对于火箭飞行控制和机器人控制等现代高科技的研究具有重要的实践意义。目前比较常见的倒立摆稳定控制方法有线性控制,如LQR,LQY 等;智能控制,如变论域自适应模糊控制,遗传算法,预测控制等。 2.系统的数学模型 2.1三级倒立摆的模型及参数 三级倒立摆主要由小车,摆1、摆2、摆3组成,它们之间自由链接。小车可以在水平导轨上左右平移,摆杆可以在铅垂平面内运动,将其置于坐标系后如图1 所示: 规定顺时针方向的转角和力矩均为正。此外,约定以下记号:u 为外界作用力,x 为小车位移,i (i =1,2,3)为摆i 与铅垂线方向的夹角, i O 分别为摆i 的链接点位置。其它的系统参数说明如下:

BP神经网络MATLAB代码

BP神经网络matlab代码 p=[284528334488;283344884554;448845542928;455429283497;29283497 2261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;]'; %====期望输出======= t=[4554292834972261692113913580445126363471385435562659... 4335288240841999288921752510340937293489317245684015... 3666]; ptest=[284528334488;283344884554;448845542928;455429283497;29283497 2261;... 349722616921;226169211391;692113913580;139135804451;35804451 2636;... 445126363471;263634713854;347138543556;385435562659;35562659 4335;... 265943352882;433528824084;433528821999;288219992889;19992889 2175;... 288921752510;217525103409;251034093729;340937293489;37293489 3172;... 348931724568;317245684015;456840153666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%将数据归一化 NodeNum1=20;%隐层第一层节点数 NodeNum2=40;%隐层第二层节点数 TypeNum=1;%输出维数 TF1='tansig'; TF2='tansig'; TF3='tansig'; net=newff(minmax(pn),[NodeNum1,NodeNum2,TypeNum],{TF1TF2 TF3},'traingdx');

BP神经网络matlab实例

神经网络Matlab p=p1';t=t1'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络 net.trainParam.show=2000; % 训练网络 net.trainParam.lr=0.01; net.trainParam.epochs=100000; net.trainParam.goal=1e-5; [net,tr]=train(net ,pn,tn); %调用TRAINGDM算法训练BP网络 pnew=pnew1'; pnewn=tramnmx(pnew,minp,maxp); anewn=sim(net,pnewn); %对BP网络进行仿真 anew=postmnmx(anewn,mint,maxt); %还原数据 y=anew'; 1、BP网络构建 (1)生成BP网络 = net newff PR S S SNl TF TF TFNl BTF BLF PF (,[1 2...],{ 1 2...},,,) R?维矩阵。 PR:由R维的输入样本最小最大值构成的2

S S SNl:各层的神经元个数。 [1 2...] TF TF TFNl:各层的神经元传递函数。 { 1 2...} BTF:训练用函数的名称。 (2)网络训练 = [,,,,,] (,,,,,,) net tr Y E Pf Af train net P T Pi Ai VV TV (3)网络仿真 = [,,,,] (,,,,) Y Pf Af E perf sim net P Pi Ai T {'tansig','purelin'},'trainrp' BP网络的训练函数 训练方法训练函数 梯度下降法traingd 有动量的梯度下降法traingdm 自适应lr梯度下降法traingda 自适应lr动量梯度下降法traingdx 弹性梯度下降法trainrp Fletcher-Reeves共轭梯度法traincgf Ploak-Ribiere共轭梯度法traincgp Powell-Beale共轭梯度法traincgb 量化共轭梯度法trainscg 拟牛顿算法trainbfg 一步正割算法trainoss Levenberg-Marquardt trainlm

神经网络与matlab仿真

神经网络与matlab仿真 摘要 随着技术的发展,人工神经网络在各个方面应用越来越广泛,由于matlab仿真技术对神经网络的建模起着十分重要的作用,因此,本文通过讨论神经网络中基础的一类——线性神经网络的matlab仿真,对神经网络的matlab仿真做一个基本的了解和学习。 关键词:人工神经网路matlab仿真线性神经网络 1 神经网络的发展及应用 人工神经网络(Artificial Neural Network,简称ANN)是一种高度并行的信息处理系统,它具有高度的容错性,自组织能力和自学习能力;它以神经科学的研究成果为基础,反映了人脑功能的若干基本特性,对传统的计算机结构和人工智能方法是一个有力的挑战,其目的在于探索人脑加工、储存和搜索信息的机制,进而应用于人工智能系统。 1.1 神经网络的研究历史及发展现状 神经网络的研究已有较长的历史。1943年,心理学家McCulloch和数学家Pitts合作提出形式(兴奋与抑制型)神经元的数学模型(MP模型),开创了神经科学理论研究的时代。1944年,Hebb提出了神经元连接强度的修改规则,它们至今仍在各种神经网络模型中起着重要作用。50年代末60年代初,开始了作为人工智能的网络系统的研究。1958年,F.Rosenblatt首次引进了模拟人脑感知和学习能力的感知器概念,它由阈值性神经元组成。1962年,B.Widrow提出的自适应线性元件(adaline),具有自适应学习功能,在信息处理、模式识别等方面受到重视和应用。在这期间,神经网络大都是单层线性网络。此时,人们对如何解决非线性分割问题很快有了明确的认识,但此时,计算机科学已被人工智能研究热潮所笼罩。80年代后,传统的数字计算机在模拟视听觉的人工智能方面遇到了物理上不能逾越的基线,此时,物理学家Hopfield提出了HNN模型,引入了能量函数的概念,给出了网络稳定性的判据,同时开拓了神经网络用于联想记忆和优化计算的新途径。神经网络的热潮再次掀起。此后,Feldmann和Ballard 的连接网络模型指出了传统的人工智能“计算”与生物的“计算”的不同点,给出了并行分布的计算原则;Hinton和Sejnowski提出的Boltzman机模型则急用了统计物理学的概念和方法,首次采用了多层网络的学习算法,保证整个系统趋于全局稳定点;Rumelhart和McClelland等人发展了多层网络的BP算法;Kosko提出了双向联想记忆网络;Hecht-Nielsen提出了另一种反向传播网络,可用于图像压缩和统计分析;Holland提出了分类系统类似于以规则为基础的专家系统。这些努力为神经网络的后期发展奠定了牢固的基础。 目前,神经网络在研究方向上已经形成多个流派,包括多层网络BP算法,Hopfield网络模型,自适应共振理论(ART),自组织特征映射理论等。1987年,IEEE在San Diego召开大规模的神经网络国际学术会议,国际神经网络学会也随之诞生。 迄今为止的神经网络研究。大体可分为三个大的方向:

matlab BP神经网络

基于MATLAB的BP神经网络工具箱函数 最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便[16]。Matlab R2007神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表3.1所示。 3.1.1BP网络创建函数 1) newff 该函数用于创建一个BP网络。调用格式为: net=newff net=newff(PR,[S1S2..SN1],{TF1TF2..TFN1},BTF,BLF,PF) 其中, net=newff;用于在对话框中创建一个BP网络。 net为创建的新BP神经网络; PR为网络输入向量取值范围的矩阵; [S1S2…SNl]表示网络隐含层和输出层神经元的个数; {TFlTF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’; BTF表示网络的训练函数,默认为‘trainlm’; BLF表示网络的权值学习函数,默认为‘learngdm’; PF表示性能数,默认为‘mse’。

2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。 3.1.2神经元上的传递函数 传递函数是BP网络的重要组成部分。传递函数又称为激活函数,必须是连续可微的。BP网络经常采用S型的对数或正切函数和线性函数。 1) logsig 该传递函数为S型的对数函数。调用格式为: A=logsig(N) info=logsig(code) 其中, N:Q个S维的输入列向量; A:函数返回值,位于区间(0,1)中; 2)tansig 该函数为双曲正切S型传递函数。调用格式为: A=tansig(N) info=tansig(code) 其中, N:Q个S维的输入列向量; A:函数返回值,位于区间(-1,1)之间。 3)purelin 该函数为线性传递函数。调用格式为: A=purelin(N) info=purelin(code) 其中, N:Q个S维的输入列向量; A:函数返回值,A=N。 3.1.3BP网络学习函数 1)learngd 该函数为梯度下降权值/阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。调用格式为: [dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) [db,ls]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)

BP神经网络matlab源程序代码

BP神经网络matlab源程序代码) %******************************% 学习程序 %******************************% %======原始数据输入======== p=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;]'; %===========期望输出======= t=[4554 2928 3497 2261 6921 1391 3580 4451 2636 3471 3854 3556 2659 ... 4335 2882 4084 1999 2889 2175 2510 3409 3729 3489 3172 4568 4015 ... 3666]; ptest=[2845 2833 4488;2833 4488 4554;4488 4554 2928;4554 2928 3497;2928 3497 2261;... 3497 2261 6921;2261 6921 1391;6921 1391 3580;1391 3580 4451;3580 4451 2636;... 4451 2636 3471;2636 3471 3854;3471 3854 3556;3854 3556 2659;3556 2659 4335;... 2659 4335 2882;4335 2882 4084;4335 2882 1999;2882 1999 2889;1999 2889 2175;... 2889 2175 2510;2175 2510 3409;2510 3409 3729;3409 3729 3489;3729 3489 3172;... 3489 3172 4568;3172 4568 4015;4568 4015 3666]'; [pn,minp,maxp,tn,mint,maxt]=premnmx(p,t); %将数据归一化 NodeNum1 =20; % 隐层第一层节点数 NodeNum2=40; % 隐层第二层节点数 TypeNum = 1; % 输出维数 TF1 = 'tansig';

基于MATLAB 的神经网络的仿真

智能控制 基于MATLAB 的神经网络的仿真 学院: 姓名: 学号: 年级: 学科:检测技术与自动化装置 日期:

一.引言 人工神经网络以其具有信息的分布存储、并行处理以及自学习能力等优点, 已经在模式识别、 信号处理、智能控制及系统建模等领域得到越来越广泛的应用。MATLAB中的神经网络工具箱是以人工神经网络理论为基础, 利用MATLAB 语言构造出许多典型神经网络的传递函数、网络权值修正规则和网络训练方法,网络的设计者可根据自己的需要调用工具箱中有关神经网络的设计与训练的程序, 免去了繁琐的编程过程。 二.神经网络工具箱函数 最新版的MATLAB 神经网络工具箱为Version4.0.3, 它几乎涵盖了所有的神经网络的基本常用类型,对各种网络模型又提供了各种学习算法,我们可以根据自己的需要调用工具箱中的有关设计与训练函数,很方便地进行神经网络的设计和仿真。目前神经网络工具箱提供的神经网络模型主要用于: 1.数逼近和模型拟合; 2.信息处理和预测; 3.神经网络控制; 4.故障诊断。 神经网络工具箱提供了丰富的工具函数,其中有针对某一种网络的,也有通用的,下面列表中给出了一些比较重要的工具箱函数。

三.仿真实例 BP 网络是一种多层前馈神经网络,由输入层、隐层和输出层组成。BP 网络模型结构见图1。网络同层节点没有任何连接,隐层节点可以由一个或多个。网络的学习过程由正向和反向传播两部分组成。在正向传播中,输入信号从输入层节点经隐层节点逐层传向输出层节点。每一层神经元的状态只影响到下一层神经元网络,如输出层不能得到期望的输出,那么转入误差反向传播过程,将误差信号沿原来的连接通路返回,通过修改各层神经元的权值,逐次地向输入层传播去进行计算,在经正向传播过程,这两个过程反复运用,使得误差信号最小或达到人们所期望的要求时,学习过程结束。

bp神经网络及matlab实现

bp神经网络及matlab实现 分类:算法学习2012-06-20 20:56 66399人阅读评论(28) 收藏举报网络matlab算法functionnetworkinput 本文主要内容包括:(1) 介绍神经网络基本原理,(2) https://www.doczj.com/doc/ee5203130.html,实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法。 第0节、引例 本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在https://www.doczj.com/doc/ee5203130.html,/wiki/Iris_flower_data_set 找到。这里简要介绍一下Iris数据集: 有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。 一种解决方法是用已有的数据训练一个神经网络用作分类器。 如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。 第一节、神经网络基本原理 1. 人工神经元( Artificial Neuron )模型 人工神经元是神经网络的基本元素,其原理可以用下图表示:

图1. 人工神经元模型 图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为: 图中yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为: 若用X表示输入向量,用W表示权重向量,即: X = [ x0 , x1 , x2 , ....... , xn ]

相关主题
文本预览
相关文档 最新文档