基于neuralnet人工神经网络的农作物预测模型研究
2022-08-23匡奕敩
匡奕敩
(1.太行山猕猴国家级自然保护区焦作保护中心,河南 焦作 454002;2.中央民族大学生命与环境科学学院,北京 100081)
农业是国民经济的基础,农作物预测对国民经济发展具有决定性作用。精确、可靠、及时的农作物预测对于了解农作物的生产情况,保证市场供应,制定价格具有至关重要的作用[1]。以现代信息技术与农业生产相结合的智慧农业能更好辅助诊断农业生产和精准化管理,提高农作物预测水平[2]。
在农业产量产值精准预测方面,伍长荣等[3]以有效灌溉面积、化肥施用量、农村用电量、农业机械总动力、农业劳动力、粮食作物播种面积、受灾面积7 个影响因子为输入,粮食生产量为输出建立RBF神经网络模型,预测误差小于2%。吴玉鸣等[4]以同样的7 个影响因子作为输入,粮食生产量为输出建立BP 神经网络模型,发现预测精度大大提高,说明神经网络模型比传统回归方法的精度高。褚庆全等[5]利用BP 人工神经网络对宏观农业生产系统粮食总产进行了预测,具有90%以上的拟合精度,但未指明神经网络的具体实现方法。Stastny 等[6]利用多层神经网络模型预测作物产量,结果比回归模型准确,但没有指明具体的影响因素。预测模型有很多种,找到关键影响因素是选择预测模型的前提[7]。Dahikar 等[8]通过土壤氮、磷、钾等类型以及大气温度、降雨量、湿度等作为人工神经网络参数来预测作物产量之间的关系。刘鹏等[9]以气候因素为依据,提出了一种基于改进长短期记忆神经网络的农作物产量时间序列预测的方法,发现基于LSTM 的改进模型具有较高的准确性,气候因素对作物有一定的影响,但作物产量逐年递增与气候因素的反复变化很难有较大的相关性,从而影响网络预测的精度。魏云云[10]以农业、林业、渔业、畜牧业的产值作为输入量,用遗传算法优化的BP 神经网络建立农业产业总值的预测模型,平均相对误差为2.036%,遗传算法可以提高算法全局搜索特性和网络的泛化性能[11],但预测精度有所降低。郭亚菲等[12]引入主成分分析(PCA)和粒子群(PSO)优化BP 神经网络的权值和阈值,这种PCA-PSO-BP 网络模型的预测平均相对误差为1.1%,有效提高了预测粮食产量值的精度。但这些神经网络的实现过程复杂抽象,预测精度也不是最佳,可视化程度不高。
粮食产量一方面随着时空的发展变化呈现很强的规律性,另一方面在农业技术及经济发展的可预测上仍没有很大进展。本研究结合R 语言,选用粮食播种面积、有效灌溉面积、机耕面积、农业机械总动力、农村劳动力、农业产值等作为输入指标因素,利用改进的neuralnet 包BP 人工神经网络模型对农业粮食产量进行预测研究,该网络要比nnet 等方法建立的神经网络的分类效果更好、精度更稳定,可以直接输出可视化的神经网络拓扑结构图。
1 农业预测网络模型的构建
1.1 建模原理
人工神经网络是人工智能新兴产业中非常重要的部分,它从信息处理角度对人脑神经元网络进行抽象,建立某种简单模型,由大量的神经元(或称节点)之间相互连接而成。人工神经网络具有很强的机器学习和容错能力,具有非线性、非限制性、非定性和非凸性等主要特征[13],具有很好的预测能力和决策效果[14]。反向传播模型(BP 网络)下的神经网络专家系统(M-P)模型对非线性数据十分有效,其拓扑结构一般采用一个隐含层的3 层神经网络,包括输入层、隐含层和输出层[15](图1)。
图1 3 层BP 人工神经网络模型结构
输出函数如下:
式中,Xj为输入结点,yi为隐结点,Ol为输出结点,Wij、Tij为连接权值,θ为结点阈值。
1.2 神经元结构的确定
隐含层层数或神经元数目的增加可以提升神经网络的精度,但隐含层层数的增加会消耗大量的时间,同时出现局部最小值,而隐含层神经元数目过多也会弱化BP 神经网络的泛化能力,降低预测效果[16]。按照式(3)设置初始神经元个数范围[17]。
式中,m为隐藏层神经元个数,l为输入层结点个数,n为输出层结点个数,a为 1~10 的常数。表 1为隐含层不同的神经元数目的运行结果。
由表1 可知,当隐含层神经元为1 个时,经过5 088 步收敛达到训练目标,模型整体误差为1.395 348;当隐含层神经元为9 个时,经过9 039 步训练达到训练目标,误差为0.504 029;当隐含层为5个神经元的3 层神经网络在14 768 步训练时达到训练目标,误差为0.433 194,模型效果最佳。
表1 BP 人工神经网络不同隐含层节点数下模型训练情况
1.3 误差的计算
BP 人工神经网络的机器学习是通过计算预测值与实测值之间的误差,逐层修改权值,多次重复训练,使误差达到最小。由于样本量大,标准化过的样本极值为0 和1,相对误差有无穷值,难以反映机器学习的精确度;最终的学习效果可由预测值与实测值的相关系数与均值误差(MSE)来进行评价。均值误差如式(3)所示。
式中,MSE为均值误差,N为样本组个数,observedi为第i个样本组的实测值,predictedi为第i个样本组的预测值。
2 农业预测神经网络方法的实现
2.1 数据来源
数据主要来源于《湖南统计年鉴》《湖南农村统计年鉴》《中国县域统计年鉴(县市卷)》,通过收集2008—2017 年湖南省123 个县区的粮食产量以及影响农作物产量的因素如粮食播种面积、有效灌溉面积、机耕面积、农业机械总动力、农村劳动力、农业产值等,共整理出粮食产量及其影响因素1 230 组样本数据。为消除不同年份市场价格带来的影响,以湖南省1952 年发展速度100 为基准,对各年份农业产值等社会经济价值数据进行可比价转换。并结合实地考察调研经历,获得相关部门数据作为补充。
2.2 实现方法
本研究结合R 语言对BP 人工神经网络进行分析,调用neuralnet 函数创建一个包含隐藏层的3 层神经网络模型。首先对数据样本标准化或归一化至(0,1),再以 2015 年为分界点,将2008—2017 年123个县区组成的1 230 组数据按照4∶1 比例划分为984组训练样本和246 组检验样本。由于初始权值不同,在训练模型时,可以固定随机种子数使每次训练返回相同的值。经过训练和检验后,可以比较预测值和实测值的相关系数和相对误差,并进行预测值-实测值的效果拟合,以反映预测模型的可靠性。
3 结果与分析
3.1 农作物产量人工神经网络训练样本预测分析
使用R 语言neuralnet 进行人工神经网络建模,结束条件为误差函数的绝对偏导数小于0.01。运行BP 人工神经网络,经过14 768 步训练到函数整体误差为0.433 194 时,达到阈值条件时的精度为0.009 606 23,得到的人工神经网络效果如图2 所示。
图2 农作物预测人工神经网络效果
使用neuralnet 包建立的BP 人工神经网络预测模型对训练样本进行迭代训练,得到粮食产量的预测值与实测值间的相关系数为0.991 443 9,训练样本均值误差为0.000 880 475 179 006 291,预测值-实测值拟合效果如图3a所示。
3.2 农作物产量人工神经网络验证样本分析
将预留的验证样本246 组数据代入到训练好的neuralnet 包神经网络模型中,进行相应的验证。验证样本中粮食产量预测值与实测值的相关系数为0.991 039 8,平均相对误差为0.006 339 629,均值误差为0.000 995 330 667 956 884,表明粮食产量预测值与实测值的相对误差较小;神经网络预测值-实测值拟合效果如图3b 所示,结果验证样本都位于直线附近,效果近乎直线,吻合程度较好。
图3 农作物粮食产量预测人工神经网络预测值-实测值拟合效果
3.3 K 次交叉检验的均值误差验证
利用10 次交叉检验的方法对MSE进行验证,即重复10 次随机的90%的训练数据集和10%的测试数据集,求出10 次MSE的误差。结果分别为0.000 939 453 7、0.001 287 279 7、0.001 663 963 4、0.000 966 527 6、0.001 125 848 7、0.001 217 223 4、0.001 559 574 6、0.000 892 886 5、0.001 921 332 8、0.000 721 952 8,平均值为 0.001 229 604,把MSE均值结果进行可视化,结果见图4。说明本研究所建neuralnet 人工神经网络农作物预测模型具有可行性。
图4 农作物预测人工神经网络k 次检验均值误差
4 讨论
农作物人工神经网络预测模型可以用spss 多层感知器来分析,网络模型如图5a 所示。以上述粮食产量预测为例,设置好随机种子数,使用菜单式勾选设置隐藏层1 层及神经元个数5 个,导出拟合效果及自变量重要性图。经过重复多次的训练和验证,得到较为精确的预测值-实测值拟合效果图。
spss 多层感知器BP 神经网络在训练样本中所得的平方和误差为11.721,相对误差为0.027 8;在检验样本中所得的平方和误差为8.235,相对误差为0.045,结果见图5b。检验效果也能说明网络的可行性,但预测值-实测值拟合效果的聚集程度要比图3松散,且相对误差不如neuralnet包神经网络精确。
图5 对比spss多层感知器分析结果
农作物人工神经网络预测模型也可以选择R 语言 nnet、AMORE 或 RSNNS 包来实现。nnet是最常见的前馈反向传播神经网络算法,对上述粮食产量所得预测值与实测值的相对误差为0.017 208 13,拟合效果如图6 所示,结果也不如neuralnet 包神经网络验证拟合效果的聚集度高。neuralnet 包神经网络相对误差比spss 多层感知器、nnet包分别提高了3.9%、1.1%。
图6 nnet网络预测值-实测值拟合效果
使用不同的方法得到的效果不一定相同,这与不同的激励函数、初始权值的随机变化和样本的划分有关,结果会有一定的差异,但大致效果是一致的[18]。neuralnet 是一种改进的算法,具有弹性反向传播算法和更多的激活函数形式。人工神经网络准确度要比市场估价法高[19],高寒[20]在葡萄酒分类的应用中指出,neuralnet 建立的神经网络要比nnet 的分类效果更好、分类精度更稳定,可以直接输出神经网络拓扑结构图。
人工神经网络在农、林资源管理、分类、碳储量估算、森林灾害防治等方面得到了广泛的应用[21]。近年来,中国农业科技发展迅速,科研成果丰富,但中国目前科研发展整体滞后,科研体系不健全、贡献率偏低,农业科技推广不力以及基础设施落后、农机设备现代化程度较低,中国智慧农业建设发展中仍存在一系列问题,需要及时转变发展理念,改革和创新发展模式,用新的技术权衡农作物的利用分配,切实保证农产品经济的不断增长和农业产业的可持续发展。
5 结论
本研究通过R 语言的neuralnet 包构建一个包含隐含层为1 及神经元个数为5 的3 层BP 人工神经网络模型,对2008—2017 年湖南省123 个县区的粮食产量进行预测,得到以下结论。
1)选用neuralnet 人工神经网络预测粮食产量,得到的预测值与实测值间的相关性高、相对误差低,预测值-实测值拟合效果较好,说明所建立的人工神经网络预测模型具有可行性,结果可作为政府部门进行农业决策和宏观调控的重要依据。
2)通过neuralnet包建立的人工神经网络预测模型要比spss 多层感知器及nnet包的神经网络预测精度高,可视化拓扑图较丰富,可为农作物在预测决策支持研究工作方面提供新方法,以适应新形势下农业工程技术的发展,促使农产品经济的增长和推进农业产业的可持续发展。