matlab-人工神经网络教学课件_第1页
matlab-人工神经网络教学课件_第2页
matlab-人工神经网络教学课件_第3页
matlab-人工神经网络教学课件_第4页
matlab-人工神经网络教学课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工神经网络

(ArtificialNeuralNetworks

-----ANN)

杨珂玲统计与应用数学系matlab_人工神经网络目录2、人工神经网络3、BP神经网络4、BP神经网络在实例中的应用1、引例matlab_人工神经网络1、引例

1981年生物学家格若根(W.Grogan)和维什(W.Wirth)发现了两类蚊子(或飞蠓midges).他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:翼长触角长类别

1.641.38Af1.821.38Af1.901.38Af1.701.40Af1.821.48Af1.821.54Af2.081.56Af翼长触角长类别1.781.14Apf1.961.18Apf1.861.20Apf1.721.24Af2.001.26Apf2.001.28Apf1.961.30Apf1.741.36Afmatlab_人工神经网络问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80);

(l.28,1.84);(1.40,2.04).问它们应分别属于哪一个种类?

解法一:

把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中6个蚊子属于APf类;用黑点“·”表示;9个蚊子属Af类;用小圆圈“。”表示.得到的结果见图1matlab_人工神经网络图1飞蠓的触角长和翼长

matlab_人工神经网络思路:作一直线将两类飞蠓分开

例如;取A=(1.44,2.10)和B=(1.10,1.16),过AB两点作一条直线:

y=1.47x-0.017,其中X表示触角长;y表示翼长.

分类规则:设一个蚊子的数据为(x,y),

如果y≥1.47x-0.017,则判断蚊子属Apf类;

如果y<1.47x-0.017;则判断蚊子属Af类.

matlab_人工神经网络分类结果:(1.24,1.80),(1.28,1.84)属于Af类;(1.40,2.04)属于Apf类.图2分类直线图matlab_人工神经网络•缺陷:根据什么原则确定分类直线?

若取A=(1.46,2.10),B=(1.1,1.6)不变,则分类直线变为y=1.39x+0.071分类结果变为:

(1.24,1.80),

(1.40,2.04)属于Apf类;

(1.28,1.84)属于Af类

哪一分类直线才是正确的呢?

因此如何来确定这个判别直线是一个值得研究的问题.一般地讲,应该充分利用已知的数据信息来确定判别直线.matlab_人工神经网络再如,如下的情形已经不能用分类直线的办法:

新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。matlab_人工神经网络2、人工神经网络

人工神经网络是由大量的、简单的处理单元(称为神经元)广泛地相互连接而形成的复杂网络系统,它反映了人脑功能的许多基本特征,是一个高度复杂的非线性动力学系统。2.1人工神经网络概述matlab_人工神经网络2.2神经网络的研究内容

(1)生物原型研究:研究神经细胞、神经网络、神经系统的生物原型结构及其功能机理。(2)建立理论模型:根据生物圆形的研究,建立神经元、神经网络的理论模型,其中包括概念模型、知识模型、物理化学模型、数学模型等。(3)网络模型与算法研究:在理论模型研究的基础上构成具体的神经网络模型,以实现计算机模拟或准备制作硬件,包括网络学习算法的研究。(4)神经网络应用系统:在网络模型与算法研究的基础上,利用神经网络组成实际的应用系统。matlab_人工神经网络2.3神经网络的应用神经网络理论特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、等方面都有重大的应用实例。下面列出一些主要应用领域:(1)模式识别和图像处理。印刷体和手写字符识别、语音识别、指纹识别、人体病理分析、目标检测与识别、图像压缩和图像复制等。(2)控制和优化。机器人运动控制、半导体生产过程控制、石油精炼优化控制、超大规模集成电路布线设计等。matlab_人工神经网络(3)预报和智能信息管理。股票市场预测、地震预报、借贷风险分析、IC卡管理和交通管理。(4)通信。自适应均衡、回波抵消、路由选择和ATM网络中的呼叫接纳识别和控制。(5)空间科学。空间交汇对接控制、导航信息智能管理、飞行器制导和飞行程序优化管理等。matlab_人工神经网络2.4神经元与神经网络结构

大脑可视作为1000多亿神经元组成的神经网络

图1神经元的解剖图matlab_人工神经网络神经元的信息传递和处理是一种电化学活动。树突由于电化学作用接受外界的刺激;通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程matlab_人工神经网络2.5神经网络基本模型matlab_人工神经网络归纳一下生物神经元传递信息的过程:生物神经元是一个多输入、单输出单元。常用的人工神经元模型可用图2模拟。图2人工神经元(感知器)示意图

matlab_人工神经网络当神经元j有多个输入

(i=1,2,…,m)和单个输出时,输入和输出的关系可表示为:

其中

为阈值,

为从神经元i到神经元j的连接权重因子,f()为传递函数,或称激励函数。matlab_人工神经网络例如,若记

取激发函数为符号函数

matlab_人工神经网络则

S型激发函数:

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

目前,在人工神经网络的实际应用中。绝大部分的神经网络模型都采用BP神经网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。BP网络主要用于以下四方面:

1)函数逼近:用输入向量和相应的输出向量训练一个网络以逼近一个函数。

