ch4 神经网络模型及仿真_第1页
ch4 神经网络模型及仿真_第2页
ch4 神经网络模型及仿真_第3页
ch4 神经网络模型及仿真_第4页
ch4 神经网络模型及仿真_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、 管理建模与仿真管理建模与仿真哈尔滨工程大学经济管理学院哈尔滨工程大学经济管理学院胡玉真胡玉真第第4章章 神经网络模型及仿真神经网络模型及仿真人工神经网络基本理论人工神经网络基本理论1BP神经网络神经网络MATLAB工具箱工具箱2组建神经网络的注意事项组建神经网络的注意事项3应用实例应用实例4第第4章章 神经网络模型及仿真神经网络模型及仿真4.1 人工神经网络基本理论人工神经网络基本理论4.1.1 生物神经元及生物神经网络生物神经元及生物神经网络 神经元是大脑处理信息的基本单元,以细胞体为神经元是大脑处理信息的基本单元,以细胞体为主体,由许多向周围延伸的不规则树枝状纤维构成的主体,由许多向周围

2、延伸的不规则树枝状纤维构成的神经细胞,其形状很像一棵枯树的枝干。它主要由细神经细胞,其形状很像一棵枯树的枝干。它主要由细胞体、树突、轴突和突触(胞体、树突、轴突和突触(Synapse,又称神经键),又称神经键)组成。组成。 人脑大约由人脑大约由1000多亿个神经元组成,神经元互相多亿个神经元组成,神经元互相连接成神经网络。连接成神经网络。图图1 生物神经元示意图生物神经元示意图 从神经元各组成部分的功能来看,信息的处理与传递从神经元各组成部分的功能来看,信息的处理与传递主要发生在突触附近。当神经元细胞体通过轴突传到突触主要发生在突触附近。当神经元细胞体通过轴突传到突触前膜的脉冲幅度达到一定强度

3、,即超过其阈值电位后,突前膜的脉冲幅度达到一定强度,即超过其阈值电位后,突触前膜将向突触间隙释放神经传递的化学物质。触前膜将向突触间隙释放神经传递的化学物质。 突触有两种:兴奋性突触和抑制性突触。前者产生正突触有两种:兴奋性突触和抑制性突触。前者产生正突触后电位,后者产生负突触后电位。突触后电位,后者产生负突触后电位。图图1 生物神经元示意图生物神经元示意图 4.1.2 人工神经元模型人工神经元模型1. 人工神经元模型的三要素人工神经元模型的三要素 连接权:连接权: 求和单元:求和单元: 激励函数(传递函数)激励函数(传递函数) : ()1x2xnxu()yiw1w2wnwniiixwu1ni

4、iixwv12. 人工神经元模型的数学表达一人工神经元模型的数学表达一 模型中模型中 为输入信号,为输入信号, 为输出信为输出信号,号, 为神经元的阈值。该模型的数学表达式为:为神经元的阈值。该模型的数学表达式为:12,nx xxy( )yvniiixwu1niiixwv14. 激励函数的形式激励函数的形式 阈值函数:阈值函数: 分段线性函数:分段线性函数: sigmoid函数:函数:10( )00vvv111( )(1)11201vvvvv 1( )1exp()vv( )tanh()vv4.1.3 人工神经网络结构及工作方式人工神经网络结构及工作方式1、人工神经网络模型拓扑结构、人工神经网络

5、模型拓扑结构 人工神经网络人工神经网络(Artificial Neural Networks,ANN)是对人类大脑系统的一种仿真,简单地讲,它是一个是对人类大脑系统的一种仿真,简单地讲,它是一个数学模型,可以用电子线路来实现,也可以用计算机数学模型,可以用电子线路来实现,也可以用计算机程序来模拟,是人工智能研究的一种方法。程序来模拟,是人工智能研究的一种方法。 实际上它是由大量的、功能比较简单的形式神经实际上它是由大量的、功能比较简单的形式神经元互相连接而构成的复杂网络系统,用它可以模拟大元互相连接而构成的复杂网络系统,用它可以模拟大脑的许多基本功能和简单的思维方式。脑的许多基本功能和简单的思

