基于BP 神经网络对云南省粮食产量的预测模型

2023-02-08 11:50路思恒尹红
农业装备与车辆工程 2023年1期
关键词:线性权重神经网络

路思恒,尹红

(650500 云南省 昆明市 昆明理工大学 机电工程学院)

0 引言

粮食是维系人类生命和健康、保障人民群众生存不可或缺的重要物质,其供求状况是关系到国民经济发展和社会稳定的全局性重大战略问题[1]。2021 年中央一号文件指出:“农业供给侧结构性改革深入推进,粮食播种面积保持稳定”。粮食产量是一个涉及生态学、社会学、经济学和统计学的复杂问题,其产量受环境、科技、经济、政策和劳动力等多重因素影响[2]。我国粮食产量总体供略大于求,但受地理位置、自然环境和农业发展定位的影响,云贵川渝等西南省份仍存在部分供需缺口[3]。因此,科学准确预测地处西南的云南省粮食产量,不仅有利于维护我国中长期粮食安全,而且也是西南地区经济持续发展、社会稳定和人们生活水平不断提高的有力保障。

近年来,国内众多学者在粮食产量的影响因素及预测方面展开研究,用于粮食产量预测的方法也各有不同,樊超等[4]利用传统的灰色预测模型和灰色-马尔可夫模型对我国粮食产量进行比较预测研究,得到后者的预测效果更佳;李环等[5]基于时间序列非线性自回归神经网络构建我国粮食产量的预测模型,研究表明,该模型的准确率和性能都取得较好的效果,在测试数据集上的平均误差为1.5%;马云倩等[6]利用LASSO-GM(1,N)、GM(1,1)、GM(1,N)以及 LASSO 4 种模型对我国粮食产量的预测效果进行了比较分析,并选择采用 LASSOGM(1,N)组合模型对2020 年中国粮食产量进行预测。运用 LASSO 模型筛选出对粮食产量最显著影响的6 个因素作为输入因子构建粮食产量预测模型 GM(1,6),得到对我国粮食产量产生显著影响的主要因素是单产,次要因素是化肥施用量;赵桂芝等[7]利用混沌理论对原始样本进行相空间重构,确定最佳的嵌入维数和延迟时间。用PSO 算法优化SVM 参数,以某省粮食产量预测为案例进行仿真试验,结果表明混沌-SVM-PSO 模型优于灰色 GM(1,1)模型,具有较高的预测精度;贾梦琦等[8]利用4 种机器学习方法和皮尔逊相关性分析方法,选出影响河北保定市粮食产量的主要因素并进行预测。试验结果表明,ARIMA-GRNN 组合模型准确率最高,能够有效地对粮食产量进行预测;郭凯等[9]利用多选线性回归模型对山东省粮食产量及影响因素进行分析研究,得出了粮食播种面积、单位面积产量对粮食增产起决定性的作用;杨凡雨等[10]利用灰色关联分析法筛选关联性较强的影响因素,并建立GM(1,N)预测模型,得出湖南省粮食产量关联度最大的影响因素是粮食作物播种面积和农业机械总动力。科技因素是影响2008—2017 年湖南省粮食产量的主要因素,其次是自然因素、社会因素;殷世杰[11]对影响山东粮食产量的因素进行灰色关联度分析,并用 ARIMA 模型预测粮食产量及影响因素。结果显示,显著影响粮食产量的因素为粮食播种面积、灌溉面积比重、老年抚养比和化肥投入水平;张莉等[1]运用主成分分析和GM(1,1)模型,对贵州省的粮食产量影响因素及粮食产量趋势进行研究,得出农业机械化发展水平、农产品生产成本和粮食作物有效播种面积3 个方面对粮食产量影响比较大,同时预测贵州省粮食生产在未来30年将保持稳步增长的态势。

1 相关理论

1.1 神经网络基本概念

