基于GA-BP神经网络的人口预测研究
2012-06-15陈仕鸿张英明
陈仕鸿 张英明
一、引言
世界人口的迅速增长带来许多问题,其中发展中国家的人口增长过快对经济发展和社会稳定的不利影响尤其突出。人口问题是我国社会和经济发展的关键要素之一。在目前严峻的人口形势下,人口问题,比如老龄化、人口红利、人口质量等问题也日益突出且备受关注。人口预测对于提供准确的人口信息,对于国家社会发展计划特别是制定生育政策有重要的意义。目前,我国人口预测模型主要有年龄移算模型、指数Logistic回归模型、自回归模型、平滑预测模型、年龄移算模型、凯菲茨矩阵方程模型、莱斯利矩阵预测模型、宋健人口发展方程、自回归分布滞后模型、随机人口预测模型(LTC)、灰色模型、BP神经网络预测模型等[1][2]。人口数量的变化是一个复杂时间序列问题,其数据特征存在着复杂的非线性函数关系,用传统的线性模型来预测可能存在较大的误差。因此,有学者选择具有自学习能力的非线性的BP神经网络作为人口预测的模型[3][4][5][6]。但是BP神经网络固有的随机性强、容易收敛到局部极小的缺点,影响了人口预测的稳定性和精确度。本文拟建立基于遗传算法改进的BP神经网络模型,对我国人口总量变化进行短期的预测。
图1 BP神经网络拓扑结构图
二、BP神经网络及遗传算法简介
(一)BP神经网络
BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络能够在规律和机理尚不明确的前提下学习和存贮大量的输入与输出模式映射关系[7]。BP神经网络模型拓扑结构包括输入层、隐含层和输出层,如图1所示。
BP网络的权值和阈值参数是随机生成的,传统的训练算法容易收敛到局部极小,使得网络不稳定。本文采用遗传算法来优化BP神经网络的初始权值和阈值,以期解决BP网络存在的问题。
图2 GA-BP算法的流程图
(二)遗传算法
遗传算法(Genetic Algorithm,GA)是模拟生物进化论的自然选择和遗传学机理的生物进化过程的计算模型[8]。遗传算法通过搜索空间的解进行编码,形成被比喻为染色体的个体,随机选择多个个体组成种群,以适应度函数为依据,经过选择、交叉和变异操作,对种群个体逐代择优,最终使搜索过程收敛到全局最优解。
遗传算法的一般算法有以下几步骤[9]:
1.随机生成初始群体:从解中随机选择出来若干个个体构成初始种群。
2.计算群体中每个个体的适应度,从中找出最优个体。
3.选择操作。根据“适者生存”的原则,适应度越大的个体被选中的概率越高。
4.交叉操作。根据指定的概率,从种群中选择两个体进行随机配对形成新的个体,类似基因交换。
5.变异操作。从种群中随机选择一个个体,按一定概率变异得到新的个体,类似基因突变。
6.判断进化是否结束。若否,返回第(2)步。
三、GA-BP神经网络模型
基于遗传算法改进的BP神经网络模型,即采用遗传算法对BP网络的参数先行优化。首先随机生成若干组网络参数初值,以网络的误差为适应度,利用遗传算法对这些网络参数初值进行适应度计算;经过若干代进化之后找到最能够适应给定BP网络的一组网络参数,再将这组网络参数用于BP网络,使用训练数据对网络进行进一步优化,最终使输出结果达到要求的精度。因此,GA-BP模型的基本结构应当包括BP网络和遗传算法改进部分两个环节[10]。GA-BP算法的流程如图2所示。
图3 每代种群平均适应度变化曲线图
四、仿真实验
(一)建立GA-BP模型
选取1982-2010年的人口数据,数据来源于文献[11]和[12],如表1所示。以前3年数据作为一个模型输入,第4年的数据作为输出,组成一个数据样本;再以第2至第4年数据为输入,第5年的为输出,以此类推,建立26组样本数据。选取前24个数据样本为训练样本,后2个为测试样本,即测试2009、2010年的预测结果。最后预测2011年的人口数据。
表1 1982-2010年人口总数(单位:亿)
构建的GA-BP网络三层结构为3—7—1,网络迭代次数为100,学习率为0.1,训练目标为0.0001。遗传算法的进化代数为50,种群规模为15,交叉概率为0.3,变异概率为0.1。程序在Matlab软件中实现。GA运行过程中,每代种群平均适应度(即误差)变化曲线如图3所示。由图3可知,遗传到42代时,适应度达到稳定状况。
模型对2009、2010年人口检验的结果分别为13.3365、13.3949,平均误差为0.0494%,而采用BP网络检验的平均误差为0.452%。可见经过GA改进的BP网络模型比BP更加精确,而且更稳定,收敛速度更快。
(二)预测未来人口总量
GA-BP人口预测模型只适合短期的人口预测,因此本文采用只对2011-2020年的人口数量进行预测,结果如表2所示。
表2 2011-2020人口预测值(单位:亿人)
通过表2对中国未来总人口预测的分析,可计算出中国每年净增人口数将由2011年的745万逐步下降到2020年的20万左右,到2020年我国人口总数不会突破14亿。
为了更直观地体现我国人口在未来8年中的变化趋势,以及和以前年份的人口增长情况进行对比,现根据人口预测的结果计算1983-2020年人口增长率的变化情况,如图4所示。
图4的曲线变化轨迹显示我国人口增长率整体上呈下降趋势,人口增长由20世纪80年代1.5%以上的高速降低到2000年0.76%的中速,到2010年人口的增长速度又进一步降低到0.37%左右的低速,预计到2020年人口的增长速度将降低到0.01%的超低速。
综合以上分析可明显看出,我国人口总数的增长已得到有效的控制。如果在社会经济稳定增长,人口素质不断提高的前提下,我国政府继续坚定有效地贯彻计划生育方针,人口总量极限值将控制在14.5亿以内。
图4 1983-2020年我国人口增长率变化趋势图
五、结束语
BP神经网络具有良好的自学习能力,避免了复杂的数学建模过程,与传统的预测方法相比,基于BP神经网络的时间序列预测方法不仅计算简单、灵活,而且能提高预测的精确度。虽然BP网络得到了广泛的应用,但它无法避免随机性强、容易局部收敛、训练速度慢等缺点。本文利用遗传算法优化BP神经网络的连接权向量和阈值,构建了GA-BP人口预测模型。经实证分析,该模型预测结果精确度高于BP神经网络,是一种可靠的人口预测方法,具有一定的实用价值。同时,今后对模型的内部结构还需要进一步研究,比如训练函数和学习函数的类型,GA的变异算法等,以充分发挥模型的潜力,促进其在人口预测以及其它领域的进一步应用。
[1]师瑞峰,周一民.基于数据挖掘的人口数据预测模型综述[J].计算机工程与应用,2008,44(9):1-7.
[2]王鹏.中国人口预测的最优组合模型[D].华北电力大学,2009:11-24.
[3]毕小龙,袁勇.基于BP神经网络的人口预测方法研究[J].武汉理工大学学报(交通科学与工程版),2007,31(3):556-558.
[4]贾楠,胡红萍,白艳萍.基于BP神经网络的人口预测[J].山东理工大学学报(自然科学版),2011,25(3):22-24.
[5]毕小龙,魏巍.基于神经网络的我国人口老龄化趋势预测[J].武汉理工大学学报(信息与管理工程版),2004,26(6):182-184.
[6]何迎生,段明秀.基于RBF神经网络的时间序列预测[J].吉首大学学报(自然科学版),2009,29(3):52-55.
[7]朱凯,王正林.精通MATLAB神经网络[M].北京:电子工业出版社,2010.1:193-200.
[8]周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,1999.6:4-11.
[9]MATLAB中文论坛.MATLAB神经网络30个案例分析[M].北京:北京航空航天大学出版社,2010.4:21-29.
[10]万玉琼,梁俊有.基于遗传算法改进BP网络的灾害预测模型研究[J].中国水运,2008,8(4):255-257.
[11]国家统计局人口统计司.中国人口统计年鉴[M].北京:中国统计出版社,1988-2010.[12]中国政府网.2010年第六次全国人口普查主要数据公报[EB/OL].http://www.gov.cn/wszb/zhibo449/content_1853973.htm,2011.4.28.