6、维方式。 神经网络的优点是多输入多输出实现了数据的神经网络的优点是多输入多输出实现了数据的并行处理以及自学习能力。前向反馈(并行处理以及自学习能力。前向反馈(back propagation,BP)网络和径向基()网络和径向基(radical basis function,RBF)网络是目前技术最成熟、应用范)网络是目前技术最成熟、应用范围最广泛的的两种网络。围最广泛的的两种网络。v神经网络的拓扑结构包括:神经网络的拓扑结构包括: 网络层数网络层数 各层神经元数量各层神经元数量 各神经元之间相互连接方式各神经元之间相互连接方式 前馈型网络前馈型网络: 反馈型网络反馈型网络:1x2xnx1y2y

7、ny输输入入层层隐隐含含层层输输出出层层1x2x1nxnx1y2y1nyny2、神经网络结构、神经网络结构 学习期(训练期)学习期(训练期): 各计算单元各计算单元状态不变状态不变,各连接线上权值通过学习来修改,各连接线上权值通过学习来修改 工作期工作期: 连接连接权固定权固定,计算单元状态变化,以达到某种稳定状态,计算单元状态变化,以达到某种稳定状态3、神经网络工作方式、神经网络工作方式 有教师学习有教师学习: 外界存在一个教师,对给定的一组输入,提供应有外界存在一个教师,对给定的一组输入,提供应有的输出的输出(标准答案)(标准答案),学习系统可根据实际输出与标准,学习系统可根据实际输出与标

8、准答案之间的差值来调整系统参数答案之间的差值来调整系统参数学学 习习系系 统统教师教师环境环境输入输入应有应有响应响应 +误差信号误差信号实际响实际响应应 4.1.4 神经网络的学习方法神经网络的学习方法1. 学习方式学习方式 无教师学习:无教师学习: 学习系统按照环境提供数据的某些学习系统按照环境提供数据的某些统计规律统计规律来调节自来调节自身参数身参数环境环境学学 习习系系 统统动作动作输出输出输入输入状态状态环境环境学习系统学习系统输入输入 强化学习:强化学习: 环境对系统输出结果只给出评价信息(奖或惩),环境对系统输出结果只给出评价信息(奖或惩),系统通过强化受奖动作来改善自身性能系统

9、通过强化受奖动作来改善自身性能 考察神经元考察神经元 k 在在 n 时刻的输入和输出时刻的输入和输出 输入:输入: 实际输出:实际输出: 应有输出:应有输出: 由误差信号构造能量函数:由误差信号构造能量函数: 其中其中E(.)为求期望算子为求期望算子 求解最优化问题:求解最优化问题: 得出系统参数:得出系统参数:w( )kxn( )( )( )( )( )kkkkkynendnyndn误差信号:2. 学习规则学习规则 )(21)(2kkneEwJ )(21)(min2kkwneEwJ 通常情况下用时刻通常情况下用时刻 n 的瞬时值的瞬时值 代替代替J,即求解最优化问题即求解最优化问题 由数值迭

10、代算法(如最速下降法、模拟退火算法等),由数值迭代算法(如最速下降法、模拟退火算法等),可得可得其中其中 为学习步长为学习步长kknwnewJ)(21)(min2kknnewJ)(21)(2)()(nxnewjkkj 神经学家神经学家Hebb提出的学习规则:当某一连接两端的神提出的学习规则:当某一连接两端的神经元同步激活(或同为抑制)时,该连接的强度应增强,经元同步激活(或同为抑制)时,该连接的强度应增强,反之应减弱,数学描述如下:反之应减弱,数学描述如下: 其中其中 分别为分别为 wij 两端神经元的状态两端神经元的状态最常用的一种情况是:最常用的一种情况是:( ),( )kjh n h n

11、3. Hebb学习规则学习规则)(),(nhnhFwjkkj)()(nhnhwjkkj4.1.5 BP算法(向后传播算法)算法(向后传播算法) BP(Back Propagation)网络是)网络是1986年由年由Rumelhart和和McCelland为首的科学家小组提出,是为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。应用最广泛的神经网络模型之一。BP网络能学习和网络能学习和存贮大量的输入存贮大量的输入-输出模式映射关系,而无需事前揭输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程

12、。它的学习规则是使示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。和阈值,使网络的误差平方和最小。 BP神经网络模型拓扑结构包括输入层、隐含层神经网络模型拓扑结构包括输入层、隐含层(中间层)和输出层(中间层)和输出层。 BP算法由数据流的前向计算(正向传播)和误算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播差信号的反向传播两个过程构成。正向传播时,传播方向为输入层方向为输入层隐含层隐含层输出层,每层神经元的状态输出层,每层神经元的状态只