2)模式识别:用一个待定的输出向量将它与输入向量联系起来。

3)分类:把输入向量所定义的合适方式进行分类。

4)数据压缩:减少输出向量维数以便传输或存储。matlab_人工神经网络3.3BP神经网络模型结构

BP神经元模型

matlab_人工神经网络

上图给出一个基本的BP神经元模型,它具有R个输入,每个输入都通过一个适当的权值w和上一层相连,网络输出可表示为:

a=f(w*p+b)f就是表示输入/输出关系的传递函数。BP网络中隐层神经元的传递函数通常用log-sigmoid型函数logsig()、tan-sigmoid型函数tansig()以及纯线性函数purelin()。如果BP网络的最后一层是sigmoid型神经元,那么整个网络的输出就限制在一个较小的范围内;如果BP网络的最后一层是purelin型线性神经元,那么整个网络的输出可以取任意值。

下图(上半部)是一个典型的BP网络结构。具有S个神经元,R个输入和S个输出,神经元采用S型传递函数logsig()。可见,就单层网络而言,除传递函数不同外,与前面所介绍的感知器和线性神经网络没有什么不同。matlab_人工神经网络matlab_人工神经网络

上图(下半部)是一个典型两层BP网络(一个隐层和一个输出层)。前馈型网络通常有一个或多个隐层,隐层中的神经元均采用S型传递函数,输出层的神经采用线性传递函数。隐层的非线性传递函数神经元可以学习输入输出之间的线性和非线性关系,线性输出层是为了拓宽网络输出。如果需要限定网络输出(例如约束在0和1之间),则可以采用S型传递函数(例如logsig())。

matlab_人工神经网络

3.4BP神经网络的训练过程

BP神经网络拓扑结构图matlab_人工神经网络matlab_人工神经网络matlab_人工神经网络3.5基于MATLAB的BP神经网络工具箱函数

最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。MatlabR2007神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表1所示。matlab_人工神经网络表1BP网络的常用函数表函数类型函数名称函数用途前向网络创建函数newcf创建级联前向网络Newff创建前向BP网络传递函数logsigS型的对数函数tansigS型的正切函数purelin纯线性函数

学习函数learngd基于梯度下降法的学习函数learngdm梯度下降动量学习函数性能函数mse均方误差函数msereg均方误差规范化函数

显示函数plotperf绘制网络的性能plotes绘制一个单独神经元的误差曲面plotep绘制权值和阈值在误差曲面上的位置errsurf计算单个神经元的误差曲面matlab_人工神经网络3.5.1BP网络创建函数1)newff该函数用于创建一个BP网络。调用格式为:net=newffnet=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函数用于创建一个存在输入延迟的前向网络。matlab_人工神经网络3.5.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。matlab_人工神经网络3.5.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函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。matlab_人工神经网络3.5.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算法函数。matlab_人工神经网络3.6BP神经网络在实例中的应用%输入两种飞蠓的参数p=[1.781.961.861.722.002.001.961.741.641.821.901.701.821.822.08;1.141.181.201.241.261.281.301.361.381.381.381.401.481.541.56];t=[111011100000000];%两种飞蠓的类别plot(p(1,find(t>0.5)),p(2,find(t>0.5)),'o');holdon;plot(p(1,find(t<=0.5)),p(2,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);%对网络进行训练估计出参数matlab_人工神经网络pp=[1.801.842.04;1.241.281.40];%输入需要判别三只飞蠓参数y=sim(net,pp);%利用已训练好的网络识别三只飞蠓plot(pp(1,find(y>0.5)),pp(2,find(y>0.5)),'ro');plot(pp(1,find(y<=0.5)),pp(2,find(y<=0.5)),‘r*’);%画出三只飞蠓的分布图plot([1.72.1],[1.11.5],‘k’)%画出判别直线Matlab运行matlab_人工神经网络

要求设计一个BP网络,逼近以下函数:g(x)=1+sin(k*pi/4*x),实现对该非线性函数的逼近。其中,分别令k=1,2,4进行仿真,通过调节参数(如隐藏层节点个数等)得出信号的频率与隐层节点之间,隐层节点与函数逼近能力之间的关系。3.6BP神经网络在实例中的应用3.6.1问题的提出matlab_人工神经网络3.6.2基于BP神经网络逼近函数步骤1:假设频率参数k=1,绘制要逼近的非线性函数的曲线。函数的曲线如下图所示:k=1;p=[-1:.05:8];t=1+sin(k*pi/4*p);plot(p,t,'-');title('要逼近的非线性函数');xlabel('时间');ylabel('非线性函数');Matlab实现matlab_人工神经网络步骤2:网络的建立

应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,暂设为n=3,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练的算法采用Levenberg–Marquardt算法trainlm。n=3;net=newff(minmax(p),[n,1],{'tansig''purelin'},'trainlm');对于初始网络,可以应用sim()函数观察网络输出。y1=sim(net,p);figure;plot(p,t,'-',p,y1,':')title('未训练网络的输出结果');xlabel('时间');ylabel('仿真输出--原函数-');Matlab实现matlab_人工神经网络其中“——”代表要逼近的非线性函数曲线;“‥‥‥”代表未经训练的函数曲线;因为使用newff()函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也有时不同。ma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论