BP 神经网络是一种模仿人类神经元的机器学习方法,它是基于误差反向传播算法训练的多层前馈网络,也称为反向传播神经网络[12]。它的基本思想是:首先,由正向输入一组样本,通过计算得到其输出;然后,把实际的输出和期望值之间的差值用一定的方法来不断地调整网络的权值和阈值,达到使这个差值最小的目的;最后,通过反复执行上述过程直到这个差值小于预先确定的值为止。图1 为神经网络的工作步骤。

图1 神经网络工作流程图Fig.1 Flow chart of neural network

神经网络是应用于分类模型和预测模型最为广泛的神经网络学习算法之一,以下是其相关的基本概念:

(1)输入层 :输入层即是输入特征变量的网络层,将特征变量通过输入层传送给隐藏层,不会对特征变量进行数据处理。如图2 中,输入层有3个节点即x1、x2和x3,实际中神经网络中输入层的神经元数会根据特征变量个数来进行确定。

图2 3 层神经网络Fig.2 Three-layer neural network

(2)隐藏层:对输入层传送的数据进行线性和非线性变化,通过Sigmoid 函数将隐藏层输出控制在(0,1)范围内,并将此结果传送到输出层,如图2 中隐藏层有4 个节点,每一个节点分为两部分,前者进行线性运算,得出的运算结果传送给后者,进行非线性运算,即Sigmoid 函数运算,实际运用中隐藏层不限于一层,也可以设置多层隐藏层。

(3)输出层 :输出层是神经网络的最后一层,对隐藏层传送的数据也进行线性和非线性的变化,不同于隐藏层的是首先输出层进行线性变化之后即结束,来训练神经网络的预测模型,实现预测的功能;其次,输出层进行线性和非线性的处理之后结束,可以训练神经网络的分类模型,实现分类的功能。如图2 中输出层有3 个节点,其节点数根据实际需求来确定,本文所要实现的是预测功能,即输出层设置1 个节点。

(4)连接权重:为神经元之间的连接强度,如果两个神经元之间的权重相对大,则表明上一个神经元对下一个神经元的连接强度就高。其主要作用是为了区分样本输入值的重要程度,神经网络的模型就是通过不断学习,找到最优的连接权重,即神经网络的预测模型训练完毕。

(5)激活函数:激活函数可以分为Sigmoid函数、双曲正切函数(Tanh)、ReLU 激活函数,即通过激活函数进行非线性的处理,提供神经网络的非线性模型能力。本文采用的激活函数为Sigmoid函数,其为连续函数,同时值域为(0,1),可以把不同大小的输入值压缩到(0,1)之间输出。其函数图如图3 所示,具体公式为

图3 Sigmoid 函数Fig.3 Sigmoid function

1.2 正向传播过程

正向传播即将特征变量输入神经网络模型,从左到右依次进行数据的处理,最终在输出层输出结果的过程。首先将数据传入到输入层,不做任何处理,将数据传给隐藏层。然后隐藏层对传入的数据进行线性和非线性的处理,即将输入的特征变量和随机生成的初始化权重、偏置进行所谓的线性变化,紧接着将线性变化的结果通过激活函数进行非线性处理,得出隐藏层的输出结果,传递给输出层,最后在输出层进行线性处理,同隐藏层的线性处理,即得出预测结果。具体计算公式为:

式中:i——隐藏层第i 个节点,i=1,2,3,…,10;[1]——第1 隐藏层;k——输入特征变量的个数,k=1,2,3,…,9;l——输出层的节点数,l=1。

1.3 反向传播过程

反向传播与正向传播相反,将根据正向传播得到的预测值,进行反向传播,使用损失函数计算预测值和实际值的误差,将误差逆向传播,具体分配到各个连接权重,从而进行权重值的修改再次进行训练,神经网络通过反向传播来更新权重。反向传播的最终目的是修正权重,使神经网络的损失函数最小,预测值和真实值更为接近。具体过程如下:

(1)损失函数:用来衡量预测结果与真实结果之间差距的函数,以此为基础来调整连接权重和学习率等参数,使得损失函数最小,拟合程度最优,具体公式为:

