《MATLAB神经网络工具箱函数.ppt》由会员分享,可在线阅读,更多相关《MATLAB神经网络工具箱函数.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1计算智能计算智能课程实验课程实验课程性质、目的与培养要求l 计算智能课程是信息与计算科学专业的专业选修课之一,由课堂教学、上机实习并撰写实验报告等环节组成。本课程系统地讲授计算智能的有关理论、技术及其主要应用,全面地介绍计算智能研究的前沿领域与最新进展。要求熟练掌握人工神经网络、遗传算法、模糊推理与控制的基本理论与算法,能够以Matlab软件的相关工具箱为基础,编程解决一部分实际问题。2实验项目编号实验项目名称1神经网络工具箱函数学习2感知器神经网络3BP神经网络*4BP神经网络的非线性函数拟合*5遗传算法求解函数的最大值34一、一、MATLAB神经网络神经网络工具箱函数工具箱函数 51、神
2、经元是组成人脑的最基本单元人工神经网络模仿人脑的生理构造和信息处理 的过程,模拟人类的智慧l神神经经元元是是构构成成神神经经网网络络的的最最基基本本单单元元(构件)。(构件)。l人工神经元模型应该具有生物神经元的人工神经元模型应该具有生物神经元的基本特性。基本特性。人工神经元模型人工神经元模型人工神经元模型人工神经元模型网络结构网络结构神经元的层神经元的层输入输入输入输入S S个神经元的层个神经元的层个神经元的层个神经元的层输入输入输入输入第第第第1 1层层层层第第第第2 2层层层层第第第第3 3层层层层多层神经网络(多层神经网络(3 3层)层)a1=f 1(W1p+b1)a2=f 2(W2p
3、+b2)a3=f 3(W3p+b3)p10 利用神经网络能解决许多用传统方法无法解决的问题。神经网络在很多领域中都有应用,以实现各种复杂的功能。这些领域包括商业及经济估算、自动检测和监视、计算机视觉、语音处理、机器人及自动控制、优化问题、航空航天、银行金融业、工业生产等。而神经网络是一门发展很快的学科,其应用领域也会随着其发展有更大的拓宽。11 本章将介绍MATLAB神经网络工具箱的应用。在MATLAB神经网络工具箱中提供了丰富的演示实例,用MATLAB语言构造了典型神经网络的激活函数,编写了各种网络设计与训练的子程序,网络的设计者可以根据自己的需要去调用工具箱中有关神经网络的设计训练程序,使
4、自己能够从繁琐的编程中解脱出来。12 MATLAB神经网络工具箱提供了许多进行神经网络设计和分析的工具函数,这些函数的MATLAB实现,使得设计者对所选定网络进行计算的过程,转变为对函数的调用和参数的选择,这给用户带来了极大的方便,即使不了解算法的本质,也可以直接应用功能丰富的函数来实现自己的目的。有关这些工具函数的使用可以通过help命令得到,本章将对这些函数的功能、调用格式,以及使用方法做详细的介绍。1.1 MATLAB神经网络工具箱函数13 随着MATLAB软件的版本提高,其对应的神经网络工具箱的内容越来越丰富,它包括了很多现有的神经网络的新成果,涉及的网络模型有,感知机网络、线性神经网
5、络、BP神经网络、径向基神经网络、自组织神经网络、学习向量量化神经网络、Elman神经网络、Hopfield神经网络、自适应滤波和控制系统网络等。14 神经网络工具箱提供了很多经典的学习算法,使用它能够快速地实现对实际问题的建模求解。由于其编程简单,这样就给使用者节省了大量的编程时间,使其能够把更多的精力投入到网络设计而不是具体程序实现上。l实验的目的和要求 了解神经网络工具箱中的通用函数l实验性质:验证实验 验证函数的用法l实验内容:搜索资料,了解并熟悉神经网络工具箱中的通用函数的用法 1516神经网络工具箱中的通用函数神经网络工具箱中的通用函数 MATLAB神经网络工具箱中提供的函数主要分
6、为两大部分。一部分函数是通用的,这些函数几乎可以用于所有类型的神经网络,如神经网络的初始化函数init()、训练函数train()和仿真函数sim()等;另一部分函数则是特别针对某一种类型的神经网络的,如对感知机神经网络进行建立的函数simup()等。表1-1列出了一些通用函数的名称和基本功能。(输入 help nnet)17表1-1 神经网络的通用函数和功能函数名函数名功功 能能init()初始化一个神经网络initlay()层-层结构神经网络的初始化函数initwb()神经网络某一层的权值和偏值初始化函数initzero()将权值设置为零的初始化函数train()神经网络训练函数adapt
7、()神经网络自适应训练函数sim()神经网络仿真函数dotprod()权值点积函数normprod()规范点积权值函数netsum()输入求和函数netprod()网络输入的积函数concur()结构一致函数181.初始化神经网络函数初始化神经网络函数init()利用初始化神经网络函数init()可以对一个已存在的神经网络进行初始化修正,该网络的权值和偏值是按照网络初始化函数来进行修正的。其调用格式为:net=init(NET)2.神经网络某一层的初始化函数神经网络某一层的初始化函数initlay()初始化函数initlay()特别适用于层-层结构神经网络的初始化,该网络的权值和偏值是按照网络
8、初始化函数来进行修正的。其调用格式为:net=initlay(NET)193.神经网络某一层的权值和偏值初始化函数神经网络某一层的权值和偏值初始化函数initwb()利用初始化函数initwb()可以对一个已存在的神经网络的NET某一层i的权值和偏值进行初始化修正,该网络对每层的权值和偏值是按照设定的每层的初始化函数来进行修正的。其调用格式为:net=initwb(NET,i)4.神经网络训练函数神经网络训练函数train()利用train()函数可以训练一个神经网络。网络训练函数是一种通用的学习函数,训练函数重复地把一组输入向量应用到一个网络上,每次都更新网络,直到达到了某种准则。停止准则可
9、能是最大的学习步数、最小的误差梯度或者是误差目标等,调用格式为:net,tr,Y,E,Xf,Af=train(NET,X,T,Xi,Ai)205.网络自适应训练函数网络自适应训练函数adapt()另一种通用的训练函数是自适应函数adapt()。自适应函数在每一个输入时间阶段更新网络时仿真网络,而这在进行下一个输入的仿真前完成,其调用格式为:net,Y,E,Xf,Af,tr=adapt(NET,X,T,Xi,Ai)6.网络仿真函数网络仿真函数sim()神经网络一旦训练完成,网络的权值和偏值就已经确定了。于是就可以使用它来解决实际问题了。利用sim()函数可以仿真一个神经网络的性能。其调用格式为:
10、Y,Xf,Af,E,perf=sim(net,X,Xi,Ai,T)或 Y,Xf,Af,E,perf=sim(net,Q Ts,Xi,Ai)217.权值点积函数权值点积函数dotprod()网络输入向量与权值的点积可得到加权输入。函数dotprod()的调用格式为:Z=dotprod(W,X)式中,W为SR维的权值矩阵;X为Q组R维的输入向量;Z为Q组S维的W与X 的点积。8.网络输入的和函数网络输入的和函数netsum()网络输入的和函数是通过某一层的加权输入和偏值相加作为该层的输入。调用格式:Z=netprod(Z1,Z2,)式中,Zi为SQ维矩阵。229.网络输入的积函数网络输入的积函数n
11、etprod()网络输入的积函数是通过某一层的加权输入和偏值相乘作为该层的输入。调用格式:Z=netprod(Z1,Z2,)式中,Zi为SQ维矩阵。10.结构一致函数结构一致函数concur()函数concur()的作用在于使得本来不一致的权值向量和偏值向量的结构一致,以便于进行相加或相乘运算,其调用格式为:Z=concur(b,q)式中,b为N1维的权值向量;q为要达到一致化所需要的长度;Z为一个已经一致化了的矩阵。23例例1-1 利用netsum()函数和netprod()函数,对两个加权输入向量Z1和Z2进行相加和相乘。解解 MATLAB的程序如下。Z1=1 2 4;3 4 1;Z2=-
12、1 2 2;-5-6 1;%提供两个加权输入向量b=0;-1;q=3;%权值向量和一致化所需要的长度Z=concur(b,q)%计算一致化了的矩阵X1=netsum(Z1,Z2),X2=netprod(Z1,Z2)%计算向量的和与积结果显示:Z=0 0 0 -1 -1 -1X1=0 4 6 -2 -2 2X2=-1 4 8 -15 -24 1 linit(net)l功能功能l在matlab中init 用于初始化神经网络 语法语法lnet=init(net)性质性质linit(net)根据最新的网络初始化函数返回神经网络的权值和误差,其结果由,和参数值,影响24l 示例示例l在这里,我们创建一个
13、双输入(范围在0到1,和-2到2)单神经元感知器。而一旦建立了模型我们就可以得到其权值和阈值。lnet=newp(0 1;-2 2,1);lnet.iw1,1 lnet.b1 l对感知器进行训练,改变其权值和阈值。lP=0 1 0 1;0 0 1 1;lT=0 0 0 1;lnet=train(net,P,T);lnet.iw1,1 lnet.b1 l25l重新将权值和阈值初始化。lnet=init(net);lnet.iw1,1 lnet.b1 l上面最后的命令已经将权值和阈值重新归零,这就是 init函数在感知器中的应用。l 说明说明linit函数根据参数值调用对权值和阈值进行初始化。通常情况下,设置为initlay,根据其net.layersi.initFcn.初始化每一层的权值和阈值。反向传播网络(BP网络),将net.layersi.initFcn 设置为“initnw,使用Nguyen-Widrow 方法初始化第i层的权值和阈值。其他类型的网络,将net.layersi.initFcn 设置为 initwb,用其自带的初始化函数初始化权值和阈值。最常见的权值的初始化结果是随机数,随机产生于-1到1之间。26
限制150内