matlab-人工神经网络.ppt

上传人:牧羊曲112 文档编号:5438860 上传时间:2023-07-07 格式:PPT 页数:48 大小:831.50KB
返回 下载 相关 举报
matlab-人工神经网络.ppt_第1页
第1页 / 共48页
matlab-人工神经网络.ppt_第2页
第2页 / 共48页
matlab-人工神经网络.ppt_第3页
第3页 / 共48页
matlab-人工神经网络.ppt_第4页
第4页 / 共48页
matlab-人工神经网络.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《matlab-人工神经网络.ppt》由会员分享,可在线阅读,更多相关《matlab-人工神经网络.ppt(48页珍藏版)》请在三一办公上搜索。

1、人工神经网络(Artificial Neural Networks-ANN),杨珂玲统计与应用数学系,目录,2、人工神经网络,3、BP神经网络,4、BP神经网络在实例中的应用,1、引例,1、引例,1981年生物学家格若根(W Grogan)和维什(WWirth)发现了两类蚊子(或飞蠓midges)他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:,翼长 触角长 类别 1.64 1.38 Af 1.82 1.38 Af 1.90 1.38 Af 1.70 1.40 Af 1.82 1.48 Af 1.82 1.54 Af 2.08 1.56 Af,翼长 触角长 类别1.78 1.14 Apf

2、1.96 1.18 Apf1.86 1.20 Apf1.72 1.24 Af2.00 1.26 Apf2.00 1.28 Apf1.96 1.30 Apf1.74 1.36 Af,问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80);(l.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类?,解法一:,把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“”表示;9个蚊子属 Af类;用小圆圈“。”表示得到的结果见图1,图1 飞蠓的触角长和翼长,思路:作一直线将两类飞蠓分开,例如;取A(1.44,

3、2.10)和 B(1.10,1.16),过A B两点作一条直线:y 1.47x-0.017,其中X表示触角长;y表示翼长,分类规则:设一个蚊子的数据为(x,y),如果y1.47x-0.017,则判断蚊子属Apf类;如果y1.47x-0.017;则判断蚊子属Af类,分类结果:(1.24,1.80),(1.28,1.84)属于Af类;(1.40,2.04)属于 Apf类,图2 分类直线图,缺陷:根据什么原则确定分类直线?,若取A=(1.46,2.10),B=(1.1,1.6)不变,则分类直线变为 y=1.39x+0.071,分类结果变为:(1.24,1.80),(1.40,2.04)属于Apf类;

4、(1.28,1.84)属于Af类,哪一分类直线才是正确的呢?,因此如何来确定这个判别直线是一个值得研究的问题一般地讲,应该充分利用已知的数据信息来确定判别直线,再如,如下的情形已经不能用分类直线的办法:,新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。,2、人工神经网络,人工神经网络是由大量的、简单的处理单元(称为神经元)广泛地相互连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。,2.1 人工神经网络概述,2.2 神经网络的研究内容,(1)生物原型研究:研究神经细胞、神经网络、神经系统的生物原型结构及其功能机

5、理。(2)建立理论模型:根据生物圆形的研究,建立神经元、神经网络的理论模型,其中包括概念模型、知识模型、物理化学模型、数学模型等。(3)网络模型与算法研究:在理论模型研究的基础上构成具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。(4)神经网络应用系统:在网络模型与算法研究的基础上,利用神经网络组成实际的应用系统。,2.3 神经网络的应用,神经网络理论特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、等方面都有重大的应用实例。下面列出一些主要应用领域:(1)模式识别和图像处理。印刷体和手写字符识别、语音识别、指纹识别、人体病理分析、目标检测与识别、

6、图像压缩和图像复制等。(2)控制和优化。机器人运动控制、半导体生产过程控制、石油精炼优化控制、超大规模集成电路布线设计等。,(3)预报和智能信息管理。股票市场预测、地震预报、借贷风险分析、IC卡管理和交通管理。(4)通信。自适应均衡、回波抵消、路由选择和ATM网络中的呼叫接纳识别和控制。(5)空间科学。空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。,2.4 神经元与神经网络结构,大脑可视作为1000多亿神经元组成的神经网络,图1 神经元的解剖图,神经元的信息传递和处理是一种电化学活动。树突由于电化学作用接受外界的刺激;通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值

7、则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程,2.5 神经网络基本模型,归纳一下生物神经元传递信息的过程:生物神经元是一个多输入、单输出单元。常用的人工神经元模型可用图2模拟。,图2 人工神经元(感知器)示意图,当神经元j有多个输入(i=1,2,m)和单个输出 时,输入和输出的关系可表示为:,其中 为阈值,为从神经元i到神经元j的连接权重因子,f()为传递函数,或称激励函数。,例如,若记,取激发函数为符号函数,则,S型激发函数:,2.6 神经网络分类,神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络

8、、互连网络等四种结构,其神经网络模型有感知器网络,线性神经网络,BP神经网络,径向基函数网络,反馈神经网络等,本文主要学习研究了BP神经网络,以及BP神经网络在函数逼近和样本含量估计等实例中的应用分析。,3、BP神经网络(Back Propagation network),3.1 BP神经网络概述,BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传递。在前向传递中,输入信号从输入层经隐 含层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出,则转入反向传播,根据预测误差调整网络权值和阀值,从而使BP神经网络预测输出不断逼近期望输

9、出。,3.2 BP神经网络的主要应用,目前,在人工神经网络的实际应用中。绝大部分的神经网络模型都采用BP神经网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。BP网络主要用于以下四方面:1)函数逼近:用输入向量和相应的输出向量训练一个网络以逼近一个函数。2)模式识别:用一个待定的输出向量将它与输入向量联系起来。3)分类:把输入向量所定义的合适方式进行分类。4)数据压缩:减少输出向量维数以便传输或存储。,3.3 BP神经网络模型结构,BP神经元模型,上图给出一个基本的BP神经元模型,它具有R个输入,每个输入都通过一个适当的权值w和上一层相连,网络输出可表示为:a=f(w*p+

10、b)f就是表示输入/输出关系的传递函数。BP网络中隐层神经元的传递函数通常用log-sigmoid型函数logsig()、tan-sigmoid型函数tansig()以及纯线性函数purelin()。如果BP网络的最后一层是sigmoid型神经元,那么整个网络的输出就限制在一个较小的范围内;如果BP网络的最后一层是purelin型线性神经元,那么整个网络的输出可以取任意值。,下图(上半部)是一个典型的BP网络结构。具有S个神经元,R个输入和S个输出,神经元采用S型传递函数logsig()。可见,就单层网络而言,除传递函数不同外,与前面所介绍的感知器和线性神经网络没有什么不同。,上图(下半部)是

