基于BP神经网络模型的陕西省GDP预测
2021-07-28张琪
张 琪
(兰州交通大学 数理学院,甘肃 兰州 730070)
引言
陕西省的GDP一直处于我国的中上游水平,1999年陕西省的GDP为1592.64亿元,而在2019年,GDP高达25793.17亿元,可以看出陕西省的GDP增长速度高于全国水平。2020年不仅是全面建成小康社会也是“十三五”规划的最后一年,这一期间的经济增长水平也是陕西省乃至全国的聚焦问题。
在所有的人工神经网络中,BP神经网络使用最为广泛,它是一种误差逆向传播的前馈神经网络[1],具有良好的容错性、鲁棒性、泛化能力。文章拟采用BP神经网络对陕西省近5年的GDP数值进行预测。
一、BP神经网络基本原理与建模步骤
1.BP神经网络基本原理
BP神经网络属于一种误差反向传递的神经网络,它包括输入层,一个或多个隐含层,和输出层等多层。数据传入输入层,经过输出层传出,而隐含层则为存储数据的功能。当输出误差大于给定误差时,误差反向传播,途径隐含层最终传向输入层,各层的权值和阈值进行迭代更新,直到输出值不断逼近期望值停止训练。
2.BP神经网络建模步骤
BP神经网络进行预测前要训练网络,训练过程如下。
2.1 确定网络参数以及初始化。网络输入层节点数n由输入维数决定,输出层节点数m由输出维数决定,隐含层节点数l,输出层节点数m通过计算得到,接着初始化各层之间的神经元的权值,输入层隐含层阈值a,输出层的阈值b,给出学习速率和神经元激活函数[2]。
2.2 得出隐含层的输出值。由输入变量x,以及它与隐含层之间的权值Wij,还有隐含层阈值a,得出输出H。
2.3 得出预测值。由隐含层的输出值H,权重Wij,阈值b,可以得到网络的预测值0。
2.4 得出误差。由预测值O和期望的Y值,计算BP网络的误差值e。
2.5 将权值进行更新。由误差e来更新权值Wij和Wjk。
式中,η为学习速率。
2.6 将阈值进行更新。由预测误差e逐层更新网络的所有阈值a和b。
2.7 确定BP神经网络迭代是否完成,如果没有,返回(2),直到误差达到要求停止训练。
二、陕西省GDP预测实例分析
1.数据的收集和预处理
实验所用数据来源于2020年《国家统计年鉴》,选取2000年到2019年的陕西省近20年的GDP数据。
在训练过程中为了避免变量间量纲差异较大,需要对数据进行归一化处理,以达到提高预测精度的目的,本文用到的归一化公式为:
其中xi为原始数据,x'i为归一化后的数值。
2.BP神经网络训练过程
实验借助于MatlabR2018a软件,构建一个单隐含层的BP神经网络,从2000年开始,连续3年的陕西省GDP数据作为值,第4年的GDP数据作为输出。输入层维数因而确定为3,输出层维数为1。其中2000年到2014年的样本作为训练集,2015年到2019年的样本作为测试集,隐含层节点个数通过多次尝试以及经验公式得出,常见的经验公式如下:
这里m表示输入层的节点个数,n表示输出层的节点个数,l为隐含层节点个数,其中a∈[0,1]的常数,由试凑法和经验公式,将隐含层节点数设为10。最大迭代次数设为50000次,学习率设为0.01,目标误差为0.0001,激活函数选择为s型函数,其中f(x) ∈∈[0,1]。
3.BP神经网络预测结果
在对GDP进行预测时,常见的误差评价指标通常有。
均方误差(MSE)
2015到2019年,这5年的GDP预测值相对误差依次为0.867%,-0.539%,-0.058%,0.092%,0.020%,5年的平均相对误差为0.382%,误差较小,预测值曲线和实际值曲线几乎完全重合,说明预测具有一定的准确性。
结语
文章根据2000年到2019年陕西省20年的国内生产总值数据,建立了BP神经网络模型,借助于Matlab软件对BP神经网络进行训练,对陕西省近5年的GDP数值进行了预测,得到的预测数值和实际数值误差较小,说明模型有着较强的拟合能力,达到了较好的预测效果。