13、影响下一层神经元。若在输出层得不到期望的输出只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数的交替进行,在权向量空间执行误差函数梯度下降梯度下降策策略,动态迭代搜索一组略,动态迭代搜索一组权权向量,使网络误差函数达到向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。最小值,从而完成信息提取和记忆过程。1、正向传播正向传播 设设 BP网络的输入层有网络的输入层有n个节点,隐个节点,隐含含层有层有q个个节点,输出层有节点,输出层有m个节点,输入层与隐含层之间的个节

14、点,输入层与隐含层之间的权值为权值为 ,隐含层与输出层之间的权值为,隐含层与输出层之间的权值为 ,如,如图所示。隐含层的传递函数为图所示。隐含层的传递函数为f1(),输出层的传递,输出层的传递函数为函数为f2() ,则隐含层节点的输出为(将阈值写入,则隐含层节点的输出为(将阈值写入求和项中):求和项中):kivjkwk=1,2,q输出层节点的输出为:输出层节点的输出为:j=1,2,mSjSkEp是是wjk、vki的函数的函数2、反向传播反向传播(1)定义误差函数定义误差函数 输入输入 P个学习样本,用个学习样本,用 来表示。第来表示。第 P个样本输入到网络后得到输出个样本输入到网络后得到输出

15、(j=1,2,m)。采用)。采用平方型误差函数,于是得到第平方型误差函数,于是得到第P个样本的误差个样本的误差Ep:pxxx,21pjy其其中:中: 为期望输出为期望输出mjpjpjpytE12)(21pjt对于对于P个样本,全局误差为:个样本,全局误差为:PpmjPpppjpjEytE1112)(21(2)输出层权值的变化)输出层权值的变化 采用累计误差采用累计误差BP算法调整算法调整 ,使全局误差,使全局误差E变小变小,即,即: 式中:式中: 为为学习率学习率定义误差信号为:定义误差信号为:其中第一项:其中第一项:jkwPpjkpPppjkjkjkwEEwwEw11)()(jjjpjpyj

16、SyyESE 第二项:第二项:是是输出层传递函数输出层传递函数的偏微分。的偏微分。于是:于是:由链定理得:由链定理得:于是于是输出层输出层各神经元的权值调整公式为:各神经元的权值调整公式为:(3)隐)隐含含层权值的变化层权值的变化定义误差信号为:定义误差信号为:其中第一项:其中第一项:依链定理有:依链定理有:第二项:第二项:是隐是隐含含层传递函数的偏微分。层传递函数的偏微分。于是:于是:由链定理得:由链定理得:从而得到隐从而得到隐含含层各神经元的权值调整公式为:层各神经元的权值调整公式为:4.2 BP神经网络神经网络MATLAB工具箱工具箱 MATLAB神经网络工具箱包含许多用于神经网络工具箱

17、包含许多用于BP网络网络分析与设计的函数,这里主要介绍以下几类函数:分析与设计的函数,这里主要介绍以下几类函数:v前向网络创建函数:前向网络创建函数:newcf、newff和和newfftdv激励函数:激励函数:logsig、tansig、purelinv学习函数:学习函数:learngd、learngdmv性能函数:性能函数:mse、msereg4.2.1 BP网络创建函数网络创建函数 BP网络创建函数中用得到的变量及含义:网络创建函数中用得到的变量及含义: PR:由每组输入元素的最大值和最小值组成的:由每组输入元素的最大值和最小值组成的R2的的矩阵;矩阵; Si:第:第i层网络的神经元个数

18、,共计层网络的神经元个数,共计N层;层; TFi:第:第i层的激励函数,默认为层的激励函数,默认为“tansig”; BTF:网络的训练函数,默认为:网络的训练函数,默认为“trainlm”; BLF:权值与阈值的学习算法,默认为:权值与阈值的学习算法,默认为“learngdm”; PF:网络的性能函数,默认为:网络的性能函数,默认为“mse”。1、函数、函数newcf该函数用于创建级联前向该函数用于创建级联前向BP网络,其使用格式为:网络,其使用格式为:net=newcf(PR,S1 S2 SN,TF1 TF2TFN,BTF,BLF,PF)2、函数、函数newff该函数用于创建一个该函数用于