式中:ytrue——真实数据值;ypre——预测数据值。

(2)梯度下降法:根据每个权重对误差影响的程度更新权重,对应更新权重公式为:

式中:Wij——上一层的第i 个神经元和下一层的第j 个神经元之间的连接权重;η——学习率,目的是控制更新权重的速度。

2 指标构建与处理

2.1 实验数据集

本文数据取自《云南省统计年鉴》,共有27个样本,其中取前24 个样本为训练数据集,剩余3 个为测试数据集;每个样本包含了1 个目标值和8 个特征值,分别为粮食产量、农业机械总动力、有效灌溉面积、农用化肥施用折纯量、农村用电量、农药使用量、粮食作物播种面积、农用柴油使用量和受灾面积,具体数据指标见表1。

表1 云南省历年粮食产量及影响因子Tab.1 Grain yield and influencing factors over the years in Yunnan Province

2.2 数据归一化

数据归一化是对数据常用的处理方式,指的是通过某种手段将原本分布波动大的数据映射到一个指定的分布区间,在神经网络中经常使用,以提升模型训练的效果。数据归一化可将数据处理到[0,1]或[-1,1]范围。本文选用的数据归一化的形式为:

2.3 模型评价指标

在神经网络中,对于预测模型而言通常用绝对误差与相对误差评价其效果,具体公式为:

式中:ytrue——真实数据值;ypre——预测数据值。

3 实验与分析

3.1 模型的训练

首先搭建神经网络。本文的神经网络由3 层组成,输出层、隐藏层、输入层各1 个,输入节点数和输出节点数分别为9 个、1 个,隐藏层的节点数经过不断试错,损失达到最小的情况下,最终定为10 个节点数。然后输入训练样本数据,运行神经网络模型。随机生成初始权重和偏置,将归一化之后的样本数据输入神经网络,经过神经网络模型的预测得到预测值,并计算损失函数,沿着神经网络逆向传播,以此来调整连接权重和阈值。往复循环以上操作,直至达到预先确定的精度要求,则停止循环过程,神经网络模型训练完毕。

3.2 模型训练结果

将归一化之后的数据取前24 个样本作为训练集,剩余3 个则为测试集,经过不断的试错,往复循环迭代,最终确定学习率为0.25,迭代次数为10 000 时,神经网络预测模型的参数为最佳,预测值和实际值最为接近,损失函数达到最小,具体训练的结果见表2,其真实值和预测值的接近程度如图4 所示。

图4 训练模型拟合图Fig.4 Fitting diagram of training model

表2 1993—2016 年云南省粮食产量预测结果Tab.2 Prediction results of grain output in Yunnan Province from 1993 to 2016

3.3 模型验证

将剩余的3 组测试数据归一化之后,输入到先前训练得到的神经网络预测模型中,得出的预测值和实际值对比,得到两者的误差分别为1.84%、3.25%和2.86%(见表3)。其相对误差均可在接受的范围内,说明该模型具有较好的性能,对于前期粮食产量的预测有一定的参考意义。

表3 粮食产量模型验证结果Tab.3 Validation results of grain yield model

4 结论

本文提出了一种基于 BP 神经网络的粮食产量的预测模型,对神经网络不断学习,使得参数达到最优;模拟训练结果和测试结果都能很好地控制误差率,说明训练结果预测值与实际值非常接近,确保了该模型预测的有效性。这为云南省乃至西部地区,甚至国内其他省份以后对粮食产量的预测提供一种新的方法,并可一定程度上对我国粮食产量供需平衡及发展趋势预测提供一些参考。

猜你喜欢
线性权重神经网络
渐近线性Klein-Gordon-Maxwell系统正解的存在性
线性回归方程的求解与应用
权重常思“浮名轻”
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
二阶线性微分方程的解法
为党督政勤履职 代民行权重担当
基于神经网络的拉矫机控制模型建立
基于局部权重k-近质心近邻算法
基于线性正则变换的 LMS 自适应滤波