11、一个典型两层BP网络(一个隐层和一个输出层)。前馈型网络通常有一个或多个隐层,隐层中的神经元均采用S型传递函数,输出层的神经采用线性传递函数。隐层的非线性传递函数神经元可以学习输入输出之间的线性和非线性关系,线性输出层是为了拓宽网络输出。如果需要限定网络输出(例如约束在0和1之间),则可以采用S型传递函数(例如logsig()。,3.4 BP神经网络的训练过程,BP神经网络拓扑结构图,3.5 基于MATLAB的BP神经网络工具箱函数,最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的

12、方便。Matlab R2007神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表1所示。,表1 BP网络的常用函数表,3.5.1 BP网络创建函数,1)newff该函数用于创建一个BP网络。调用格式为:net=newffnet=newff(PR,S1 S2.SN1,TF1 TF2.TFN1,BTF,BLF,PF)其中:net=newff;用于在对话框中创建一个BP网络。net为创建的新BP神经网络;PR为网络输入向量取值范围的矩阵;S1 S2SNl表示网络隐含层和输出层神经元的个数;TFl TF2TFN1表示网络隐含层和输出层的传输函数,默认为tansig;BTF表

13、示网络的训练函数,默认为trainlm;BLF表示网络的权值学习函数,默认为learngdm;PF表示性能数,默认为mse。2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。,3.5.2 神经元上的传递函数,传递函数是BP网络的重要组成部分。传递函数又称为激活函数,必须是连续可微的。BP网络经常采用S型的对数或正切函数和线性函数。1)logsig:该传递函数为S型的对数函数。调用格式为:A=logsig(N)info=logsig(code)其中,N:Q个S维的输入列向量;A:函数返回值,位于区间(0,1);2)tansig:该函数为双曲正切S型

14、传递函数。调用格式为: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.5.3 BP网络学习函数,1)learngd该函数为梯度下降权值/阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。调用格式为:dW,ls=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)db,ls=learn