19、创建一个BP网络,其使用格式为:网络,其使用格式为:net=newff(PR,S1 S2 SN,TF1 TF2TFN,BTF,BLF,PF)3、函数、函数newfftd该函数用于创建一个存在输入延迟的前向网络,其该函数用于创建一个存在输入延迟的前向网络,其使用格式为:使用格式为:net=newfftd(PR,S1 S2 SN,TF1 TF2TFN,BTF,BLF,PF)4.2.2 神经元激励函数神经元激励函数BP网络经常采用网络经常采用S行的对数或者正切函数和线性函数行的对数或者正切函数和线性函数1、函数、函数logsigS型对数函数型对数函数使用格式:使用格式:A=logsig(N)info

20、=logsig(code)其中,其中,N为为Q个个S维的输入列向量;维的输入列向量;A为函数返回值,位于区间为函数返回值,位于区间(0,1)中;中;info=logsig(code)根据根据code值不同返回不同的信息值不同返回不同的信息1log( )1xsig xecode的取值的取值返回的信息返回的信息code的取值的取值返回的信息返回的信息deriv微分函数的名称微分函数的名称output输出值域输出值域name函数全称函数全称active有效的输入区间有效的输入区间2、函数、函数tansig双曲正切双曲正切S型激励函数型激励函数其使用格式为:其使用格式为:A=tansig(N)info

21、=tansig(code)其中,其中,N为为Q个个S维的输入列向量;维的输入列向量;A为函数返回值,位于区为函数返回值,位于区间间(-1,1)中;中;info=tansig(code)根据根据code值不同返回不同的信值不同返回不同的信息(同函数息(同函数logsig)。)。tan( )xxxxeesig xee3、函数、函数purelin线性激励函数线性激励函数其使用格式为:其使用格式为:A=purelin(N)info=purelin(code)其中,其中,N为为Q个个S维的输入列向量;维的输入列向量;A为函数返回值,为函数返回值,A=N;info=tansig(code)根据根据code

22、值不同返回不同的信息(同函数值不同返回不同的信息(同函数logsig)( )purelin xx4.2.3 BP网络学习函数(训练函数)网络学习函数(训练函数)函数名函数名功能功能函数名函数名功能功能traingd梯度下降法梯度下降法traincgfPR共轭梯度法共轭梯度法traingdm势能修正法势能修正法traincgpPB共轭梯度法共轭梯度法traingdx自调整学习效率法自调整学习效率法traincgb标量共轭梯度法标量共轭梯度法trainrp恢复恢复BP法法trainscgFR共轭梯度法共轭梯度法trainbfgBFGS拟牛顿法拟牛顿法trainlmLM法法trainoss一步共轭一

23、步共轭 + 拟牛顿拟牛顿trainbrBayesian规范法规范法常见学习函数常见学习函数1、函数、函数learngd 函数函数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)其中,其中,W为为SR为的权值矩阵;为的权值矩阵;b为为S维的阈值向量;维

24、的阈值向量;P为为Q组组R维的输入向维的输入向量;量;ones(1,Q)为产生一个为产生一个Q维的输入向量;维的输入向量;Z为为Q组组S维的加权输入向量;维的加权输入向量;N、A分别为分别为Q组组S维的输入、输出向量;维的输入、输出向量;T、E分别为分别为Q组组S维的层目标向量维的层目标向量、层误差向量;、层误差向量;gW、gA分别为与性能相关的分别为与性能相关的SR的维梯度、维输出梯度的维梯度、维输出梯度;D为为SS维的神经元距离矩阵;维的神经元距离矩阵;LP为学习参数,通过其设置学习速率,为学习参数,通过其设置学习速率,设置格式为设置格式为LP.lr=0.001;LS为学习状态,初始状态下

25、为空;为学习状态,初始状态下为空;dW为为SR维维的权值或阈值变化率矩阵;的权值或阈值变化率矩阵;db为为S维的阈值变化率向量;维的阈值变化率向量;ls为新的学习状态为新的学习状态2、函数、函数learngdm 函数函数learngdm为梯度下降动量学习函数,其使为梯度下降动量学习函数,其使用格式为:用格式为:dW,LS=learngdm(W,P,Z,N,A,T,E,gW,gA,D,LP,LS)db,LS=learngdm(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS) 其中各参数的含义与函数其中各参数的含义与函数learngd相同。相同。 动量常熟动量常熟mc是通过

