神经网络建模ppt课件

上传人:沈*** 文档编号:176655414 上传时间:2022-12-23 格式:PPT 页数:47 大小:994KB
返回 下载 相关 举报
神经网络建模ppt课件_第1页
第1页 / 共47页
神经网络建模ppt课件_第2页
第2页 / 共47页
神经网络建模ppt课件_第3页
第3页 / 共47页
点击查看更多>>
资源描述
人工神经网络建模数学与信息科学系1、神经网络简介 人工神经网络是在现代神经科学的根底上开展起来的,旨在模拟人脑构造以及功能的一种笼统的数学模型,其中Hopfield神经网络、ART神经网络、BP神经网络是常用的网络。Hopfield神经网络是由一样的神经元构成的单元,是一类不具有学习才干的单层自联想网络,她的网络模型由一组可使某一个能量函数最小的微分方程组成。ART神经网络主要用于方式识别,她的缺乏之处在于对转换、失真和规模变化较敏感BP神经网络是误差反向传播的多层前向网络,其信息处置机制由神经元激活特性和网络拓扑构造决议,神经元的传送函数是非线性函数,网络构造由输入层、隐含层、输出层组成,同层节点间无关联,异层节点前向衔接。1.1、人工神经元模型人工神经网络的根本单元的神经元模型人工神经元的三个要素10003(),(),(0=)ijmijiijjjmjijijjjiww xbyfw xiww 1、一组连接(突触),连接强度由各连接上的权值表示,权值为正表示激活,负表示抑制2、一个求和单元,用于求取各输入信号之间的加权和、一个非线性激活函数f,起到非线性映射的作用并将神经元的输出限制在一定范围内还有阈值或偏置可通过把输入维数增加一维把阈值包括进去对应阈值,1或偏置11.2激活传送函数的取法在Matlab工具箱里包括了许多激活传送函数。在“Transfer Function Graphs中可以找到它们的完全列表 函数名 功 能 purelin 线性传送函数 hardlim 硬限幅递函数 hardlims 对称硬限幅递函数 satli 饱和线性传送函数 satlins 对称饱和线性传送函数 logsig 对数S 形传送函数 tansig 正切S 形传送函数 radbas 径向基传送函数 compet 竞争层传送函数 222211,01,01()()0,01,02()tanh(),03()10,014()exp()2xxxxnjjiiixxf xf xxxeef xxeexxsigmoidf xxxf xxx、阶跃函数:,或符号函数、双曲正切函数:、函数(S型):、高斯函数:1.3、网络构造以及任务方式从衔接方式看NN主要有两种网络拓扑构造:前馈型网络:结点分为输入单元和计算单元反响型网络:一切结点都是计算单元NN的任务过程主要分为两个阶段:第一阶段:学习期,此时个计算单元形状不变,各连线上的权值可经过学习来修正第二阶段:任务期,此时各衔接权值固定,计算各单元形状变化网络构造:前馈型神经网络 两个或更多的上面所示的神经元可以组合成一层,一个典型的网络可包括一层或者多层。我们首先来研讨神经元层。单层神经元网络 有R输入元素和S个神经元组成的单层网络如以下图所示n1=net.IW1,1*p+net.b1多层神经元网络 上面所示的网络有R1个输入,第一层有S1个神经元,第二层有S2个神经元中间层的输出就是下一层的输入。第二层可看作有S1个输入,S2个神经元和S1xS2 阶权重矩阵W2 的单层网络。第二层的输入是a1,输出是a2,如今我们曾经确定了第二层的一切向量和矩阵,我们就能把它看成一个单层网络了。其他层也可以照此步骤处置。多层网络的功能非常强大。例、一个两层的网络,第一层的转移函数是曲线函数,第二层的转移函数是线性函数,经过训练,它可以很好的模拟任何有有限断点的函数。这种两层网络集中运用于“反向传播网络。留意:我们把第三层的输出a3标志为y。我们将运用这种符号来定义这种网络的输出。1.4创建网络newp 创建感知器网络 newlind 设计一线性层 newlin 创建一线性层 newff 创建一前馈 BP 网络 newcf 创建一多层前馈 BP 网络 newfftd 创建一前馈输入延迟 BP 网络newrb 设计一径向基网络 newrbe 设计一严厉的径向基网络 newgrnn 设计一广义回归神经网络 newpnn 设计一概率神经网络 newc 创建一竞争层 newsom 创建一自组织特征映射 newhop 创建一 Hopfield 递归网络 newelm 创建一 Elman 递归网络 1.5数据构造:影响网络仿真的输入数据构造的格式静态网络中的同步输入仿真:例1动态网络中的异步输入仿真:当网络中存在延迟时,顺序发生的输入向量就要按一定的序列输入网络。为了演示这种情况,我们以一个有延迟的简单网络为例。动态网络中的同步输入仿真n假设我们在上例中把输入作为同步而不是异步运用,我们就会得到完全不同的呼应。这就好象每一个输入都同时加到一个单独的并行网络中。在前一个例子中,假设我们用一组同步输入,我们有:np1=1,p2=2,p3=3,p4=4 n这可用以下代码创建:P=1 2 3 4;n模拟这个网络,我们得到:nA=sim(net,P)nA=n1 2 3 4 n在某些特定的情况下,我们能够想要在同一时间模拟一些不同序列的网络呼应。这种情况我们就要给网络输入一组同步序列。比如说,我们要把下面两个序列输入网络:n p(1)=1,p(2)=2,p(3)=3,p(4)=4 n p(1)=4,p(2)=3,p(3)=2,p(4)=1 n输入 P应该是一个细胞数组,每一个数组元素都包含了两个同时发生n的序列的元素。nP=1 4 2 3 3 2 4 1;n如今我们就可以模拟这个网络了:nA=sim(net,P);n网络输出结果将是:nA=1 4 4 11 7 8 10 5 n可以看到,每个矩阵的第一列是由第一组输入序列产生的输出序列,每个矩阵的第二列是由第二组输入序列产生的输出序列。这两组序列之间没有关联,好象他们是同时运用在单个的并行网络上的。前面的讨论中,不论是作为一个同步向量矩阵输入还是作为一个异步向量细胞数组输入,模拟的输出值是一样的。在训练网络时,这是不对的。当我们运用adapt函数时,假设输入是异步向量细胞数组,那么权重将在每一组输入提交的时候更新就是添加方式;假设输入是同步向量矩阵,那么权重将只在一切输入提交的时候更新就是批处置方式。1.6训练方式训练方式 两种不同的训练方式(1)添加方式:每提交一次输入数据,网络权重和偏置都更新一次;(2)在批处置方式中:仅仅当一切的输入数据都被提交以后,网络权重和偏置才被更新.添加方式运用于自顺应网络和其他网络 虽然添加方式更普遍的运用于动态网络,比如自顺应滤波,但是在静态和动态网络中都可以运用它。静态网络中的添加方式 用添加方式来训练静态同步仿真中的例1,这样每提交一次输入数据,网络权重和偏置都更新一次。在此我们用函数adapt,并给出输入和目的序列:假定我们要训练网络建立以下线性函数:t=2p1+p2.我们的输入是:目的输出是:t1=4,t2=5,t3=7,t4=7 首先用0初始化权重和偏置。为了显示添加方式的效果,先把学习速度也设为0。net=newlin(-1 1;-1 1,1,0,0);net.IW1,1=0 0;net.b1=0;为了用添加方式,我们把输入和目的输出表示为以下序列:P=1;2 2;1 2;3 3;1;T=4 5 7 7;用添加方式训练网络:net=newlin(-1 1;-1 1,1,0,0);net.IW1,1=0 0;net.b1=0;P=1;2 2;1 2;3 3;1;T=4 5 7 7;net,a,e,pf=adapt(net,P,T);由于学习速度为0,网络输出依然为0,并且权重没有被更新。错误和目的输出相等。a=0 0 0 0 e=4 5 7 7 假设我们设置学习速度为0.1,我们就可以看到当每一组输入提交时,网络是怎样调整的了。net.inputWeights1,1.learnParam.lr=0.1;net.biases1,1.learnParam.lr=0.1;net,a,e,pf=adapt(net,P,T);a=0 2 6.0 5.8 e=4 3 1.0 1.2 2、BP神经网络2.1、概述BP网络是采用Widrow-Hoff学习算法和非线性可微转移函数的多层网络。一个典型的BP网络采用的是梯度下降算法,也就是Widrow-Hoff算法所规定的。backpropagation就是指的为非线性多层网络计算梯度的方法。如今有许多根本的优化算法,例如变尺度算法和牛顿算法。神经网络工具箱提供了许多这样的算法。一个经过训练的BP网络可以根据输入给出适宜的结果,虽然这个输入并没有被训练过。这个特性使得BP网络很适宜采用输入/目的对进展训练,而且并不需求把一切能够的输入/目的对都训练过。为了提高网络的适用性,神经网络工具箱提供了两个特性-规那么化和早期停顿。2.2、根底、根底 网络构造网络构造 1常用的前馈型常用的前馈型BP网络的转移函数有网络的转移函数有logsig,tansig有时也会用到线性函数有时也会用到线性函数purelin。当网络的最。当网络的最后一层采用曲线函数时输出被限制在一个很小的范后一层采用曲线函数时输出被限制在一个很小的范围内,假设采用线性函数那么输出可为恣意值。假围内,假设采用线性函数那么输出可为恣意值。假设需求也可以创建其他可微的转移函数。设需求也可以创建其他可微的转移函数。2在在BP网络中,转移函数可求导是非常重要的,网络中,转移函数可求导是非常重要的,tansig、logsig和和purelin都有对应的导函数都有对应的导函数dtansig、dlogsig和和dpurelin。为了得到更多转移函数的导函。为了得到更多转移函数的导函数数,可以输入可以输入tansig(deriv)ans=dtansig 网络构建和初始化训练前馈网络的第一步是建立网络对象。函数newff建立一个可训练的前馈网络。net=newff(PR,S1 S2.SNl,TF1 TF2.TFNl,BTF,BLF,PF)这里需求4个输入参数。第一个参数是一个RxS1的矩阵以定义R个输入向量的最小值和最大值。第二个参数是一个每层神经元个数的数组。第三个参数是包含每层用到的转移函数称号的细胞数组。最后一个参数是用到的训练函数的称号。例、创建一个二层网络它的输入是两个元素的向量,第一层有四个神经元,第二层有三个神经元。第一层的转移函数是tan-sigmoid,输出层的转移函数是linear。输入向量的第一个元素的范围是-1到2,输入向量的第二个元素的范围是0到5,训练函数是traingd。net=newff(-1 2;0 5,4,3,tansig,purelin,traingd);这个命令建立了网络对象并且初始化了网络权重和偏置,因此网络就可以进展训练了。在训练前馈网络之前,权重和偏置必需被初始化。初始化权重和偏置的任务用命令init来实现。net=init(net);对前馈网络来说,有两种不同的初始化方式经常被用到:initwb和initnw。1initwb函数根据每一层本人的初始化参数(net.inputWeightsi,j.initFcn)初始化权重矩阵和偏置。前馈网络的初始化权重通常设为rands,它使权重在-1到1之间随机取值值,这种方式经常用在转换函数是线性函数时。2initnw通常用于转换函数是曲线函数。它根据Nguyen和WidrowNgWi90为层产生初始权重和偏置值,使得每层神经元的活动区域能大致平坦的分布在输入空间。它比起单纯的给权重和偏置随机赋值有以下优点:1减少神经元的浪费由于一切神经元的活动区域都在输入空间内。2有更快的训练速度由于输入空间的每个区域都在活动的神经元范围中。n初始化函数被newff所调用。因此当网络创建n时,它根据缺省的参数自动初始化。ninit不需求单独的调用。可是我们能够要重新初始化权重和偏置或者进展自定义的初始化。例如,我们用newff创建的网络,它缺省用initnw来初始化第一层。假设我们想要用rands重新初始化第一层的权重和偏置,我们用以下命令:n net.layers1.initFcn=initwb;net.inputWeights1,1.initFcn=rands;net.biases1,1.initFcn=rands;net.biases2,1.initFcn=rands;n net=init(net);网络模拟(SIM)用函数sim 模拟一个网络。sim 接纳网络输入p,网络对象net,前往网络输出a,这里是simuff用来模拟上面建立的带一个输入向量的网络。p=1;2;a=sim(net,p)a=-0.1011(用这段代码得到的输出是不一样的,这是由于网络初始化是随机的。)例、调用sim来计算一个同步输入3向量网络的输出:p=1 3 2;2 4 1;a=sim(net,p)a=-0.1011-0.2308 0.4955网络训练 一旦网络加权和偏向被初始化,网络就可以开场训练了。我们可以训练网络来做函数近似非线性后退,方式结合,或者方式分类。训练处置需求一套适当的网络操作的例子-网络输入p和目的输出t。在训练期间网络的加权和偏向不断的把网络性能函数net.performFcn减少到最小。前馈网络的缺省性能函数是均方误差mse-网络输出和目的输出t之间的均方误差。反向传播算法 反向传播学习算法最简单的运用是沿着性能函数最速增加的方向-梯度的负方向更新权重和偏置。这种递归算法可以写成:xk+1=xk-a k*g k 这里xk是当前权重和偏置向量,g k是当前梯度,a k是学习速率。有两种不同的方法实现梯度下降算法:添加方式和批处理方式。在添加方式中,网络输入每提交一次,梯度计算一次并更新权重。在批处置方式中,当一切的输入都被提交后网络才被更新。添加方式训练法ADAPT 如今我们就可以开场训练网络了。当然我们要指定输入值和目的值如下所示:p=-1-1 2 2;0 5 0 5;t=-1-1 1 1;假设我们要在每一次提交输入后都更新权重,那么我们需求将输入矩阵和目的矩阵转变为细胞数组。每一个细胞都是一个输入或者目的向量。p=num2cell(p,1);t=num2cell(t,1);如今就可以用adapt来实现添加方式训练了:net,a,e=adapt(net,p,t);训练终了以后,就可以模拟网络输出来检验训练质量了。a=sim(net,p)a=-0.9995-1.0000 1.0001 1.0000 n带动力的梯度下降(LEARDGDM)n批处置训练方式 n批处置梯度下降法(TRAINGD)n带动量的批处置梯度下降法 批处置训练方式 TRAINGDM例1、蠓虫分类问题1、蠓虫分类问题 生物学家试图对两种蠓虫Af与Apf进展鉴别,根据的资料是触角和翅膀的长度,曾经测得了9支Af和6支Apf的数据如下:Af:(1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08);Apf:(1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).i根据如上资料,如何制定一种方法,正确地域分两类蠓虫。ii对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的3个标本,用所得到的方法加以识别。iii设Af是珍贵的传粉益虫,Apf是某疾病的载体,能否应该修正分类方法。问题分析:要求根据知资料问题分析:要求根据知资料9支支Af的数据和的数据和6支支Apf的数据制定一的数据制定一种分类方法,类别是曾经给定的种分类方法,类别是曾经给定的Af或或Apf。我们将。我们将9支支Af及及6支支Apf的数据集合称之为学习样本。的数据集合称之为学习样本。2 多层前馈网络多层前馈网络为处理此问题,思索一个其构造如以下图所示的人工神经网络为处理此问题,思索一个其构造如以下图所示的人工神经网络输入层输出层中间层隐层以以s=1,2,15,分别表示学习样本中的,分别表示学习样本中的15个样品,对样个样品,对样品品s而言,对任何一组确定的输入而言,对任何一组确定的输入I_ks(k=1,2)隐单元隐单元j 的输入是的输入是相应的输出形状是相应的输出形状是网络的最终输出是网络的最终输出是对于任何一组确定的输入 ,输出是一切权的函数。假设我们可以选定一组适当的权值,使得对应于学习样本中任何一组Af样品的输入,输出为(1,0),对应于Apf的输入数据,输出为(0,1),那么蠓虫分类问题实践上就处理了。由于,对于任何一个未知类别的样品,只要将其触角及翅膀长度输入网络,视其输出方式接近(1,0)亦或(0,1),就能够判别其归属。当然,有能够出现介于中间无法判别的情况。如今的问题是,如何找到一组适当的权值,实现上面所想象的网络功能。3 向后传播算法在1985年,美国加州大学的一个研讨小组提出了所谓向后传播算法Back-Propagation。我们希望对应于学习样本中Af样品的输出是(1,0),对应于Apf的输出是(0,1),这样的输出称之为理想输出。实践上要准确地作到这一点是不能够的,只能希望实践输出尽能够地接近理想输出。为清楚起见,把对应于样品s的理想输出记为 ,度量了在一组给定的权下,实践输出与理想输出的差别,由此,寻觅度量了在一组给定的权下,实践输出与理想输出的差别,由此,寻觅一组恰当的权的问题,自然地归结为求适当一组恰当的权的问题,自然地归结为求适当W 的值,使的值,使E(W)到达极小到达极小的问题的问题最速下降法对每一个变量w_ij 或w 而言,这是一个延续可微的非线性函数,为了求得其极小点与极小值,最为方便的就是运用最速下降法。最速下降法是一种迭代算法,为求出E(W)的部分极小,它从一个任取的初始点W_0 出发,计算在W_0点的负梯度方向 ,这是函数在该点下降最快的方向;只需 ,就可沿该方向挪动一小段间隔,到达一个新的点。不断反复这一过程,一定能到达E 的一个部分极小点。就本质而言,这就是BP算法的全部内容。然而,对人工神经网络问题而言,这一算法的详细方式是非常重要的,下面我们就来给出这一方式表达。对于隐单元到输出单元的权w_ ij而言,最速下降法给出的每一步的修正量是可以看出,一切权的修正量都有如下方式目的p 对应于两个单元中输出信号的一端,q对应于输入信号的一端,v或者代表H或者代表I。由实践输出与理想输出的差及 决议,而 那么需依赖 算出,因此,这一算法才称为向后传播算法。利用这一迭代算法,最终生成在一定精度内满足要求的 的过程,称为人工神经网络的学习过程。可以看出,这里所提供的学习机制是元与元之间权的不断调整,学习样本中任何一个样品所提供的信息,最终将包含在网络的每一个权之中。参数h 的大小那么反映了学习效率。4、蠓虫分类问题求解nclearnp1=1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;n1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08;np2=1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00n1.28,2.00;1.30,1.96;np=p1;p2;npr=minmax(p);ngoal=ones(1,9),zeros(1,6);zeros(1,9),ones(1,6);nsubplot(1,2,1)nplot(p1(:,1),p1(:,2),h,p2(:,1),p2(:,2),o)nsubplot(1,2,2)nnet=newff(pr,3,2,logsig,logsig);nnet.trainParam.show=10;nnet.trainParam.lr=0.05;nnet.trainParam.epochs=3000;nnet.trainParam.goal=1e-10;nnet=train(net,p,goal);nx=1.24 1.80;1.28 1.84;1.40 2.04;ny0=sim(net,p)ny=sim(net,x)例2、人口预测以下是从中得到的 1980-2019年的北京城近郊区户籍人口统计结果作为样本数据,建立人工神经网络模型,预测、2019年的北京城近郊区户籍人口北京市人口数统计表:年份人数(万人)年份人数(万人)1980498.42019631.81981510.2 2019638.71982521.32019646.21983534.02019651.81984540.72000658.91985542.82019667.41986553.02019678.61987563.22019689.21988573.92019698.81989582.12019707.219905922019713.21991598.72019718.51992604.32019730.91993609.52009743.81994616.12019749.62019625.1数据处置后的样本数据:样本用途样本组数输入一输入二输入三输入四输出学习样本10.49840.51020.52130.5340.540720.51020.52130.5340.54070.542830.52130.5340.54070.54280.55340.5340.54070.54280.5530.563250.54070.54280.5530.56320.573960.54280.5530.56320.57390.582170.5530.56320.57390.58210.59280.56320.57390.58210.5920.598790.57390.58210.5920.59870.6043100.58210.5920.59870.60430.6095110.5920.59870.60430.60950.6161120.59870.60430.60950.61610.6251130.60430.60950.61610.62510.6318140.60950.61610.62510.63180.6387150.61610.62510.63180.63870.6462160.62510.63180.63870.64620.6518170.63180.63870.64620.65180.6589180.63870.64620.65180.65890.6674190.64620.65180.65890.66740.6786200.65180.65890.66740.67860.6892210.65890.66740.67860.68920.6988220.66740.67860.68920.69880.7072检验样本230.6786 0.68920.69880.70720.7132240.6892 0.69880.70720.71320.7185250.6988 0.70720.71320.71850.7309260.7072 0.71320.71850.73090.7438270.7132 0.71850.73090.74380.7496n%样本训练nnet=newff(minmax(p),6,1,tansig,purelin,trainlm);%建立网络ninputWeights=net.IW1,1;%当前输入层权值和阈值ninputbias=net.b1;nlayerWeights=net.LW2,1;%当前网络层权值和阈值nlayerbias=net.b2;n%网络参数设置nnet.performFcn=mse;nnet.trainParam.show=20;nnet.trainParam.goal=1e-5;nnet.trainParam.epochs=1000;nnet.trainParam.lr=0.15;nnet.trainParam.mc=0.9;nnet=train(net,p,t);%训练网络ny=sim(net,p);nx=1984:2019;nplot(x,y,h,x,t,*)ne=t-y;nhold on;nplot(x,e);n%样本检验ny2=sim(net,p2);nx=1:5;nplot(x,y2,*);nhold onnplot(x,t2,red);n%预测样本ny3=sim(net,py);n最终编制的人口数量预测的BP神经网络主程序进展预测,检验结果显示2019、2019、2019、2021、2019年预测值分别为:0.7258,0.7340,0.7405 0.7460,0.7503。将结果复原即为725.8,734.0,740.5,746.0,750.3万人。实践样本值分别为:716.2,725.5,735.9,743.8,752.6。检验结果与实践样本的差值的绝对值分别为9.6,8.5,4.6,2.2,2.3万人,这里取最大的误差9.6万人,与实践样本比值为1.34%,检验结果的误差较小,可以到达预测的效果。n网络训练胜利后,预测可得到2019年北京市人口为753.4万人。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!