




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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
2、 Apf 1.96 1.18 Apf 1.86 1.20 Apf 1.72 1.24 Af 2.00 1.26 Apf 2.00 1.28 Apf 1.96 1.30 Apf 1.74 1.36 Af,问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80); (l.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类?,解法一:,把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“”表示;9个蚊子属 Af类;用小圆圈“。”表示 得到的结果见图1,图1 飞蠓的触角长和翼长,思路:作一直线将两类飞蠓分
3、开,例如;取A(1.44,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.2
4、4,1.80), (1.40,2.04) 属于Apf类; (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
8、.6 神经网络分类,神经网络有分层网络、层内连接的分层网络、反馈连接的分层网络、互连网络等四种结构,其神经网络模型有感知器网络,线性神经网络,BP神经网络,径向基函数网络,反馈神经网络等,本文主要学习研究了BP神经网络,以及BP神经网络在函数逼近和样本含量估计等实例中的应用分析。,3、BP神经网络(Back Propagation network),3.1 BP神经网络概述,BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传递。在前向传递中,输入信号从输入层经隐 含层逐层处理,直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出,则转入反向
9、传播,根据预测误差调整网络权值和阀值,从而使BP神经网络预测输出不断逼近期望输出。,3.2 BP神经网络的主要应用,目前,在人工神经网络的实际应用中。绝大部分的神经网络模型都采用BP神经网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。BP网络主要用于以下四方面: 1)函数逼近:用输入向量和相应的输出向量训练一个网络以逼近一个函数。 2)模式识别:用一个待定的输出向量将它与输入向量联系起来。 3)分类:把输入向量所定义的合适方式进行分类。 4)数据压缩:减少输出向量维数以便传输或存储。,3.3 BP神经网络模型结构,BP神经元模型,上图给出一个基本的BP神经元模型,它具有R
10、个输入,每个输入都通过一个适当的权值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() 。可见,就
11、单层网络而言,除传递函数不同外,与前面所介绍的感知器和线性神经网络没有什么不同。,上图(下半部) 是一个典型两层BP网络 (一个隐层和一个输出层)。前馈型网络通常有一个或多个隐层,隐层中的神经元均采用S型传递函数,输出层的神经采用线性传递函数。隐层的非线性传递函数神经元可以学习输入输出之间的线性和非线性关系,线性输出层是为了拓宽网络输出。如果需要限定网络输出(例如约束在0和1之间),则可以采用S型传递函数(例如logsig()。,3.4 BP神经网络的训练过程,BP神经网络拓扑结构图,3.5 基于MATLAB的BP神经网络工具箱函数,最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模
12、型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便。Matlab R2007神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表1所示。,表1 BP网络的常用函数表,3.5.1 BP网络创建函数,1) newff 该函数用于创建一个BP网络。调用格式为: net=newff net=newff(PR,S1 S2.SN1,TF1 TF2.TFN1,BTF,BLF,PF)其中: net=newff;用于在对话框中创建一个BP网络。 net为创建的新BP神经网络; PR为网络输入向量取值范围的矩阵; S1 S2SNl表
13、示网络隐含层和输出层神经元的个数; TFl TF2TFN1表示网络隐含层和输出层的传输函数,默认为tansig; BTF表示网络的训练函数,默认为trainlm; BLF表示网络的权值学习函数,默认为learngdm; PF表示性能数,默认为mse。 2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。,3.5.2 神经元上的传递函数,传递函数是BP网络的重要组成部分。传递函数又称为激活函数,必须是连续可微的。BP网络经常采用S型的对数或正切函数和线性函数。 1) logsig:该传递函数为S型的对数函数。调用格式为: A=logsig(N) in
14、fo=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.5.3 BP网络学习函数,1)learngd 该函数为梯度下降权值/阈值学习函数,它通过神经元的输入和误差,以及权值和阈值
15、的学习效率,来计算权值或阈值的变化率。调用格式为: 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.5.4 BP网络训练函数,1)train 神经网络训练函数,调用其他训练函数,对网络进行训练。该函数的调用格式为: net,tr,Y,E,Pf,Af=train(NET,P,T,Pi
16、,Ai) net,tr,Y,E,Pf,Af=train(NET,P,T,Pi,Ai,VV,TV) 2) traingd函数为梯度下降BP算法函数。traingdm函数为梯度下降动量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
17、 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,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
18、.80 1.84 2.04;1.24 1.28 1.40;%输入需要判别三只飞蠓参数 y=sim(net,pp);%利用已训练好的网络识别三只飞蠓 plot(pp(1,find(y0.5),pp(2,find(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进行仿真,通过调节参数(如隐藏层节点个数等)得出
19、信号的频率与隐层节点之间,隐层节点与函数逼近能力之间的关系。,3.6 BP神经网络在实例中的应用,3.6.1 问题的提出,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实现,步骤2:网络的建立 应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,暂设为n=3,输出层有一个神经元。选择隐层和输出层神经元传递函数分
20、别为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实现,其中 “ ” 代表要逼近的非线性函数曲线; “” 代表未经训练的函数曲线; 因为使用newff( )函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也有时不同。,步骤3:网络训练 应用train()函数对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人委托支付合同范本
- 2025年油漆防沉剂行业深度研究分析报告
- 订婚宴致辞(合集15篇)
- 3人合伙发廊合同范本
- 2023-2028年中国胚胎移植导管行业市场深度评估及投资战略规划报告
- 科技展会活动策划中的社交媒体策略
- 2025年烧瓶行业深度研究分析报告
- 代办行业合同范本
- 牙科口腔合同范本
- 内蒙施工合同范本
- 六年级奥数教材
- 全国初中数学联赛试题30套
- 蚂蚁王国 完整版PPT
- 小学体育 一年级 居家跳绳练习 课件
- EFM022静电场测试仪操作说明书
- IATF16949质量体系基础知识培训
- 七年级语文阅读理解十篇含答案解析
- 单元知识结构图(排球)
- 卡通风寒假生活PPT模板课件
- 教学课件:物流营销
- 小儿泄泻(小儿腹泻病)诊疗方案
评论
0/150
提交评论