基于BP神经网络的农作物虫害预测系统的研究
摘要:为了能有效的提高预测农作物病虫害的概率,降低由此带来的损失,设计了基于BP神经网络算法的农作物虫害预测系统。仿真结果表明,基于BP神经网络算法的农作物虫害预测系统经过大量训练样本及训练次数后可以大大提高准确预测病虫害的概率,该方法在农作物虫害预测中有很大的应用前景。
关键词:模糊神经网络 算法 病虫害 概率 中图分类号:TP391.41 文献标志码:A 文章编号:1007-9416(2015)01-0000-00
Abstract: In order to effectively improve the probability of forecasting crop pests and reduce losses,we have designed a crop pest forecasting system based on fuzzy neural network。Simulation show that, compared with the traditional crop pests forecasting system, after a lot of samples and times, crop pest forecasting system based on fuzzy neural network algorithm can greatly increase the probability of accurate in predicting the pests, The method has great application prospect in crop pest forecasting.
Key word: fuzzy neural network; algorithms;pests;
probability
农作物的主要害虫对农作物会造成严重危害,农业经济遭受重大的损失。对病虫害的发生以及对发生量、危害程度的预测是摆在大家面前的一个重要课题。传统的病虫害预测方法主要有两种:第一,遥感预测,气候图法,遥感预测有其先进性,但是它只能预测短时间内病虫害发生概率,不能有效的预测一年之内的情况;第二,在农村广泛建立农作物病虫害预测站。通过实际调查取得数据,建立病虫害相关的知识库,再根据虫害发生的规律结合当地历史数据资料,进行综合分析,对虫害未来的发展动态做出判断,这种方法需要大量资金的支持。平均气温、最低气温、日照时间、降雨量等与虫害的发生率大小有着直接的关系,基于以上原因,本文利用BP神经网络建立病虫害预测模型,根据以上四个数据来探究模糊神经网络在病虫害预测中的可行性及应用性。
1 BP神经网络简介
BP网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP神经网络拓扑结构包括三层:输入层、隐层和输出层。输入层各神经元用来接收外界输入的信息并将信息传递给中间层的神经元,中间层神经元负责信息的变换等处理,根据实际需求,中间层可以设计为单隐层或者多隐层两种结构,最后一个隐层将信
息传递到输出层各神经元信息,然后经过进一步处理由输出层向外界输出处理结果。BP神经网络各层的神经元是相互独立的,互相之间不受干扰与控制,并且每个神经元与相邻层的神经元都连接。
BP 神经网络的训练过程包括前向计算和误差反向传播2个过程。对于输入信号,先向前传播到隐含层,经过作用函数后,再把隐含层的输出信息传播到输出层,若在输出层得不到期望的输出,则转入反向传播,将误差信号沿原来通路返回,通过修改各层神经元的权值,使得误差信号最小。BP神经网络用途广泛,具有很好的的学习能力和很强大的非线性适应性处理能力。 图1 BP神经网络结构图
2 BP神经网络对病虫害预测模型的建立 2.1 BP神经网络模型的创建
建立BP神经网络算法模型,基本上需要图2所示下几个流程:
图2 BP神经网络模型的建立流程图
2.1.1 BP神经网络的层数以及输入层、输出层神经元个数的确定
因为通过平均气温、最低气温、日照时间、降雨量信息进行预测,所以在这里我们将输入层的节点数设计为4,每层均有若干个节点。我们将病虫害的程度分为9个等级分别
为1-9,所以在这里本文将输出层的节点个数设置为4。在神经网络中,还没有准确的方法如何选择隐含层节点数量,本文首先根据BP网络隐层节点设计的经验公式: (1)
得出隐含层节点数q的个数为3-12,公式(1)中a为输入层的网络节点个数,b为输出层网络节点个数,c为1-10的任意整数。由于隐含层数目越多,其非线性映射能力越强,但是网络性能反而会降低,隐含层的节点个数过少,会导致训练时间过长,不易稳定。最后根据Kolmogorve定理,确定隐含层节点个数为9。 2.1.2 传递函数确定
按照一般的设计原则隐含层的激活函数确定为tansig(双曲正切S型传输函数),即 (2)
输出层常用的激活作用函数f(x)为可导的Sigmoid 函数: (3) (4)
2.2 训练BP神经网络模型
我们在确定了神经网络层数以及输入层、输出层神经元个数、函数模型等参数的基础上,创建神经网络,并通过神经网络的训练,来预测2013年病虫害发生的几率的。训练并如此反复直至满足预测精度要求为止。训练流程图如图3所示:
开始后输入平均气温、最低温度、日照时间、降雨量等
信息,然后进行归一化处理,神经网络权值、阈值初始化,再设置最大训练次数、误差平方和指标,然后计算误差平方,如果达到了最大训练次数则结束训练,如果没有达到最大训练次数则继续训练,继续训练依然没有达到最大训练次数则修改权值、阈值,然后计算误差平方和,继续下面的流程。 图3 训练程序流程图
3 病虫害预测模型的训练与仿真实验
本文利用MATLAB自身所有的神经网络工具箱进行网络创建,神经网络工具箱提供了大量的和BP神经网络相关的函数,比如:newcf函数、newff函数。在这里我们选用newff函数进行创建。经过100次以上的迭代,BP神经网络的误差水平趋于稳定,达到了期望值。神经网络误差收敛曲线如图4所示。
图4 误差收敛曲线图
本文选取了河北保定地区2003-2012年保定地区平均气温、最低气温、日照时间、降雨量、病虫害程度等信息进行网络训练,其中我们把2013年的样本数据做为预测数据。 M 表一:保定地区2003-2012年某地区气候及虫害程度信息
年月 平均气温 最低温度 日照时间(h) 降雨量(ml) 虫害程度 年月 平均气温 最低温度 日照时间(h) 降雨量(ml) 虫害程度