摘要:为预测江苏省粮食产量,通过分析相关文献,选择农业机械总动力、有效灌溉面积、农用化肥施用折算纯量、除涝面积、农用柴油使用量、农药使用量、粮食作物播种面积和受灾面积这8个对粮食产量具有较大影响的指标,构建反向传播神经网络模型,并利用该模型预测2017年、2018年和2019年的粮食产量。模型以江苏省1993—2019年的数据为基础,剔除缺失指标的数据,将剩余的数据分为2组,一组数据作为训练集用于训练模型参数,包含21个样本;另一组数据作为测试集检验拟合模型的预测精度,包含5个数据样本。最终预测结果除了2019年预测结果的相对误差达到了5.74%,其他年份的预测结果相对误差基本控制在5%以内。结果表明,该模型具有较好的预测精度,能够有效预测粮食产量,为将来粮食产量的预测提供了一种新的思路。
关键词:反向传播神经网络; 正向传播; 梯度下降法; 粮食产量影响因子
中图分类号:TP183文献标志码:A
doi:10.3969/j.issn.16735862.2023.04.005
Prediction of grain yield in Jiangsu province based on BP neural network
YU Jian1, HONG Xin1, YU Zexiang2, MA Tao1
(1. College of Mathematics and Systems Science, Shenyang Normal University, Shenyang 110034, China;
2. Sydney Smart Technology College, Northeast University, Shenyang 110819, China)
Abstract:In order to predict the grain yield of Jiangsu province, in this paper we analyze the relevant literature, and select the total power of agricultural machinery, effective irrigation area, converted pure amount of agricultural chemical fertilizer application, waterlogging area, agricultural diesel oil usage, pesticide usage, grain crops, and disaster area. The eight indicators that have greater impact on grain yield are used to construct a back propagation(BP) neural network model. Based on the data of Jiangsu province from 1993 to 2019, 1999 with missing index data is eliminated. The remaining data are divided into two groups. One group contains 21 samples as a training set for training model parameters. A set of five data sets is used as test sets to test the prediction accuracy of the fitting model. The relative error of the final prediction results is basically controlled within 5 %, except that the prediction data in 2019 reached 5.74 %. These show that the model has a good accuracy in effective prediction predict grain output, and provides a new idea for future grain output prediction.
Key words:back propagation neural network; positive communication; gradient descent method; impact factors of grain yield
我国是人口大国,粮食安全极为重要。在农业农村部关于落实党中央国务院2023年全面推进乡村振兴重点工作部署的实施意见报告中,第一条便指出了要抓紧抓好粮食和农业生产,确保粮食和重要农产品稳定安全供给[1] 。粮食产量预测的结果对决策部门有很重要的指导意义和参考价值,但是粮食产量受多方面因素的限制,例如土壤质量、种植区域的经纬度和当年的气候条件等[2]。使用不同的预测模型会对粮食产量最终预测结果的精度产生不同的影响[3]。本文基于经典的BP神经网络模型,通过筛选出强相关的影响因子建立模型进行预测,以期得到较为精准的预测结果,进而指导农业生产。
1BP神经网络模型
1.1模型介绍
神经网络模型是模仿人类大脑的神经元运作而设计产生的理论模型。其主要由3层构成,分别是输入层、隐藏层和输出层。该模型通过输入层输入矢量数据,经过隐藏层的权重变化在激活函数的作用下得到输出层的预测结果[4]。
在众多神经网络模型中,反向传播(back propagation, BP)神经网络是一种利用预测误差反向交互的神经网络。它通过构造损失函数设置误差阈值,利用梯度下降法不断优化随机预设的参数,从而使得隐藏层中的参数收敛,直至达到最优的拟合结果。其本质依旧是模型的回归拟合,但与传统的回归相比较,BP神经网络可以生成更为复杂的线性和非线性的回归函数。它的特点是信号向前不断传递得到输出结果,同时利用输出结果与标签量之间所产生的误差,反向传播优化预测[5]。依据模型特性,BP神经网络需要进行多次迭代,在迭代过程中不断修正和调整隐藏层中的权重w和偏置系数b,使得最后的输出预测结果与真实值达到相近。图1为神经网络计算过程的可视化流程。
1.2模型计算流程
1.2.1正向传播
正向传播即对输入的矢量数据不做任何处理,从左到右依次进行线性变换,然后输出结果。随机赋值初始化模型隐藏层中的权重w和偏执系数b,随后在输入层输入矢量数据并在隐藏层计算,经过激活函数的激活得到输出结果。具体计算公式如下:
z[h]i=∑ni=1w[h]ija[h-1]i+b[h](1)
a[h]i=σ(z[h]i)(2)
式(1)表示输入的矢量数据在权重w和偏执系数b的线性运算下得到的结果,其中w[h]ij表示h层,第i节点的第j权重;b[h]表示第h层的偏置系数。式(2)表示z[h]i在激活函数σ(x)作用下的输出结果[6]。激活函数的类型有多种,本文选取的激活函数为Sigmoid函数[7],其具体的表达式如下:
Sigmoid(x)=11+e-x(3)
1.2.2反向传播
初次正向传播得到的输出值一般与测试集中的真实值误差较大,此时便需要对模型反向传播修正系数。通过计算损失函数,BP神经网络可以把误差分配到上一层中逐层传递,将传递的误差利用梯度下降法计算权重与偏置系数对误差的影响程度,以此来更新权重和偏置系数[8]。上述过程迭代多次直至预测误差小于给定的误差阈值。反向传播中损失函数的计算和梯度下降法的利用对模型拟合成功与否有关键的作用。以下为2种方法的介绍和具体计算方式:
1) 损失函数:用于测算预测值和真实值之间的差距,并以此为基础来修正系数,从而降低损失函数的值以提高拟合优度。具体公式如下:
Eloss=12∑ni=1(-y)2(4)
式中:为预测数值;y为真实数值。
2) 梯度下降法:利用误差反向传递,更新权重使得预测更为准确,其更新公式如下:
wij=wij-ηElosswij(5)
Elosswij=Elossa[h]i·a[h]iwij(6)
其中,η为学习率,学习率的不同会影响权重的更新速度和最终收敛数值的精度[9]。
2模型构建
2.1模型结构搭建
依据神经网络模型的特点,搭建计算机学习流程,并使用R语言实现,利用训练集对模型进行训练。训练初始,随机初始化权重和偏置系数,
将归一化的数据正向传播初步拟合,得到预测结果[10]。再依据初步拟合的结果和真实值构造损失函数,计算损失函数的值反向传播更新权重,设置误差阈值。循环往复上述操作,直至达到所需要求[11],自此神经网络训练完毕。模型工作步骤如图2所示。
2.2数据选取
本文数据选取自《江苏省统计年鉴》,经过筛选剔除损失较大的样本,并从1993—2019年的数据样本中去除了1999年的数据样本,最终留下了26个可用的数据样本。将筛选之后的数据集进行分类,取前21个样本数据作为训练集,剩余的5个样本数据为测试集,训练集用于拟合模型,而测试集中的数据用于判断拟合模型预测的准确度。样本的输出值为粮食产量,其输入值为依据农学资料[1213]选取的8个对粮食产量有较大影响的变量,分别为农业机械总动力、有效灌溉面积、农用化肥施用折算纯量、除涝面积、农用柴油使用量、农药使用量、粮食作物播种面积、受灾面积,具体的数据见表1。
2.3数据处理
在进行神经网络训练之前需要对数据进行初步处理,以提升优化训练结果,防止预测结果无法拟合,通过归一化将数据压缩至一定范围内,便于权重和系数的更新。本文选取的归一化公式[14]如下:
y=x-xminxmax-xmin(7)
此外,还需要构建对模型的预测结果进行评价的指标,本文构建的是相对误差指标[9],公式如下:
δre=-yy·100%(8)
式中:δre为相对误差值;为预测数值;y为真实数值。
3实验模拟
本文的神经网络由输入层、隐藏层、输出层各一层组成。其中输入节点8个,输出节点1个,隐藏层的节点经过训练,得到节点为4个时可取得最优拟合结果。将训练集中的数据依据图2的模型工作步骤进行训练。
其中,学习率η选择为0.025,误差函数停止的阈值为0.01,迭代次数不设限,直到低于阈值为止。为了使拟合函数始终一致,设定随机数种子,种子数为12345。神经网络训练结果如图3所示。其训练模型的误差值为0.012862,训练迭代次数为690次。
在模型的拟合结果下,测试集的预测结果分别为3524.75万吨(2015年),3619.07万吨(2016年),3595.76万吨(2017年),3552.41万吨(2018年),3493.53万吨(2019年)。以上预测数值与测试集中当年的真实粮食产量相比较的相对误差分别为1.95%(2015年),2.16%(2016年),0.42%(2017年),2.95%(2018年),5.74%(2019年)。为了更好地反映神经网络模型的先进性,本文将线性回归模型的预测结果与之比较。
表2中,n为神经网络模型的预测结果,l为线性回归模型的预测结果,δren为神经网络模型的预测误差值,δrel为线性回归模型的预测误差值。从上述表格结果不难看出,神经网络模型的预测结果较好,最大相对误差值为5.74%,仍在可以接受的范围。该结果说明模型可以较好地拟合粮食产量,并可为未来的农业耕作提供指导。
4结语
本文基于BP神经网络建立对粮食产量预测的模型,通过数据仿真,发现模型具有较好的预测精度。通过分析模型中权重的大小,判断相关输入变量对预测结果的影响程度,从而对农业生产进行指导。本文在针对模型训练时,选取了固定的学习率。利用交叉验证法,通过多次迭代训练可进一步优化模型精度,从而继续改进模型以优化预测结果[15]。
参考文献:
[1]肖振乾,贡冯保. 国家粮食安全新战略研究和政策建议(上)[J]. 中国粮食经济, 2005(3):8-13.
[2]史春红. 中国粮食总产量影响因素分析[J]. 合作经济与科技, 2022(6):31-33.
[3]曹存梁. 基于机器学习的多因子粮食产量影响因素关联分析和产量预测方法研究[D]. 桂林: 桂林理工大学, 2020.
[4]HECHT-NIELSEN R. Theory of the back propagation neural network[J]. Neural Networks, 1988,1(S1):445-457.
[5]PINEDA F J. Generalization of back-propagation to recurrent neural networks[J]. Phys Rev Lett, 1987,59(19):2229-2231.
[6]王启平. BP神经网络在我国粮食产量预测中的应用[J]. 预测, 2002(3):79-80.
[7]庄星,韩飞. 基于混合群智能算法优化BP神经网络的粮食产量预测[J]. 江苏大学学报(自然科学版), 2019,40(2):209-215.
[8]路思恒,尹红. 基于BP神经网络对云南省粮食产量的预测模型[J]. 农业装备与车辆工程, 2023,61(1):39-43.
[9]高红. BP神经网络学习率的优化方法[J]. 长春师范学院学报(自然科学版), 2010,29(4):29-31.
[10]孙少杰,吴门新,庄立伟,等. 基于CNN卷积神经网络和BP神经网络的冬小麦县级产量预测[J]. 农业工程学报, 2022,38(11):151-160.
[11]伍丹华,周礼梅. 基于BP神经网络的粮食产量预测[J]. 农业工程技术, 2020,40(27):51-53.
[12]张雪纯. 我国粮食产量影响因素分析[J]. 合作经济与科技, 2022(13):47.
[13]王建林,王宪彬,太华杰. 中国粮食总产量预测方法研究[J]. 气象学报, 2000(6):738-744.
[14]杨娜,刘良明,向大享,等. 利用BP神经网络由特征气象要素预测土壤湿度[J]. 土壤通报, 2011,42(6):1324-1329.
[15]吴炎,杜栋. 基于改进BP神经网络对江苏省粮食产量的仿真预测[J]. 微型电脑应用, 2009,25(6):14.