26、学习参数是通过学习参数LP设置的,格式设置的,格式为为LP.mc=0.8。4.2.4 BP网络训练函数网络训练函数1、函数、函数trainbfg 函数函数trainbfg为为BFGS准牛顿准牛顿BP算法函数,除算法函数,除BP网络外,该函数也可以训练任意形式的神经网络,其网络外,该函数也可以训练任意形式的神经网络,其使用格式为:使用格式为:net,TR,Ac,E1=trainbfg(NET,Pd,T1,Ai,Q,TS,VV,TV)其中,其中,NET为待训练的神经网络;为待训练的神经网络;Pd为有延迟的输入向量;为有延迟的输入向量;T1为层次目标向量;为层次目标向量;Ai为初始的延迟条件;为初始

27、的延迟条件;Q为批量;为批量;TS为时为时间步长;间步长;VV用于确认向量结构或者为空;用于确认向量结构或者为空;TV用于检验向量结用于检验向量结构或者为空;构或者为空;net为训练后的神经网络;为训练后的神经网络;TR为每步训练的有信为每步训练的有信息记录,包括:息记录,包括:TR.epoch时刻点,时刻点,TR.perf训练性能训练性能,TR.vperf确认性能,确认性能,TR.tperf检验性能;检验性能;Ac为上一为上一步训练中聚合层的输出;步训练中聚合层的输出;E1为上一步训练中的层次误差。为上一步训练中的层次误差。BP网络默认训练参数网络默认训练参数参数名参数名功能功能缺省值缺省值

28、net.trainParam.goal目标函数设定值目标函数设定值0net.trainParam.epochs最大迭代次数最大迭代次数100net.trainParam.show显示中间结果的周期显示中间结果的周期25net.trainParam.time训练时间,训练时间,inf表示训练时间不限表示训练时间不限infnet.trainParam.lr整批学习的学习效率整批学习的学习效率0.01net.trainParam.mc势能学习规则势能学习规则traingdm的势能率的势能率0.9net.trainParam.min_grad最小性能梯度最小性能梯度1e-6net.trainParam

29、.max_fail最大确认失败次数最大确认失败次数52、函数、函数traingd函数函数traingd是梯度下降是梯度下降BP算法训练函数,其使用格算法训练函数,其使用格式:式:net,TR,Ac,E1=traingd(NET,Pd,T1,Ai,Q,TS,VV,TV)3、函数、函数traingdm函数函数traingdm是梯度下降动量是梯度下降动量BP算法训练函数,其使算法训练函数,其使用格式:用格式:net,TR,Ac,E1=traingdm(NET,Pd,T1,Ai,Q,TS,VV,TV)4.2.5 性能函数性能函数1、函数、函数mse函数函数mse为均方差性能函数,其使用格式为:为均方差

30、性能函数,其使用格式为:perf=mse(e,x,pp)perf=mse(e,net,pp)其中,其中,e为误差向量矩阵;为误差向量矩阵;x为所有的权值和阈值向量为所有的权值和阈值向量,可忽略;,可忽略;pp为性能参数,可忽略;为性能参数,可忽略;net为待评定的为待评定的神经网络;神经网络;perf为函数的返回值,为平均绝对误差。为函数的返回值,为平均绝对误差。应用实例:应用实例:clc; clear; %清屏,清除内存清屏,清除内存%构建网络结构构建网络结构net=newff(-10 10,4 1,logsig,purelin);p = -10 -5 0 5 10;t = 0 0 1 1

31、1;y = sim(net,p);e = t-yperf = mse(e)e = -2.4471 -2.6697 -0.8825 -0.5951 -0.0973perf = 2.85162、函数、函数mseregperf=msereg(e,x,pp)perf=msereg(e,net) 函数函数msereg是在函数是在函数mse基础上增加一项网络权基础上增加一项网络权值和阈值的均方值。值和阈值的均方值。 在使用该函数前,需要设定性能参数在使用该函数前,需要设定性能参数pp,如,如pp.ration=0.6,该参数的意义是误差相对应权值和阈,该参数的意义是误差相对应权值和阈值的重要性。此时,值的