15、gd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)info=learngd(code)2)learngdm函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。,3.5.4 BP网络训练函数,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函数为梯度下降

16、动量BP算法函数。,3.6 BP神经网络在实例中的应用,%输入两种飞蠓的参数p=1.78 1.96 1.86 1.72 2.00 2.00 1.96 1.74 1.64 1.82 1.90 1.70 1.82 1.82 2.08;1.14 1.18 1.20 1.24 1.26 1.28 1.30 1.36 1.38 1.38 1.38 1.40 1.48 1.54 1.56;t=1 1 1 0 1 1 1 0 0 0 0 0 0 0 0;%两种飞蠓的类别plot(p(1,find(t0.5),p(2,find(t0.5),o);hold on;plot(p(1,find(t=0.5),p(2

17、,find(t=0.5),*);%画出两种飞蠓的分布图%建立一个具有两层的神经网络net=newff(minmax(p),2,1,tansig,purelin);%设置训练参数net.trainparam.show=50;net.trainparam.epochs=300;net.trainparam.goal=1e-2;net=train(net,p,t);%对网络进行训练估计出参数,pp=1.80 1.84 2.04;1.24 1.28 1.40;%输入需要判别三只飞蠓参数y=sim(net,pp);%利用已训练好的网络识别三只飞蠓plot(pp(1,find(y0.5),pp(2,fin

18、d(y0.5),ro);plot(pp(1,find(y=0.5),pp(2,find(y=0.5),r*);%画出三只飞蠓的分布图plot(1.7 2.1,1.1 1.5,k)%画出判别直线,Matlab运行,要求设计一个BP网络,逼近以下函数:g(x)=1+sin(k*pi/4*x),实现对该非线性函数的逼近。其中,分别令k=1,2,4进行仿真,通过调节参数(如隐藏层节点个数等)得出信号的频率与隐层节点之间,隐层节点与函数逼近能力之间的关系。,3.6 BP神经网络在实例中的应用,3.6.1 问题的提出,3.6.2 基于BP神经网络逼近函数,步骤1:假设频率参数k=1,绘制要逼近的非线性函数

19、的曲线。函数的曲线如下图所示:k=1;p=-1:.05:8;t=1+sin(k*pi/4*p);plot(p,t,-);title(要逼近的非线性函数);xlabel(时间);ylabel(非线性函数);,Matlab实现,步骤2:网络的建立 应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,暂设为n=3,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练的算法采用Levenberg Marquardt算法trainlm。,n=3;net=newff(minmax(p),n,1,tansig purelin,trainlm);

20、对于初始网络,可以应用sim()函数观察网络输出。y1=sim(net,p);figure;plot(p,t,-,p,y1,:)title(未训练网络的输出结果);xlabel(时间);ylabel(仿真输出-原函数-);,Matlab实现,其中“”代表要逼近的非线性函数曲线;“”代表未经训练的函数曲线;因为使用newff()函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也有时不同。,步骤3:网络训练应用train()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为50,训练精度设置为0.01,其余参数使用缺省值

21、。训练后得到的误差变化过程如图3.4所示。,net.trainParam.epochs=50;(网络训练时间设置为50)net.trainParam.goal=0.01;(网络训练精度设置为0.01)net=train(net,p,t);(开始训练网络)从以上结果可以看出,网络训练速度很快,经过一次循环跌送过程就达到了要求的精度0.01。,Matlab实现,训练过程输出图,步骤4:网络测试对于训练好的网络进行仿真:y2=sim(net,p);figure;plot(p,t,-,p,y1,:,p,y2,-)title(训练后网络的输出结果);xlabel(时间);ylabel(仿真输出);绘制网络输出曲线,并与原始非线性函数曲线以及未训练网络的输出结果曲线相比较,比较出来的结果如图所示。,Matlab实现,其中“”代表要逼近的非线性函数曲线;“”代表未经训练的函数曲线;“”代表经过训练的函数曲线;,从图中可以看出,得到的曲线和原始的非线性函数曲线很接近。这说明经过训练后,BP网络对非线性函数的逼近效果比较好。,训练后网络的输出结果图,当频率参数设为k=2,当隐层神经元数目分别取n=3、n=6时,得到了训练后的网络输出结果如下图所示:,当n=3时训练后网络的输出结果,当n=6时训练后网络的输出结果,例2:BP神经网络的数据分类,语音特征信号分类,例3:BP网络在样本含量估计中的应用,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号