灰色神经网络在山东省人口增长预测中的应用_第1页
灰色神经网络在山东省人口增长预测中的应用_第2页
灰色神经网络在山东省人口增长预测中的应用_第3页
灰色神经网络在山东省人口增长预测中的应用_第4页
灰色神经网络在山东省人口增长预测中的应用_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

灰色系统理论1.1灰色系统理论的基本原理在控制论中,人们不知的区域或是系统称为“黑箱”(blackbox),人们全部已知的区域或系统称为“白箱”。根据这一原理如果用“黑”表示信息完全未知,用“白”表示信息完全已知,那么信息不完全已知就用“灰”表示。部分信息已知,部分信息未知的系统就称之为灰色系统[15](GreySystem)。这里不完全已知的信息主要有四类,包括系统因素、因素关系、系统结构以及系统作用原理。对于“箱”的原理,研究重点在于外部,研究侧重外延。而系统理论侧重于系统的内涵,研究更多的关注内部的联系。在实际的研究中,并不是所有的信息都是全部已知的。由于系统变化性、人们对事物认知的局限性以及科学技术经济条件等的制约,大多数的信息都具有未知的一面,由此就产生了不确定性系统。模糊数学创始人查德的互克性原理指出:“当系统的复杂性日益增长时,我们做出系统特性的精密而有意义的描述的功能将相应降低,直至达到这样一个界限,及精密性和有意义(或适当性)变成相互排斥的特性”。可以得出片面的追求精密化,那么其有意义将降低。对于不确定性系统的研究,目前比较常用的方法包括灰色系统理论、模糊数学、概率统计等方法。这三种方法的共同点是都应用于不确定性系统,然而又各有不同。灰色系统主要研究对象为“部分信息已知、部分信息未知”的不确定性系统,通过部分已知的信息提取有价值的信息,对系统进行面熟和控制,能解决概率统计与模糊数学所不能解决的小样本数据的问题。灰色系统的基本原理概括如下[16-19]:公里1差异信息原理。即差异是普遍存在的,只要是信息就必然存在着差异。公里2解的非唯一性原理。即解不是唯一的,信息不确定的情况下,解是非唯一的与可约束的,求解的时候要定量分析与定性分析相结合。公里3最少信息原理。灰色系统的特点是运用最少的信息达到目的。信息量的多少正是灰色系统与其他系统的差别所在。充分利用最少信息解决问题是灰色系统的最大特色。公里4认知根据原理。即以信息为认知根据。信息可分为确定的信息和不确定的信息,同样其认知也可分为确定的认知和灰认知。完全已知的信息可以得到确定的认知,而未完全已知的信息可以得到灰认知。任何认知都是要以信息为依据的。公里5新信息优先原理。新信息往往更具时效性,同时也更能影响模型。在灰色系统理论中将新信息赋予更高的权重,可以提高准确性。公里6灰色不灭原理。信息普遍存在着不完全和不确定性。当未知成为已知又会出现新的未知。信息完全已知是暂时的,相对的;信息未知才是永恒的。1.1.1灰色系统理论的基本内容灰色系统理论经过不断的发展完善,建立了系统分析、评估、建模、预测、决策、优化、控制等多种技术与一体的理论体系。基础理论体系包含了灰色代数系统、灰色矩阵、灰色方程。基础方法体系包括序列算子以及灰色序列生成。主要有缓冲算子、累加生成算子、累减生成算子、级比生成算子、均值生成算子等。分析评估体系由灰色关联空间与灰色聚类评估构成。预测模型体系主要由灰色模型构成,其核心是GM(1,1)模型。决策模型体系以灰靶为主要特征,包括多目标智能灰靶决策、灰色关联决策、灰色聚类决策、灰色层次决策以及灰色局势决策。优化体系则体现在多种方法融合的灰色组合模型之中。1.1.2灰色系统的基本概念灰色系统的标志性体现在灰数、灰元以及会关系上。灰色系统的基本单元是灰数。我们把知道取值范围而不知道确切数值的数称之为灰数。通常用“”表示。灰数是指在一个区间或是一般的数集内不确定的数。灰数一本有一下六类:(1)仅有上界的灰数,记为,其中上确界,是一个确切值。(2)仅有下界的灰数,记为,其中下界,是一个确切值。(3)区间灰数,记为,区间灰数既有上确界又有下确界。(4)连续灰数与离散灰数。在某一区间内取多少个数组成的灰数为离散灰数。取某一连续区间内所有的灰数称为连续灰数。(5)黑数与白数,当时,为黑数;当时,为白数。(6)本征灰数与非本征灰数。灰数系统特征的主要表现形式是灰数,灰数的灰度是对灰数系统不确定的反映。灰数的灰度很大程度上要取决于其理论背景。灰色系统理论中,将随机过程看成是一定范围内变化的灰色量。灰色代数方程是指含有灰参数的代数方程。灰数方程代表的方程个数是由方程中的灰参数(灰元)的取值决定的。灰参数取不同的值对应得到不同的解。灰微分方程是指含有灰参数的微分方程。灰微分方程可以通过积分或者是向特征方程转化得到灰色代数方程,并以此求解。在实际工作中,数据搜集出现问题常会产生空缺的数据,有时也会出现个别异常值,在数据处理中需要用均值生成的方法来填充空缺。均值生成又分为两类,一类是非紧邻均值生成,另一类是紧邻均值生成。非紧邻均值生成是一种新信息与老信息的等权生成。GM模型建模时多采用紧邻均值生成,构造新序列。当空缺只是在序列的起点或是终点时,不能应用均值生成法,可以采用级比生成来填补空缺。灰色系统中,将灰色过程由灰变白可以通过累加生成的方法。累加可以帮助找出灰量在累积过程中的发展趋势,使杂乱的原始数据的积分特征或是规律能更加明显的表现出来。累加生成在灰色系统建模中占有重要的地位。设为原始数据序列,则为的一次累加生成AGO(accumlatinggenerationoperator)序列,记为1-AGO。为的r次累加生成AGO序列,记为r-AGO。(1-1)(1-2)(1-3)(1-4)(1-5)与累加生成互逆的是累减生成,一般记作IAGO,它对累加生成起到了还原的作用,是常用于获取增量信息的一种生成算法。1.1.3灰色系统预测灰色预测是应用GM(1,1)模型对数据序列进行预测,是对序列中的异常值的辨认,是对无规律的波形找出规律进行预测,其实质是将随机过程转化为灰过程。灰色预测主要有一下几个类型:(1)数列预测数列预测是对事物发展变化的大小以及时间同时进行预测。例如粮食产量的预测、商品销售量的预测、门诊量的预测等。既要知道其“大小”,也要知道其具体的“时间”。为了对变量进行预测,较常用的方法是建立GM(1,1)模型。也可以用合适的序列算子,建立适当的GM模型,进行精度检验后预测。其实质是光滑灰过程建模。(2)区间预测当原始数据较为凌乱时,模型拟合的精度难以达到要求,得不到确切的预测值,此时可以应用区间预测得到取值范围。(3)灾变预测灾变预测是以灾变日期序列为研究对象,建立GM(1,1)模型,找到其中规律,可以给出下一个或几个异常值出现的时刻。例如气温在某一范围波动,当气温高于或低于这一范围时,则成为灾变日期。那么气温变化的范围是一个灰数,实际的研究对象是异常值出现的时刻。灾变预测是一种跳变灰过程。(4)波形预测当原始数据呈现波形变化时,区间预测不能达到要求,可以根据原始数据的波形进行预测。(5)系统预测系统预测是对多个量进行预测,找出各个量之间的关系,对系统的主导作用进行预测。应用多维光滑灰过程建模。系统预测建模一般分为五步:第一步,建立语言模型,即通过定性分析,明确研究目标、方法、措施,并应用语言表达出来。第二步,建立图框模型,即找到语言模型中各因素之间的因果关系,并用框图描述出来。第三步,建立量化模型,即对各环节之间的因果关系加以量化。第四步,建立动态模型,即搜集原始数据,建立动态GM模型。第五步,对动态模型进行调整,优化配置,得到更优化的模型。1.2GM(1,1)模型灰色模型(GreySystems)简单记为GM。GM(1,1)模型是灰色模型的一种,其中括号中第一个“1”代表模型是一阶的,第二个“1”表示模型中变量的个数为一。1.2.1GM(1,1,)模型的建立GM(1,1)模型的原理是利用最小二乘法原理,解一阶灰微分方程。设为非负的原始数据序列,为的一次累加生成AGO序列,为的邻均值等权生成序列。(1-6)(1-7)(1-8)的灰导数为(1-9)(1-10)(1-11)若为参数列(1-12)最下二乘估计满足(1-13)GM(1,1)模型为(1-14)其中,为灰导数,a为发展系数,b为灰作用量。a反映了和的发展趋势。b在GM(1,1)模型中称为灰作用量,它的大小直接反映了数据的变化关系,灰色模型与同为采用输入输出建模方法的黑箱建模相比更注重于内涵,而这点直接体现在灰作用量上。灰作用量也是区别灰色系统理论与灰箱观点的重要依据。由于灰微分方程是无法求解的,所以为了得到最终的预测结果,需要先将灰微分方程白化,得到白化方程,再求解。GM(1,1)模型的白化方程为(1-15)解白化方程得到即为时间响应序列。所以GM(1,1)模型的时间响应序列为,(1-16)其还原值即为预测值,(1-17)1.2.2结果检验为了确保灰色模型具有较高的预测精度和可信程度,通常采用残差检验及后验差检验来评估建模的精度。求出与的残差绝对误差序列等值如下:绝对误差(1-18)相对误差(1-19)平均相对误差(1-20)模型精度需要通过计算模型的后验差比值得到,后验差比值需要通过计算标准差以及残差标准差得到。数据的标准差(1-21)残差标准差(1-22)后验差比值(1-23)小误差概率(1-24)模型精度(1-25)精度等级可分为4级。通常C值越小,P值越大,则模型精度越好,精度等级为4级,表明模型精度不合格。1.2.3残差GM(1,1)模型当模型精度不够时,可以采用残差序列代替原始序列建立GM(1,1)模型,对原来的模型修正。设为残差序列(1-26)其中(1-27)若存在满足(1)的符号一致(2)可建模的残差尾段(1-28)用残差尾段通过一次累加生成,得到残差序列的1-AGO序列(1-29)GM(1,1)时间响应式为(1-30)模拟序列(1-31)(1-32)残差GM(1,1)为(1-33)1.2.4动态模型与新陈代谢模型为了反映未来的随机扰动或驱动因素对灰色系统的影响,提高预测精度,引入动态GM(1,1)模型,在预测的过程中,原始数据的多少会直接影响预测结果。原始数据为时的建模分类:(1)用建立的模型为全数据GM(1,1)模型。(2)对于任意大于1的,用建立的模型称为部分数据GM(1,1)模型(3)假设最新得到的信息为,则将新信息加入原始序列中,应用建立的模型为新信息GM(1,1)模型。(4)加入新信息,相应的去掉老信息建立的模型为新陈代谢GM(1,1)模型(5)不断的根据新信息,调整建模数据,建立GM(1,1)模型为动态模型。第二章神经网络理论2.1人工神经网络2.1.1生物神经元人类大脑中约含有100亿神经元,亿神经突触,单个神经元处理一个事件只需要秒。神经元是大脑处理信息的基本单元,它是由细胞膜、细胞质以及细胞核3以及轴突组成的。与其他细胞相比,其不同之处在于神经元的形态,具有很多突起,又可以分为细胞体、树突以及轴突。这三部分功能各不相同。细胞体的突起主要功能是信息的传递,树突是引入输入信息的突起,轴突则是输出端突起。细胞体的延伸部分是树突,它不断变细,与其他神经元的轴突末端相互联系形成“突触”。信息传递就是在突触完成的,此处神经元并未连通。突触有兴奋性和机制性两种,这两种状态不能同时发成。每个神经元的突触数目最多可以达到10个。最常见的突触是化学突触,它将电信号转化为化学信号,再将化学信号转化为电信号输出。神经元之间连接的极性和强度各不相同,可以进行调整,人脑储存信号的功能就是基于这一特性。神经元在处理信息的过程中具有可塑性,可以进行调节适应。在同一时间不同突触,或是不同时间同一突触的信息可以很好的整合。突触的传递具有学习与疲劳的特性。2.1.2人工神经网络简介人工神经网络(ArtificalNeuralNetworks,ANNs),是在对动物的行为特征进行模仿的基础上形成的可以对信息进行处理的一种数学算法模型。神经网络系统很复杂,其原理是通过对节点之间的连接关系进行调整,来处理信息。人工神经网络是模仿人类的形象思维(直观思维),将结构简单的单一神经元组合成为网络系统实现其功能。人工神经网络是大量的神经元广泛连接而成的。人工神经元需要具备的条件包括三点。一是连接,神经元之间的连接为权值与大脑神经元不同,权值可以为在正值与负值之间。而是具有时空整合功能的信息累加器。三是具有限制神经元输出作用的激发函数。神经元数学模型即McCullch-Pitts模型表达式为(2-1)其中,为阈值,为权系数。当输入超出阈值时,取值为+1,当输入不超过阈值时,取值为-1。图2-1神经元结构图2-1为神经元的结构示意图,代表输入,是权值,表示阈值,神经元输入超出阈值时,激发函数决定了其输出方式。下面简单介绍几种激发函数。阶跃函数(2-2)S函数(2-3)线性函数(2-4)分段线性函数(2-5)这四种激发函数中,阶跃式函数属于离散型,取值为0或1反映了神经元兴奋或是抑制的特性,通常应用在判断是否超过阈值;S函数是非线性的,其应用很广泛;线性函数是线性连续的,对神经元的网络输入进行了一定程度的放大;分段线性函数当线性区域放大无限大时,可以简化为阶跃式函数。2.1.3人工神经网络的特点(1)联想记忆功能人工神经网络有很好的联想记忆功能。所谓记忆是指给出指定输入x时输出为y,那么下次再输入x后即可得到y。由于每次输入不可能都完全精确,当有噪声存在时,输入的含噪声的x仍能得到y。(2)学习适应能力人工神经网络具有良好的自学习、自适应能力。自学习能力又分为有导师学习(SupervisedTraining)和无导师学习(SupervisedLearning)。(3)非线性人工神经元有激活和抑制两种状态,在数学上是非线性的。2.1.4神经网络的分类按照不同的方法可以对神经网络进行多种分类:(1)根据网络性能可以将神经网络分为连续型与离散型网络、确定型和随机型网络。(2)根据网络结构将神经网络分为前馈神经网络、反馈神经网络、强化式构架网络。(3)根据学习方式神经网络可以分为有导师学习神经网络和无导师学习神经网络。(4)根据连接突触的性质可以分为一阶线性关联网络和高阶非线性关联神经网络。2.2前馈神经网络及其BP算法2.2.1前馈神经网络图2-2前馈神经网络示意图前馈神经网络(FeedforwardNetwork)又分为单层前馈神经网络与多层前馈神经网络。单层前馈神经网络是指神经元是“单层”的。多层前馈神经网络是指在神经网络中,各层神经元只接受其前一层神经元所给出的信号,各层内部神经元之间无连接。信号传播是向着同一方向进行的。如图2-2所示,第层神经元只接受第层神经元所给出的信号,信号继续由第层神经元向前传至第层神经元。2.2.2BP算法误差反向传播算法(ErrorBack-propagationAlgorithm)简称BP算法,其具体过程包括正向传播和反向传播。是在训练中不断的将输出值与真实值之间的差值反传入神经网络,将误差分配给各层的神经元,通过调整各层的权重,以达到缩小理论值与实际值之间的差异。在BP算法中采用梯度下降法修改权系数。三层神经网络是指包括输入层、输出层以及隐含层在内的三层。其中隐含层可以为一层,也可以为多层。在该理论中任何神经网络都可以看成是三层的神经网络。BP神经网络的主要用途包括函数逼近、模式识别、分类以及数据压缩。权值的修正设一个三层神经网络,输入层,其中的任一神经元用表示;隐含层为,其中任一神经元用表示;输入层为,其中任一神经元用表示。输入层与隐含层之间的权值为,隐含层与输入层的权值为。神经元输入为,激励输出为,假设神经元的激励函数为Sigmoid函数。误差信号反向传播:隐含层与输出层的权值修正,权值修正值与误差对权值的偏微分成正比:(2-6)由于(2-7)(2-8)得到(2-9)设局部梯度为(2-10)激励函数为(2-11)得到(2-12)(2-13)根据Delta学习规则,的修正量为(2-14)(2-15)是学习步长,有正向传播过程得到,下次迭代时隐含层任一节点与输出层任一节点间权值为(2-16)同理可以得到隐含层与输入层之间的权值修正值(2-17)(2-18)激活函数的选择BP神经网络的激活函数不能采用阈值函数,常使用S型函数和线性函数。输出节点的激活函数有两种选择,如果应用BP神经网络做分类,则输出层节点一般用Sigmoidal函数或硬极限函数;如应用BP神经网络来逼近函数,则输出层节点应该用线性函数。网络层数理论上已经证明:具有偏差和至少一个S型隐含层加上一个线性输出层的神经网络,可以逼近任何有理函数[20]。神经网络层数增加可以降低误差,但并不是层数越多越好,层数增加同时会使网络复杂,训练时间更长。想降低误差还可以通过增加隐含层中的神经元数目来达到效果。隐含层神经元数神经元的个数之间关系到网络的学习效果,数量太少则需要的训练次数多,训练精度差;数量太多所需的训练时间增加,同时可能产生不协调的拟合。学习速率网络训练中权值的变化量是由学习速率决定的。学习速率一般在0.01-0.8之间。学习速率达,网络训练不稳定;学习速率小,训练的时间会增加,收敛慢。一般会选择小的学习速率保证系统的稳定性。BP算法具体步骤BP算法包括两部分:第一部分是信息正向传播,指输入信息从输入层到隐含层再传到输出层,每一层的神经元只影响下一层的神经元;第二部分是误差的反向传播,指输入层没有得到期望输出结果,计算输出层误差,并沿着与之前传播方向相反的方向调整权值,以达到期望结果。假设有一个层的神经网络,第一层是输入层,第层是输出层,中间是隐含层。第层第个神经元与第层的第个神经元之间的连接权用表示,用表示节点的阈值。那么BP算法的计算步骤如图2-3所示:图2-3BP算法流程图用非零的随机数初始化权值和阈值;输入的训练样本和;计算各层节点的输出(对于第个样本)(2-19)其中,既是节点的输出,又是节点的输入。计算各层节点的误差信号输出层:(2-20)隐含层:(2-21)反向传播权值修正:(2-22)其中,为学习因子,为加速收敛的动量因子。计算误差(2-23)2.3神经网络学习方法2.3.1无导师学习无导师学习是指神经网络,在输入数据后,网络按照规则不断的对参数以及结构进行调整,自行找出数据规律,输出数据。这一过程是自学习过程。该方法适用于要找出数据规律的数据,对于输入数据想要得到特定的输出结果的数据则并不适用。(1)Hebb学习规则对于两个相连接的神经元,如果他们同时出于激活兴奋状态,则他们之间的连接是增强的。如果他们不是同时被激活,则他们之间的连接削弱[21]。Hebb学习规则是通过判断相连接的两个神经元的激活状态来改变权值。其数学模型如下。(2-24)其中,、分别代表时刻与时刻神经元的连接强度,表示给定的学习率,、是神经元在时刻的输出。(2)感知器学习规则感知器学习规则调整权值时是通过输出值与目标值之间的差异。(3)学习规则学习规则主要是运用S函数,通过调整权值使得误差减小,不断调整到达期望水平。该规则应用与BP神经网络中。Widrow-holf学习规则调整神经元的权值,使得实际输出与期望输出之间的差距减小,最终达到一个稳定状态。对于神经元权值的调整与神经元的输入以及误差成比例。调整的范围是在神经元的周围,是局部调整。在自适应线性单元、硬极限函数中应用Widrow-holf学习规则。2.3.2有导师学习有导师学习中的导师是指输入数据以及目标数据。数据输入后,通过得到的输出数据与目标数据之间的误差来对网络的参数以及结构进行调整。在不断的输入与调整后得到目标数据。这一过程称有导师学习。利用这种网络之前需要对网络进行训练。第三章灰色神经网络组合模型3.1组合模型的可行性数据预测有很多种方法,比如指数平滑法、ARIMA预测方法、回归的方法、灰色预测方法、神经网络预测方法等等,这几种方法有各自的优点,当要对一个数据进行预测时,首先是根据数据本身的特点,选择合适的预测方法。当对预测结果的要求不同或是时间的变化,最开始选择的方法可能不是最合适的。此时组合预测模型出现了。将两种预测模型通过一定的方式结合起来,组成的新模型的预测方法有更好的效果。首先,每个模型都有自己的优势,组合模型正是将这两种优势结合起来。其次,每个模型所关注的角度不同,组合模型可以提供不同的角度来研究预测问题,从而得到更好的预测结果。3.1.1灰色模型的优缺点灰色模型与其他预测模型相比,可以通过少量的样本量(最少为4个数据),找出数据内部的联系。在预测时,所需的样本量少的实际预测中充分显示了其优越性。但与此同时,应用灰色模型对波动性大的样本进行预测时,往往效果不理想。灰色模型也存在着对历史数据有很大的依赖性的问题,对历史数据的异常点难以把握。3.1.2神经网络模型的优缺点神经网络模型具有拟合非线性数据的特点,可以逼近任意非线性函数。具有强大的容错能力,局部出现错误时不会对整个网络产生过大的影响。将输入输出数据输入网络,网络可以通过学习、自学习达到良好的效果。BP神经网络是以误差平方和为目标函数,采用梯度法求最小值,当误差平方和函数不是正定时,会产生局部极小点,此时的网络无解。BP神经网络需要大量的训练样本,但当样本量过大时,会使学习速率下降。当样本量小时,预测误差会增大。隐含层的节点数通常是根据经验选取的,预测的精度不够稳定。3.2组合模型3.2.1串联型灰色神经网络模型(SGNN)对同一已知数列,取用不同的数据建立GM(1,1)模型,得到的预测结果是不同的.为了得到与真实值最接近的预测结果,可对多个灰色预测的结果使用神经网络进行组合,此即为串联型灰色神经网络,如图2所示.图3-1串联型灰色神经网络神经网络的结构一般采用3层BP网,其输入为各种GM的预测结果,输出是组合预测结果。神经网络输人层神经元个数为不同的GM模型数,输出层神经元个数只有一个,隐含层神经元个数可用试验方法确定。采用误差反向传播学习方法训练神经网络。对于训练好的神经网络,当输入端为各种GM的预测值时,其输出是用神经网络组合后的预测值。文献[23]采用了这种GNN模式对电力系统负荷进行预测。串联型、并联型灰色神经网络在本质上都是组合预测。理论上可以证明,组合预测模型是非劣性的,预测结果优于单纯的GM模型和基本的神经网络模型。SGNN实质是利用神经网络的非线性拟合能力求得若干灰色模型组合权重,其对模型的组合是非线性的。而PGNN对模型的组合有线性的,也有非线性的。3.2.2并联型灰色神经网络模型(PGNN)在这种模型中,首先采用灰色GM(1,1)模型和神经网络分别进行预测,然后对预测结果加以适当地有效组合作为实际预测值。其原理见图3-2。原始数据原始数据GM(1,1)模型神经网络模型组合预测预测结果图3-2并联型灰色神经网络PGNN实质是组合预测,目的是综合利用各种方法所提供的信息,避免单一模型丢失信息的缺憾,减少随机性,提高预测精度.根据组合预测原理,可以有3种不同的组合预测方式,即:算术平均组合、几何平均组合和调和平均组合,其组和公式分别为(3-1)(3-2)(3-3)式中,N为待预测数据总数;为实际值;设分别为使用灰色GM(1,1)模型和神经网络的预测值;为2种预测模型的加权系数。预测模型的加权系数如何确定是一个关键问题。本文提出一种根据有效度确定加权系数的方法,下面以常用的线性组合模型为例说明该方法。文献[22]提出预测方法有效度的概念,该指标以预测精度反映预测方法的有效性,具有一定的合理性.其思想如下:令(3-4)则A,构成组合预测的精度序列,该序列的均值E与均方差分别为(3-5)定义组合预测方法的有效度为(3-6)S越大,说明预测模型的精度越高,预测误差越稳定,模型越有效.文献[22]给出了一个对此优化模型求近似最优解的方法,但是该求解过程十分复杂.本文借鉴有效度概念,使用一个直接简单、物理意义明确的方法确定。设和,分别为使用灰色GM(1,1)模型和神经网络预测的精度序列,即(3-7)由式(3-5)、(3-6)可求出灰色GM(1,1)模型、神经网络的有效度和,将和归一化作为加权系数。即3.2.3嵌入型灰色神经网络模型(IGNN)IGNN是在一般的神经网络(多为BP网)基础上,在其前加上一个灰化层对输入数据做灰化处理,在其后加上一个白化层对网络的灰色输出信息进行还原,以得到确定的输出结果,模型见图3-3.图3-3嵌入型灰色神经网络灰化层的作用是弱化原始数据的随机性,这样用某种函数逼近就比较容易.灰化层一般将原始数据进行一次累加或多次累加生成新数据,作为神经网络的训练样本.由于累加数据具有单调增加趋势,易为神经网络的非线性激励函数所逼近,网络学习时间大大缩短,在提高预测精度的同时加快了收敛进程。文献[27]使用这种结构的灰色神经网络模型预测我省人口增长,得到较为理想的预测结果。第四章山东省人口增长的预测使用五种方法对山东省2001~2012年的总人口进行预测,使用平均相对误差、误差均方根、最大相对误差和最小相对误差指标衡量模型预测性能的优劣。表4.02001~2012年年末山东省总人口数年份总人口数年份总人口数200190412007936720029082200894172003912520099470200491802010957920059248201196372006930920129685资源来自:山东省统计局(/tjsj/nj2013/indexch.htm)4.1灰色模型对山东省人口增长的预测GM(1,1)建模序列长度为12,为保证预测精度,使用等维递推模型,即每次预测一年人口后,添加一个新数据,去掉一个最老的数据,保持数据序列的等长度,重新建模预测下一个值。这样新陈代谢,逐个预测,依次递补。预测结果见下表4-1表4.1GM(1,1)模型年份实际值预测值误差相对误差20019041904100200290829065.8-16.20.174820039125912610.011200491809708200592489247.5-0.50.0054200693099308.8-0.20.00212007936793384200894179432.715.70.1667200994709495.325.30.2672201095799558.3-20.70.2161201196379621.7-15.30.158820129685960524.2BP神经网络对山东省人口增长的预测神经网络为的BP,输入层、隐含层传递函数为Sigmoid型,输出层为线性传递函数。取12个数据作为样本训练网络,由于Sigmoid函数的值域为[0,1],为了提高网络收敛速度,对样本进行规范化处理,变换到[0,1]之间。设置最大学习次数为10000次,学习速率为0.01,学习目标取误差平方和为0.1,训练精度为,设置网络连接权的初始值为[-1,1]的随机数。训练的预测结果如下表4-2.表4-2BP神经网络模型年份实际值预测值误差相对误差200190419040.4-0.60.0066200290829076.2-5.80.0639200391259121.8-3.20.035120049180918000200592489246.9-1.10.0119200693099308-10.107200793679328-390.4164200894179412-50.0531200994709439.1-30.90.3263201095799516.9-62.10.6483201196379599.8-37.10.386201296859684.9-0.10.0014.3串联型灰色神经网络模型的预测为了减小误差,计算7个GM(1,1)模型GM1,GM2,…,GM7,将其作为BP模型的输入值进行训练,最终得出串联型灰色神经网络模型的预测值。如表4-3表4-3串联型灰色神经网络模型(SGNN)年份实际值预测值误差相对误差2001904190066200290829078.5-3.50.0385200391259373200491809316200592489243.1-4.90.053200693099300112007936793395200894179412-50.053120099470947660.0634201095799573.1-5.90.06162011963796394201296859683.8-1.20.01244.4并联型灰色神经网络模型的预测根据12个数据的真实值和预测值,计算BP网络的有效度,得有效度。同理可计算GM(1,1)的有效度,得。因此,2种预测模型的加权系数。使用算术平均组合模型,得到的预测结果如下表4-4.表4-4并联型灰色神经网络模型(PGNN)年份实际值预测值误差相对误差200190419040.7-0.30.0033200290829071-110.1211200391259123.9-1.10.0121200491809183.3-3.30.0359200592489247.2-0.80.0087200693099308.4-0.60.0064200793679349.4-17.60.1879200894179422.4-5.40.0573200994709467.3-2.70.0285201095799537.7-41.30.4312201196379610.8-26.20.271920129685960214.5嵌入型灰色神经网络模型的预测BP网络前的灰化层将原始数据做一次累加平滑预处理,BP网络后的白化层对输出信息进行一次累减还原处理。经多次实验,取前12个数据作为样本训练网络,网络训练收敛后用于预测,结果如下表4-5表4-5嵌入型灰色神经网络模型(IGNN)年份实际值预测值误差相对误差20019041904100200290829094.512.50.1376200391259712200491809111200592489242.7-5.30.0573200693099304-50.0537200793679351-160.1708200894179408.1-8.90.0945200994709456.6-13.40.141520109579956162011963796706201296859699.714.70.15184.6结论表4-6对5种模型预测相对误差绝对值的统计结果进行了比较。从表4-1~表4-5可以看出,灰色神经网络的预测结果优于单一的灰色GM(1,1)和单纯的神经网络,各项指标均有所降低。在个别数据上的预测误差较大,这与灰色神经网络的组合关系有密切的联系,如果对原始数据进一步处理后再建模,预测精度将有所提高。表4-6预测相对误差统计结果指标GNN单一模型PGNNSGNNIGNNBP模型GM(1,1)平均相对误差0.09720.03650.09350.17130.093误差均方根0.12980.01970.0480.20750.0933最大相对误差0.43120.06340.17080.64830.2672最小相对误差0.00210.0011000从表4-6及上图可以看出串联型灰色神经网络模型有很高的拟合精度。最后,用该组合预测模型对2013~2022年山东省人口总量预测,预测结果如下表4-7所示。表4-72013~2022年山东省人口总量的预测值年份20132014201520162017预测值(万人)975098159880994610011年份20182019202020212022预测值(万人)1007710144102111027910348第五章讨论本文利用该模型对山东省人口进行拟合和预测,预测的结果表明,山东未来人口将保持持续增长的态势,山东人口的发展形势不容乐观。这与山东省人口基数大的实际情况基本相符,可为山东省相关政府部门指定人口规划提供参考。PGNN和SGNN对几种方法的预测结果进行线性和非线性的集成,可以避免单一模型丢失信息的缺点,而IGNN在提高预测精度的同时可以加快神经网络的收敛。在以上人口预测实例中,5个模型的预测结果及其比较,说明灰色神经网络预测的各项指标多优于单一的GM(1,1)和神经网络,充分显示了GNN模型的优越性。如果对GNN从以下方面进行改进,可望满足实际需要,并适用于实践。(1)选择合适的神经网络结构,增加隐层节点数,增加网络学习时间,选择有代表性的样本训练网络。(2)GNN中灰色模型根据具体情况选用GM(N,1)、高阶GM(1,1)(N>=2)、零阶的GM(0,N),以及其他改进的灰色模型。(3)对原始数据进行消噪处理后在建立GNN模型。附录GM(1,1)灰色系统代码functionf=GM(x0,m)%定义为函数gm(x)n=length(x0);x1=zeros(1,n);x1(1)=x0(1);fori=2:n%计算累加序列x1x1(i)=x1(i-1)+x0(i);endi=2:n;%对原始数列平行移位并负值给yy(i-1)=x0(i);y=y';i=1:n-1;c(i)=-0.5*(x1(i)+x1(i+1));B=[c'ones(n-1,1)];au=inv(B'*B)*B'*y%计算参数a,u矩阵i=1:m;%计算预测累加数列的值ago(i)=(x0(1)-au(2)/au(1))*exp(-au(1)*(i-1))+au(2)/au(1);yc(1)=ago(1);i=1:m-1;%还原数列的值yc(i+1)=ago(i+1)-ago(i);i=2:n;error(i)=yc(i)-x0(i);%计算残差值yc(1)=ago(1);i=1:m-1;%修正还原数列的值yc(i+1)=ago(i+1)-ago(i);c=std(error)/std(x0);%计算后验差比relerror=abs((error)-mean(error)*ones(size(error)));[nrow,ncol]=size(relerror);p=0;fori=2:ncolifrelerror(1,i)<0.6745*std(x0)p=p+1;endendp=p/(n-1);w1=min(abs(error));w2=max(abs(error));i=1:n;%计算关联度w(i)=(w1+0.5*w2)./(abs(error(i))+0.5*w2);w=sum(w)/(n-1);au;%输出参数a,u的值ago;%输出累加数列ago的值x0;%输出原始序列值f=yc';%输出预测的值error;%输出残差的值c;%输出后验差比的值p;%输出小误差概率的值w%输出关联度endBP神经网络模型代码p=[];%训练样本值矩阵t=[];%期望值[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');net.trainParam.show=2000;net.trainParam.lr=0.01;net.trainParam.epochs=20000;net.trainParam.goal=1e-5;[net,tr]=train(net,pn,tn);pnew=p;pnewn=tramnmx(pnew,minp,maxp);anewn=sim(net,pnewn);anew=postmnmx(anewn,mint,maxt);y=anew'串联型预测模型代码p=[;..;...;..;...;..;..];%7组不同的GM(1,1)模型得到的7组人口预测值t=[];%人口总数的期望值(山东省人口的实际值)[pn,minp,maxp,tn,mint,maxt]=premnmx(p,t);%原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络traingdx,trainlmnet.trainParam.show=2000;%训练网络net.trainParam.lr=0.01;net.trainParam.epochs=10000;net.trainParam.goal=1e-5;[net,tr]=train(net,pn,tn);%调用TRAINGDM算法训练BP网络pnew=p;pnewn=tramnmx(pnew,minp,maxp);anewn=sim(net,pnewn);%对BP网络进行仿真anew=postmnmx(anewn,mint,maxt);%还原数据y=anew'并联型预测模型代码xGM=[90419065.891269186.59247.59308.89370.69432.79495.39558.39621.79685.5];xBP=[9040.49076.29121.891809246.99308932894129439.19516.99599.89684.9];xReal=[904190829125918092489309936794179470957996379685];%yt表示实际值,y帽1,2t分别表示用灰色GM(1,1)和BP得到的预测值sum1=0;sum2=0;fori=1:12sum1=sum1+abs((xReal(i)-xGM(i))/xReal(i));end;A1=1-sum1;%GM(1,1)模型的精度序列forj=1:12sum2=sum2+abs((xReal(j)-xBP(j))/xReal(j));end;A2=1-sum2;%BP模型的精度序列E1=A1/12;deta1=sqrt((A1-E1)^2)/12;E2=A2/12;deta2=sqrt((A2-E2)^2)/12;S1=E1*(1-deta1)%GM(1,1)模型的有效度S2=E2*(1-deta2)%BP模型的有效度kGM=S1/(S1+S2)%GM(1,1)模型的加权系数kBP=S2/(S1+S2)%BP模型的加权系数GMBP1=kGM*xGM+kBP*xBP;%算术平均组合预测值%GMBP2=(xGM.^kGM)+(xBP.^kBP)%几何平均组合预测GMBP3=1./((kGM./xGM)+(kBP./xBP));%调合组合预测嵌入式预测模型代码xReal=[904190829125918092489309936794179470957996379685];%山东省2001~2012实际人口值addX=zeros(1,12);addX(1)=xReal(1);fori=1:11addX(i+1)=xReal(i)+xReal(i+1);%灰化层结束end;[pn,minp,maxp,tn,mint,maxt]=premnmx(addX,addX);%原始数据归一化net=newff(minmax(pn),[5,1],{'tansig','purelin'},'traingdx');%设置网络,建立相应的BP网络traingdx,trainlmnet.trainParam.show=2000;%训练网络net.trainParam.lr=0.01;net.trainParam.epochs=10000;net.trainParam.goal=1e-5;[net,tr]=train(net,pn,tn);%调用TRAINGDM算法训练BP网络pnew=addX;pnewn=tramnmx(pnew,minp,maxp);anewn=sim(net,pnewn);%对BP网络进行仿真anew=postmnmx(anewn,mint,maxt);%还原数据y=anew';%BP训练结束,下面开始白化reduceX=zeros(1,12);reduceX(1)=xReal(1);forj=1:11reduceX(j+1)=y(j+1)-reduceX(j);end;reduceX%白化过程结束五种预测模型的误差及相对误差的计算代码x0=[904190829125918092489309936794179470957996379685];%实际人口值x1=[9041.69078.59128.49182.99243.19309.19370.79412.09476.09573.19640.89683.8];%串联预测值x2=[9040.790719123.99183.39247.29308.49349.49422.49467.39537.79610.89685.2];%并联预测值x3=[90419094.59131.59190.29242.79304.09351.09408.19456.69584.99643.89699.7];%嵌入式预测值X4=[];%GM(1,1)模型X5=[];%BP模型stud1=zeros(1,12);stud2=zeros(1,12);stud3=zeros(1,12);stud4=zeros(1,12);stud5=zeros(1,12);error1=zeros(1,12);error2=zeros(1,12);error3=zeros(1,12);error4=zeros(1,12);error5=zeros(1,12);fori=1:12stud1(i)=x1(i)-x0(i);error1(i)=100*abs(x1(i)-x0(i))/x0(i);stud2(i)=x2(i)-x0(i);error2(i)=100*abs(x2(i)-x0(i))/x0(i);stud3(i)=x3(i)-x0(i);error3(i)=100*abs(x3(i)-x0(i))/x0(i);stud4(i)=x4(i)-x0(i)

温馨提示

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

评论

0/150

提交评论