32、重要性。此时,函数返回值函数返回值=返回误差返回误差pp.ration+权值或阈值均方权值或阈值均方(1-pp.ration)应用实例:应用实例:clc; clear; %清屏,清除内存清屏,清除内存%构建网络结构构建网络结构net=newff(-2,2,4,1,tansig,purelin, trainlm,learngdm, msereg);p = -2 -1 0 1 2;t = 1 1 0 1 0;y = sim(net,p);e = t-y;net.performparam.ratio = 0.92;perf = msereg(e,net)e = -0.2134 -0.8307 -1.

33、5266 -1.0537 -1.0837perf = 3.0414函数函数simsim: simulates neural networks. Y,Pf,Af,E,perf = sim(net,P,Pi,Ai,T) takes:net: Network;P: Network inputs Pi: Initial input delay conditions (default = zeros) Ai: Initial layer delay conditions (default = zeros) T: Network targets (default = zeros) returns:Y: N

34、etwork outputs Pf: Final input delay conditions Af: Final layer delay conditions E: Network errorsperf: Network performance应用实例应用实例x=-4:.5:4;y=x.2-x;net=newff(minmax(x),minmax(y),10);net=train(net,x,y);xx=-4:.2:4;yy=net(xx);plot(x,y,o-,xx,yy,*-)title(新版newff)net1=newff(minmax(x),10,1,tansig,purelin,

35、trainlm);net=train(net1,x,y);yy2=net(xx);figure(2);plot(x,y,o-,xx,yy2,*-)title(旧版newff)4.3 组件神经网络的注意事项组件神经网络的注意事项4.3.1 神经元节点数神经元节点数v网络的输入与输出节点数是由实际问题的维数决定网络的输入与输出节点数是由实际问题的维数决定的,与网络性能无关。的,与网络性能无关。v隐含层节点数隐含层节点数l目前还没有统一的规范来解决,一目前还没有统一的规范来解决,一般可利用下面两个经验公式之一来确定。般可利用下面两个经验公式之一来确定。anml51. 035. 077. 054. 2

36、212. 043. 0nmnmnl其中,其中,m,n分别为输入、输出节点数目;分别为输入、输出节点数目;a为为1-10之间的常数之间的常数4.3.2 数据预处理和后期处理数据预处理和后期处理 MATLAB中提供的预处理方法有:中提供的预处理方法有:(1)归一化处理:将每组数据都变为)归一化处理:将每组数据都变为-11之间的数,相关的之间的数,相关的函数有:函数有:mapminmax、premnmx、postmnmx、tramnmx(2)标准化处理:将每组数据都化为均值为)标准化处理:将每组数据都化为均值为0、方差为、方差为1的一的一组数据,相关的函数有:组数据,相关的函数有:prestd、po

37、ststd、trastd(3)主成分分析:运用正交处理,可减少数据的维数,相关)主成分分析:运用正交处理,可减少数据的维数,相关的函数有:的函数有:prepca、trapca(4)回归分析与相关性分析:相关的函数为)回归分析与相关性分析:相关的函数为postrg等等premnmx函数函数premnmx语句的语法格式是:语句的语法格式是:pn,minp,maxp,Tn,mint,maxt=premnmx(P,T)pn,minp,maxp = premnmx(p)其中:其中:P,T分别为原始输入和输出数据;分别为原始输入和输出数据;minp和和maxp分别为分别为P中的最小值和最大值;中的最小值和

38、最大值;mint和和maxt分别为分别为T的最小值和最大值;的最小值和最大值;Pn,Tn分别为归一化后的输入、输出数据分别为归一化后的输入、输出数据pn = 2*(p-minp)/(maxp-minp) - 1 premnmx函数用于将网络的输入数据或输出数据函数用于将网络的输入数据或输出数据进行归一化,归一化后的数据将分布在进行归一化,归一化后的数据将分布在-1,1区间内。区间内。tramnmx函数函数 在训练网络时如果所用的是经过归一化的样本数在训练网络时如果所用的是经过归一化的样本数据,那么以后使用网络时所用的新数据也应该和样本据,那么以后使用网络时所用的新数据也应该和样本数据接受相同的

