《数学建模(方红)教学课件22.人工神经网络.ppt》由会员分享,可在线阅读,更多相关《数学建模(方红)教学课件22.人工神经网络.ppt(47页珍藏版)》请在三一办公上搜索。
1、人工神经网络,华中农业大学数学建模基地系列课件,内容提要,神经网络基本原理和思想介绍实际应用与Matlab相应的语法介绍参数的选取原则,神经网络基本原理和思想介绍,引 言,利用机器模仿人类的智能是长期以来人们认识自然、改造自然和认识自身的理想。研究ANN目的:(1)探索和模拟人的感觉、思维和行为的规律,设计具有人类智能的计算机系统。(2)探讨人脑的智能活动,用物化了的智能来考察和研究人脑智能的物质过程及其规律。,ANN的研究内容,神经网络基本原理和思想介绍,理论研究:ANN模型及其学习算法,试图从数学上描述ANN的动力学过程,建立相应的ANN模型,在该模型的基础上,对于给定的学习样本,找出一种
2、能以较快的速度和较高的精度调整神经元间互连权值,使系统达到稳定状态,满足学习要求的算法。实现技术的研究:探讨利用电子、光学、生物等技术实现神经计算机的途径。应用的研究:探讨如何应用ANN解决实际问题,如模式识别、故障检测、智能机器人等。,神经网络基本原理和思想介绍,研究ANN方法,生理结构的模拟:用仿生学观点,探索人脑的生理结构,把对人脑的微观结构及其智能行为的研究结合起来即人工神经网络(Artificial Neural Netwroks,简称ANN)方法。宏观功能的模拟:从人的思维活动和智能行为的心理学特性出发,利用计算机系统来对人脑智能进行宏观功能的模拟,即符号处理方法。,神经网络基本原
3、理和思想介绍,ANN研究的目的和意义,通过揭示物理平面与认知平面之间的映射,了解它们相互联系和相互作用的机理,从而揭示思维的本质,探索智能的本源。争取构造出尽可能与人脑具有相似功能的计算机,即ANN计算机。研究仿照脑神经系统的人工神经网络,将在模式识别、组合优化和决策判断等方面取得传统计算机所难以达到的效果。,神经网络基本原理和思想介绍,神经网络研究的发展,第一次热潮(40-60年代末)1943年,美国心理学家W.McCulloch和数学家W.Pitts在提出了一个简单的神经元模型,即MP模型。1958年,F.Rosenblatt等研制出了感知机(Perceptron)。低潮(70-80年代初
4、)第二次热潮 1982年,美国物理学家提出Hopfield模型,它是一个互联的非线性动力学网络.他解决问题的方法是一种反复运算的动态过程,这是符号逻辑处理方法所不具备的性质.1987年首届国际ANN大会在圣地亚哥召开,国际ANN联合会成立,创办了多种ANN国际刊物。1990年12月,北京召开首届学术会议。,神经网络基本原理和思想介绍,人工神经网络研究的局限性,(1)ANN研究受到脑科学研究成果的限制。(2)ANN缺少一个完整、成熟的理论体系。(3)ANN研究带有浓厚的策略和经验色彩。(4)ANN与传统技术的接口不成熟。,人工神经网络概述,什么是人工神经网络?T.Koholen的定义:“人工神经
5、网络是由 具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。”,神经网络基本原理和思想介绍,神经网络基本原理和思想介绍,神经元与神经网络,大脑可视作为1000多亿神经元组成的神经网络,图1 神经元的解剖图,神经网络基本原理和思想介绍,神经元的信息传递和处理是一种电化学活动树突由于电化学作用接受外界的刺激;通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程,神经元工作原理,神经网络研究的两个方面从生理上、解剖
6、学上进行研究从工程技术上、算法上进行研究,神经网络基本原理和思想介绍,脑神经信息活动的特征,巨量并行性;信息处理和存储单元结合在一起;自组织自学习功能。,神经网络基本原理和思想介绍,神经网络基本模型,图2 神经网络的基本模型,神经网络基本原理和思想介绍,神经元的数学模型,图3 神经元的数学模型,神经网络基本原理和思想介绍,x(x1,xm)T 输入向量,y为输出,wi是权系数;输入与输出具有如下关系:,注:其中为阈值,f(X)是激发函数;它可以是线性函数,也可以是非线性函数,神经元的数学模型,神经网络基本原理和思想介绍,几种常用的作用函数,阀值型(硬限制型)线性型S型函数(Sigmoid)辐射基
7、函数,阀值型一(硬限制型),神经网络基本原理和思想介绍,神经网络基本原理和思想介绍,阀值型二(硬限制型),线性型,全线性,神经网络基本原理和思想介绍,正线性,神经网络基本原理和思想介绍,神经网络基本原理和思想介绍,S型函数(Sigmoid),对数正切 y=1/(e-n+1),双曲正切 y=tanh(n),神经网络基本原理和思想介绍,神经网络基本原理和思想介绍,辐射基函数,高斯函数,神经网络基本原理和思想介绍,三角波函数,神经网络基本原理和思想介绍,神经网络的数学模型,众多神经元之间组合形成神经网络,例如下图的含有中间层(隐层)的B-P网络,图4 B-P神经网络示意图,神经网络基本原理和思想介绍
8、,神经网络基本模型,图5 神经网络基本模型示意图,神经网络基本原理和思想介绍,该算法的学习过程由正向传播和反向传播组成。在正向传播过程中,输入信息从输入层经隐含层逐层处理,并传向输出层。每一层神经元的状态只影响下一层神经元的状态。如果输出层得不到期望的输出,则转入反向传播,将误差信号沿原来的连接通道返回,通过修改各层神经元的权值,使得误差信号最小。,BP神经网络基本思想,神经网络基本原理和思想介绍,Matlab形式,描述输出与加权系数的关系,神经网络基本原理和思想介绍,I/O 关系,I-H a 1=tansig(IW 1,1 p 1+b 1)tansig(x)=tanh(x)=(ex-e-x)
9、/(ex+e-x)H-O a 2=purelin(LW 2,1 a 1+b 2)输入层神经元个数n隐含层神经元个数s1输出层神经元个数s2,神经网络基本原理和思想介绍,学习(训练),输入q组样本p1,p2,.,pq piRn期望输出 T1,T2,.,Tq,T Rs2网络输出a1,a2,.,aq aRs2,均方误差,向量情况,神经网络基本原理和思想介绍,优化目标:误差最小实质为一个优化问题解决思路1:梯度法(gradient)找出误差与加权系数的关系 得到加权系数改变的规律,神经网络基本原理和思想介绍,神经网络的主要用途,函数逼近:用输入矢量和相应的输出矢量训练网络逼近某个函数;模式识别:用一个
10、特定的输出矢量将它与输入矢量联系起来;分类:把输入矢量以所定义的合适的方法进行分类;数据压缩:减少输出矢量维数以便于传输或存储。,小结:一般而言,ANN与经典计算方法相比并非优越,只有当常规方法解决不了或效果不佳时ANN方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统,如故障诊断、特征提取和预测等问题,ANN往往是最有利的工具。另一方面,ANN对处理大量原始数据而不能用规则或公式描述的问题,表现出极大的灵活性和自适应性。,神经网络基本原理和思想介绍,实际应用与Matlab相应的语法介绍,例1:蚊子的分类,1981年生物学家格若根(W Grogan)和维什(WWirth
11、)发现了两类蚊子(或飞蠓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 Apf1.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,实际应用与Matlab相应的语法介绍,问:如果抓到三只新的蚊子,它们的触角长和翼
12、长 分别为(l.24,1.80);(l.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类?,解法一:,把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点“”表示;9个蚊子属 Af类;用小圆圈“。”表示得到的结果见图1,图6飞蠓的触角长和翼长,实际应用与Matlab相应的语法介绍,思路:作一直线将两类飞蠓分开,例如;取A(1.44,2.10)和 B(1.10,1.16),过A B两点作一条直线:y 1.47x-0.017其中x表示触角长;y表示翼长,分类规则:设一个蚊子的数据为(x,y)如果y1.47x-0.01
13、7,则判断蚊子属Apf类;如果y1.47x-0.017;则判断蚊子属Af类,实际应用与Matlab相应的语法介绍,分类结果:(1.24,1.80),(1.28,1.84)属于Af类;(1.40,2.04)属于 Apf类,图7 分类直线图,实际应用与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类,哪一分类直线才是正确的呢?,因此如何来确定这个判别直线是一个值得研究的问题一般
14、地讲,应该充分利用已知的数据信息来确定判别直线,实际应用与Matlab相应的语法介绍,再如,如下的情形已经不能用分类直线的办法:,新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。,实际应用与Matlab相应的语法介绍,输入数据有15个,即,p=1,15;j=1,2;对应15个输出。建模:(输入层,中间层,输出层,每层的元素应取多少个?)建立神经网络,例2 下表为某药品的销售情况,现构建一个如下的三层BP神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为5,隐含层的激活函数为tansig;输出层结点数为1个,输出层的激活函数为logsig,并
15、利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用1、2、3月的销售量为输入预测第4个月的销售量,用2、3、4月的销售量为输入预测第5个月的销售量.如此反复直至满足预测精度要求为止。数据如下:,实际应用与Matlab相应的语法介绍,实际应用与Matlab相应的语法介绍,BP神经网络学习算法的MATLAB实现,%以每三个月的销售量经归一化处理后作为输入P=0.5152 0.8173 1.0000 0.7308 0.1390 0.1087 0.8173 1.0000 0.7308 0.1390 0.1087 0.3520 1.0000 0.
16、7308 0.1390 0.1087 0.3520 0;%以第四个月的销售量归一化处理后作为目标向量T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;%创建一个BP神经网络,每一个输入向量的取值范围为0,1,隐含层有5个神经%元,输出层有一个神经元,隐含层的激活函数为tansig,输出层的激活函数为%logsig,训练函数为梯度下降函数,即节中所描述的标准学习算法net=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);=15000;=0.01;%设置学习速率为0.1LP.lr=0.1;net=train(net,P
17、,T);sim(net,P)plot(i,T,B+,i,ans,g*),实际应用与Matlab相应的语法介绍,BP神经网络学习算法的MATLAB实现,BP网络应用于药品预测对比图由对比图可以看出预测效果与实际存在一定误差,此误差可以通过增加运行步数和提高预设误差精度业进一步缩小,实际应用与Matlab相应的语法介绍,参数的选取原则,BP算法不仅有输入层节点、输出层节点,还可有1个或多个隐含层节点。理论上,三层前馈网络能充分描述复杂的非线性系统。所以网络一般由输入层、中间层(隐含层)、输出层三层构成。网络节点 网络输入层神经元节点数就是系统的特征因子(自变量)个数,输出层神经元节点数就是系统目标
18、个数。隐层节点选按经验选取,一般设为输入层节点数的75%。如果输入层有7个节点,输出层1个节点,那么隐含层可暂设为5个节点,即构成一个7-5-1 BP神经网络模型。在系统训练时,实际还要对不同的隐层节点数4、5、6个分别进行比较,最后确定出最合理的网络结构。,参数的选取原则,初始权值的确定 初始权值是不应完全相等的一组值。已经证明,即便确定 存在一组互不相等的使系统误差更小的权值,如果所设Wji的的初始值彼此相等,它们将在学习过程中始终保持相等。故而,在程序中,我们设计了一个随机发生器程序,产生一组一0.5+0.5的随机数,作为网络的初始权值。最小训练速率 在经典的BP算法中,训练速率是由经验确定,训练速率越大,权重变化越大,收敛越快;但训练速率过大,会引起系统的振荡,因此,训练速率在不导致振荡前提下,越大越好。训练速率会自动调整,并尽可能取大一些的值,但用户可规定一个最小训练速率。该值一般取0.9。,参数的选取原则,允许误差 一般取0.0010.00001,当2次迭代结果的误差小于该值时,系统结束迭代计算,给出结果。迭代次数 一般取1000次。由于神经网络计算并不能保证在各种参数配置下迭代结果收敛,当迭代结果不收敛时,允许最大的迭代次数。,