2. 山东省聊城市东昌府区郑家中学, 聊城 252053
2. Zhengjia Middle School in Dongchangfu District, Liaocheng City, Shandong Province, Liaocheng 252035, China
由于农业是国民经济的基础, 而粮食是基础的基础. 粮食不仅是人民群众最基本的生活资料, 也是关系到国家安全的重要战略物资, 我国是人口众多的大国, 解决好吃饭问题始终是治国理政的头等大事[1]. 因此分析预测我国粮食生产过程的变化规律及其发展趋势, 为实施粮食生产过程的预测和决策、保证国家粮食安全提供理论依据, 具有重要的现实意义.
目前有多种粮食产量的预测方法[2–5], 例如姚作芳等建立的马尔可夫方法修正的灰色粮食预测模型, 这种方法简便易行, 需要数据少, 可以用于预测粮食产量的变化趋势. 然而, 还需要进一步提高预测精度. 另外, 还有基于线性方法的多元线性回归、时间序列分析等粮食预测模型. 由于, 粮食产量与其多种影响因素之间存在着复杂的非线性依赖关系, 具有不确定性和突变性, 往往线性模型难以适用较长时期预测且预测精度不高. 而人工神经网络模型具有非线性映射能力, 以及较强的鲁棒性和容错性[6], 因此已被广泛的应用于粮食产量预测问题[7–9]. 例如吴炎将时间序列分析法和BP神经网络相结合, 建立了江苏省粮食产量预测模型. 这种方法较好的解决了神经网络收敛慢, 但是仍需要改进易于陷入局部极小值的问题. 另一方面, 由于该方法只是利用粮食产量的数据建立模型, 没有考虑影响粮食产量的其他因素, 因而预测精度有待于进一步提高. 且当前的研究大多没有基于粮食产量预测问题为小样本问题这一事实来改进预测模型. BP神经网络由于基于梯度的算法, 存在如低的收敛速度且易陷入局部极小点, 网络训练时对初始连接权值和阈值很敏感等缺陷. 针对BP神经网络的不足,本文拟采用收敛速度快, 具有好的鲁棒性及非常好的全局搜索能力的粒子群算法与BP神经网络相结合, 并针对小样本问题对粒子群算法进行改进. 最终以影响粮食产量的多种因素作为网络输入和粮食产量作为网络输出, 建立了改进粒子群算法(IPSO)与BP神经网络相结合的多因素粮食产量预测模型——IPSO-BP模型. 并与BP网络模型和PSO-BP网络模型进行对比. 结果表明, IPSO-BP模型具有较高精度和算法稳定性, 能够为粮食生产过程的预测和决策提供合理的理论依据.
本文根据1978~2015年《中国统计年鉴》, 选取有效灌溉面积
IPSO-BP神经网络预测模型的特点: 用IPSO算法优化BP神经网络的初始连接权值和阈值, IPSO算法结束时能够寻到全局最优附近的点; 在此基础上, 利用局部寻优能力较强的BP算法, 从该点出发进行局部搜索, 进而达到网络的训练目标, 其结合了两种算法的优势, 从而改进了传统BP神经网络的不足.
1.1 改进粒子群算法粒子群算法(Particle Swarm Optimization)——PSO算法是一种群智能优化算法, 由于其概念简明、收敛较快、实现方便, 被广泛用于调度优化、数据挖掘、神经网络训练、农业工程等方面[13].
设D维欧氏空间中, 由N个粒子组成群落, 粒子对应位置为
$\left\{{\begin{array}{*{20}{l}}{v_i^{k + 1} = wv_i^k + {c_1}{r_1}({p_i} - x_i^k) + {c_2}{r_2}({p_g} - x_i^k)}\\{x_i^{k + 1} = x_i^k + v_i^{k + 1},i = 1,2, \cdots ,N}\end{array}}\right.$ | (1) |
其中
然而利用PSO算法优化BP神经网络初始权重时, 也易于陷入局部最优解, 往往得不到所需要的初始权重, 因此在处理BP神经网络小样本训练问题时可能出现不尽人意的结果.
为进一步降低PSO算法陷入局部极值的可能性, 针对不同问题有多种改进粒子群算法——IPSO算法[14–17]. 其中黄璇提出了一种适用于小样本训练问题的改进方法, 本文借鉴该方法修正了PSO算法中的相关参数, 改进了IPSO-BP神经网络模型[14]:
$\left\{ {\begin{array}{*{20}{l}}{w = [({w_0} - {w_1})\cos (k/M\pi ) + ({w_0} + {w_1})]/2}\\{{c_1} = {c_{10}} + (k/M)({c_{11}} - {c_{10}})}\\{{c_2} = {c_{20}} + (k/M)({c_{21}} - {c_{20}})}\end{array}} \right.$ | (2) |
对公式(1)中参数的修正方法如下:
w, k和M分别表示惯性权重系数、当前迭代次数和最终迭代次数,
IPSO-BP算法流程如下:
① IPSO算法所需参数和神经网络结构的确定
IPSO算法所需参数包括种群规模N, 粒子维度D, 最终迭代次数M, 惯性权重系数w的初始值和终止值
$D = {D_{in}}{D_h} + {D_h}{D_{out}} + {D_h} + {D_{out}},$ | (3) |
式中,
对于粮食产量预测问题, 7个影响因素对应输入层7个节点, 网络输出为粮食产量, 因此输出层节点数为1, 隐层有15个节点. 如图1所示.
维度D=136包含120个权值和16个阈值. 对每一个粒子其位置
② 适应度函数的确定
初始化BP神经网络, 并将神经网络的实际输出和理想输出的均方差作为适应度函数:
其中X为网络的输入, 即影响粮食产量的七个指标,采用38组数据训练和测试网络,
③ 迭代更新
$\left\{ {\begin{array}{*{20}{l}}{F(X,{x_i}) = {{({y_i} - y_i')}^2},i = 1,2, \cdots ,N}\\{X = ({X_1},{X_2}, \cdots ,{X_7})}\end{array}} \right.$ | (4) |
在IPSO优化阶段, 在利用式(1)迭代时, 利用式(4)计算每个粒子的适应度值
此时的全局极值点
为了减小不同因子之间由于数据大小的差异和量纲的不同所引起的误差, 在学习之前采用MATLAB中自带函数mapminmax对原始数据进行归一化处理.
本实验采用MATLAB R2014a神经网络工具箱进行测试实现[18], 从样本数据中随机抽取30组作为训练数据, 剩余8组
由表1和图2可见, 基于IPSO-BP神经网络建立的预测模型对粮食产量的预测结果较为准确, 说明这种粒子群算法的改进方法比较适合粮食产量预测问题.
2.2 IPSO-BP神经网络模型与其他方法预测精度对比
为了验证IPSO-BP神经网络对粮食产量预测精度的提升效果, 本文重新选取了30组数据, 分别建立了BP神经网络和PSO-BP神经网络来对粮食产量进行预测. IPSO-BP神经网络模型与BP神经网络模型及PSO-BP神经网络模型预测结果比较见图3.
此时BP神经网络、PSO-BP神经网络、IPSO-BP神经网络的预测输出相对误差如表2所示.
由表2可见, BP神经网络预测相对误差保持在0.0170到0.0800之间, 平均值为0.0375, PSO-BP神经网络预测相对误差保持在0.0021到0.0800之间,平均值为0.0355, 相比之下, IPSO-BP神经网络预测相对误差保持在0.0041到0.0250之间, 平均值为0.0170.
很明显, IPSO-BP神经网络预测结果的精度和稳定性大幅提高, 预测结果的相对误差基本可以保持在0.02左右,有时可达到0.005以下.
由于样本数量少且样本数据维度较大, 易出现过拟合现象, 使预测模型的泛化能力不强. 考虑到样本数量较少, 因此可用留一法交叉验证对三种模型进行评估. 结果见图4.
由上图可知, 在留一法交叉验证中, IPSO-BP神经网络预测值的相对误差在38次测试中保持在0.000 15—0.000 82之间; 而PSO-BP神经网络的预测结果相对误差大部分保持在较低水平, 但存在数个较高的误差; BP神经网络预测结果则误差很大, 且波动较大.
由以上结果可以得出, 对于相同的样本数据, IPSO-BP神经网络比BP神经网络和PSO神经网络具有更高的预测精度, 且经过留一法交叉验证可验证, IPSO-BP神经网络的预测输出不但比其他两种方法精度高, 而且算法具有较高稳定性, 说明IPSO-BP神经网络有很强的的泛化能力.
3 结语本文根据粮食产量预测问题的特点, 用合适的方法改进粒子群算法, 并综合考虑粮食产量影响因素, 构造适合粮食产量预测的模型, 提高了粮食产量的预测精度. 同时本模型对粮食产量的长期变化趋势预测能力偏弱, 还需进行进一步研究. 但总体来说本文提出的IPSO-BP神经网络模型可以较好的用于我国粮食产量预测问题, 为制定粮食政策与实施粮食生产系统控制提供决策依据和理论支持.
[1] |
中共中央宣传部. 习近平总书记系列重要讲话读本. 中国民族语文翻译局, 译. 北京:民族出版社, 2014. 68–69.
|
[2] |
向昌盛, 张林峰. 灰色理论和马尔可夫相融合的粮食产量预测模型. 计算机科学, 2013, 40(2): 245-248. DOI:10.3969/j.issn.1002-137X.2013.02.054 |
[3] |
田秀芹. 基于多元线性回归的粮食产量预测. 科技创新与应用, 2017(16): 3-4. |
[4] |
姚作芳, 刘兴土, 杨飞, 等. 几种方法在粮食总产量预测中的对比. 干旱地区农业研究, 2010, 28(4): 264-268. |
[5] |
罗利娟, 丁宏飞. 基于PSO-SVR的粮食产量预测模型. 统计与决策, 2010(22): 37-38. |
[6] |
王林山. 时滞递归神经网络. 北京: 科学出版社, 2008. 2–16
|
[7] |
郑建安. 主成分和BP神经网络在粮食产量预测中的组合应用. 计算机系统应用, 2016, 25(11): 274-278. DOI:10.15888/j.cnki.csa.005552 |
[8] |
林芳. 灰色神经网络在粮食产量预测中的应用. 计算机仿真, 2012, 29(4): 225-228, 267. DOI:10.3969/j.issn.1006-9348.2012.04.055 |
[9] |
吴炎, 杜栋. 基于改进BP神经网络对江苏省粮食产量的仿真预测. 微型电脑应用, 2009, 25(6): 1-3. DOI:10.3969/j.issn.1007-757X.2009.06.001 |
[10] |
魏津瑜, 陈锐, 刘曰波. 影响我国粮食产量的因素分析及对策研究. 中国农机化, 2008(5): 56-59. DOI:10.3969/j.issn.1006-7205.2008.05.016 |
[11] |
赵俊晔, 李秀峰, 王川. 近年我国粮食产量变化的主要影响因素分析. 中国食物与营养, 2006(9): 9-12. DOI:10.3969/j.issn.1006-9577.2006.09.003 |
[12] |
李雪. 基于粒子群的粮食产量预测神经网络优化研究[硕士学位论文]. 舟山: 浙江海洋大学, 2014.
|
[13] |
钱锋. 粒子群算法及其工业应用. 北京: 科学出版社, 2013. 14–19.
|
[14] |
黄璇, 郭立红, 李姜, 等. 改进粒子群优化BP神经网络的目标威胁估计. 吉林大学学报(工学版), 2017, 47(3): 996-1002. |
[15] |
唐泽, 吴敏, 吴桂兴, 等. 改进粒子群BP算法的四六级翻译评分模型. 计算机系统应用, 2015, 24(9): 140-145. DOI:10.3969/j.issn.1003-3254.2015.09.024 |
[16] |
沈学利, 张红岩, 张纪锁. 改进粒子群算法对BP神经网络的优化. 计算机系统应用, 2010, 19(2): 57-61. DOI:10.3969/j.issn.1003-3254.2010.02.014 |
[17] |
陈贵敏, 贾建援, 韩琪. 粒子群优化算法的惯性权值递减策略研究. 西安交通大学学报, 2006, 40(1): 53-56, 61. DOI:10.3321/j.issn:0253-987X.2006.01.013 |
[18] |
飞思科技产品研发中心. 神经网络理论与MATLAB 7实现. 北京: 电子工业出版社, 2005. 271–280.
|