39、预处理,这就要用到数据接受相同的预处理,这就要用到tramnmx。tramnmx函数格式:函数格式:pn=tramnmx(P,minp,maxp)其中:其中:vP和和Pn分别为变换前、后的输入数据分别为变换前、后的输入数据vmaxp和和minp分别为分别为premnmx函数找到的最大值和最小值函数找到的最大值和最小值pn = 2*(p-minp)/(maxp-minp) - 1。postmnmx函数函数postmnmx函数是将已被函数是将已被premnmx规一化的数据进行规一化的数据进行反规一化处理。反规一化处理。postmnmx函数语法格式:函数语法格式:P,T=postmnmx(pn,mi

40、np,maxp,tn,mint,maxt)其中:其中:Pn,Tn分别为归一化的输入、输出数据;分别为归一化的输入、输出数据;minp和和maxp分别为分别为P中的最小值和最大值;中的最小值和最大值;mint和和maxt分别为分别为T的最小值和最大值;的最小值和最大值;P,T分别为还原的输入和输出数据;分别为还原的输入和输出数据; postmnmx函数主要作用是将输出的结果映射回归函数主要作用是将输出的结果映射回归一化之前的数据范围。一化之前的数据范围。prestd、poststd、trastd函数函数vprestd(规范化数据为(规范化数据为0均值,单位标准差)均值,单位标准差)vpostst

41、d将已被将已被prestd规范化的数据进行反规范处理规范化的数据进行反规范处理vtrastd传递预先计算过的均值和标准差的数据。传递预先计算过的均值和标准差的数据。prestd语句的语法格式是:语句的语法格式是:pn,meanp,stdp,tn,meant,stdt = prestd(p,t)pn,meanp,stdp = prestd(p)其中:其中: p和和pn分别为变换前、后的输入数据分别为变换前、后的输入数据 meanp是是p对应行数据的平均值对应行数据的平均值 stdp 是是p对应行数据的标准方差对应行数据的标准方差pn = (p-meanp)/stdp4.3.3 学习速率的选定学习

42、速率的选定 学习速率参数学习速率参数net.trainparam.lr不能选择的太大不能选择的太大,否则会出现算法不收敛的情况;也不能太小,否,否则会出现算法不收敛的情况;也不能太小,否则会使训练过程事件太长。一般选择则会使训练过程事件太长。一般选择0.010.1之间的之间的值,再根据训练过程中梯度变化和均方误差变化值值,再根据训练过程中梯度变化和均方误差变化值来确定。来确定。4.4 应用实例应用实例4.4.1 基于基于MATLAB工具箱的公路运量预测工具箱的公路运量预测1、问题的描述、问题的描述 公路运量主要包括客运量和货运量两方面,据公路运量主要包括客运量和货运量两方面,据研究,某地区的公

43、路运量主要与该地区的人数、机研究,某地区的公路运量主要与该地区的人数、机动车数量和公路面积有关。下表给出了某地区动车数量和公路面积有关。下表给出了某地区20年年的公路运量相关数据。根据统计,该地区的公路运量相关数据。根据统计,该地区2010、2011年的人数分别为年的人数分别为73.39和和75.55万人,机动车数量万人,机动车数量分别为分别为3.9635和和4.0975万辆,公路面积分别为万辆,公路面积分别为0.9880和和1.0268万平方千米。请利用万平方千米。请利用BP网络预测该地区网络预测该地区2010、2011两年的公路客运量和货运量。两年的公路客运量和货运量。年份年份 人口数量人

44、口数量/万人万人 机动车数量机动车数量/万辆万辆 公路面积公路面积/万平方千米万平方千米 公路客运量公路客运量/万人万人 公路货运量公路货运量/万人万人199020.55 0.60 0.09 51261237199122.44 0.75 0.11 62171379199225.37 0.85 0.11 77301385199327.13 0.90 0.14 91451399199429.45 1.05 0.20 104601663199530.10 1.35 0.23 113871714199630.96 1.45 0.23 123531834199734.06 1.60 0.32 15750

45、4322199836.42 1.70 0.32 183048132199938.09 1.85 0.34 198368936200039.13 2.15 0.36 2102411099200139.99 2.20 0.36 1949011203200241.43 2.25 0.38 2043310524200344.59 2.35 0.49 2259811115200447.30 2.50 0.56 2510713320200552.89 2.60 0.59 3344216762200655.73 2.70 0.59 3683618673200756.76 2.85 0.67 40548207

46、24200859.17 2.95 0.69 4292720803200960.63 3.10 0.79 43462218042、BP网络求解过程网络求解过程v(1)原始数据的输入)原始数据的输入v(2)数据归一化)数据归一化v(3)网络训练)网络训练v(4)对原始数据进行仿真)对原始数据进行仿真v(5)将原始数据仿真的结果与已知样本进行对比)将原始数据仿真的结果与已知样本进行对比v(6)对预测数据进行仿真)对预测数据进行仿真程序分析:程序分析:(1)原始数据的输入)原始数据的输入clc%原始数据原始数据 %人数人数(单位:万人单位:万人)sqrs=20.55 22.44 25.37 27.13

47、 29.45 30.10 30.96 34.06 36.42 38.09 39.13 39.99 . 41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63;%机动车数机动车数(单位:万辆单位:万辆)sqjdcs=0.6 0.75 0.85 0.9 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25 2.35 2.5 2.6. 2.7 2.85 2.95 3.1;%公路面积公路面积(单位:万平方公里单位:万平方公里)sqglmj=0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.

48、34 0.36 0.36 0.38 0.49 . 0.56 0.59 0.59 0.67 0.69 0.79;%公路客运量公路客运量(单位:万人单位:万人)glkyl=5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 . 22598 25107 33442 36836 40548 42927 43462;%公路货运量公路货运量(单位:万吨单位:万吨)glhyl=1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524 1

49、1115 . 13320 16762 18673 20724 20803 21804;p=sqrs;sqjdcs;sqglmj; %输入数据矩阵输入数据矩阵t=glkyl;glhyl; %目标数据矩阵目标数据矩阵(2)对输入数据矩阵和目标矩阵的数据进行归一化)对输入数据矩阵和目标矩阵的数据进行归一化%利用利用premnmx函数对数据进行归一化函数对数据进行归一化pn,minp,maxp,tn,mint,maxt=premnmx(p,t); % 对于输入矩阵对于输入矩阵p和输出矩阵和输出矩阵t进行归一化处理进行归一化处理dx=-1,1;-1,1;-1,1; %归一化处理后最小值为归一化处理后最小

50、值为-1,最大值为,最大值为1(3)网络训练)网络训练%BP网络训练网络训练net=newff(dx,3,7,2,tansig,tansig,purelin,traingdx); %建立模型,并用建立模型,并用梯度下降法训练梯度下降法训练net.trainParam.show=1000; %1000轮回显示一次结果轮回显示一次结果net.trainParam.Lr=0.05; %学习速度为学习速度为0.05net.trainParam.epochs=50000; %最大训练轮回为最大训练轮回为50000次次net.trainParam.goal=0.65*10(-3); %均方误差均方误差ne

51、t=train(net,pn,tn); %开始训练,其中开始训练,其中pn,tn分别为输入输出样本分别为输入输出样本(4)对原始数据进行仿真)对原始数据进行仿真%利用原始数据对利用原始数据对BP网络仿真网络仿真an=sim(net,pn); %用训练好的模型进行仿真用训练好的模型进行仿真a=postmnmx(an,mint,maxt); % 把仿真得到的数据还原为原始的数量级;把仿真得到的数据还原为原始的数量级;(5)原始数据仿真的结果与已知数据进行对比测试)原始数据仿真的结果与已知数据进行对比测试%本例因样本容量有限使用训练数据进行测试,通常必须用新鲜数据进行测本例因样本容量有限使用训练数据

52、进行测试,通常必须用新鲜数据进行测试试x=1990:2009;newk=a(1,:);newh=a(2,:);figure (2);%本例因样本容量有限使用训练数据进行测试,通常必须用新鲜数据进行测本例因样本容量有限使用训练数据进行测试,通常必须用新鲜数据进行测试试x=1990:2009;newk=a(1,:);newh=a(2,:);figure (2);subplot(2,1,1);plot(x,newk,r-o,x,glkyl,b-+) %绘值公路客运量对比图;绘值公路客运量对比图;legend(网络输出客运量网络输出客运量,实际客运量实际客运量);xlabel(年份年份);ylabel(客运量客运量/万人万人);subplot(2,1,2);plot(x,newh,r-o,x,glhyl,b-+) %绘制公路货运量对比图;绘制公路货运量对比图;legend(网络输出货运量网络输出货运量,实际货运量实际货运量);xlabel(年

温馨提示

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

评论

0/150

提交评论