一种改进的深度置信网络在棉花病虫害预测中的应用
2018-08-07王献锋丁军朱义海
王献锋,丁军,朱义海
(1.西京学院理学院,西安 710123;2.Tableau Software,Seattle,WA 98103,USA)
棉花是我国的1种重要经济作物,也是1种很容易受到多种病虫害侵染的作物。据农业部门统计,棉花病虫害约有40余种,其中发生频繁、危害较大的“三虫”(棉铃虫、棉蚜虫、红蜘蛛)和“两病”(黄萎病、枯萎病)是棉田的主要病虫害,对棉花生产影响范围大、持续影响时间长,而且造成的损失较大[1-2]。研究表明,棉花病虫害发生需要一定的环境条件,而且具有一定规律,主要与温度、湿度、降雨、风、光照和CO2等气候气象因素有关[3-4]。农作物病虫害预测是1个应用性很强的研究方向[5-6]。赵冰梅等[7]预测了新疆兵团2017年棉花主要病虫害发生趋势,提出了相应的防治对策和综合防治措施,为做好棉花病虫害防治工作提供参考。刘俊稚[8]研究了几种典型植物对大气CO2浓度升高的生理和病理响应,指出了CO2浓度升高不但影响植物的生长发育,而且改变植物体内的化学成分的组成与含量,从而直接和间接地影响到作物病虫害发生。张建华等[9]提出了1种在自然环境条件下基于粗糙集和反向传播神经网络 (Back propagation neural network,BPNN)的棉花病害识别方法。该方法利用粗糙集减少特征维数,使BPNN的训练时间缩短到原来的1/4。随着计算机、遥感、互联网、物联网等技术的不断发展,为棉花病虫害准确预测和科学防治提供了可能[10]。特别的,物联网能够为棉花病虫害管理提供数据快速获取、实时传输、统一存储、空间分析到服务发布整个流程的有效解决方案。赵庆展等[11]设计了1套基于移动地理信息系统(Geographic information system,GIS)的棉田病虫害信息采集系统。该系统为棉花病害的防治提供了有效的技术支持。陈光绒等[12]提出了1种基于物联网技术的农作物病虫害自动测报系统。王翔宇等[13]研究了农业主要病害检测与预警技术。王献锋等[14]将作物的病害叶片图像和病害的环境信息相结合,提出了1种基于叶片图像和环境信息的黄瓜病害识别方法。许金霞[15]利用智能移动终端实现了棉田虫害空间及属性信息的快速获取,通过搭建统一的信息服务平台,能够为农户和基层农技人员及时提供虫害的相关预警防治信息。
尽管现有的很多作物预测方法、技术和系统取得了较高的预测正确率,但由于农作物病虫害发生和发展涉及的因素很多,而且各因素之间存在着复杂的相互作用和相互影响[16-18],使得传统的病虫害预测模型的表达能力和泛化能力有限,预测正确率不高,很多现有的预测模型还不能满足实际病虫害预测系统的要求。
深度学习是近年来人工智能和模式识别领域的1种新颖的、非常有效的机器学习方法,并在作物病虫害预测中取得了成功应用[19]。深度信念网络(Deep belief network,DBN)是 1 种经典的双向深度网络方法,具有较强的数据分类和预测能力。张善文等[20]引入冬枣病虫害的先验信息,提出了1种基于环境信息和改进DBN的冬枣病虫害预测模型,取得了较高的预测正确率。该研究可为作物病虫害预测提供技术参考。王秀美等[21]将深度信念网络用于小麦蚜虫的短期预测,并对小麦蚜虫发生量以及发生程度进行预测。结果表明,与浅层学习模型相比,深度信念网络的预测误差较小、推广能力强,可以为小麦蚜虫的防治提供及时有效的指导。因此,本文利用棉花生长的环境信息,提出1种基于DBN的棉花病虫害预测模型。
1 材料与方法
1.1 数据采集与处理
以上研究表明,气温、湿度、降水、光照等气候气象变化直接影响到棉花病虫害的发生种类、发生期及发生量。利用农业物联网的多种传感器,采集与棉花的“三虫”(棉铃虫、棉蚜虫、红蜘蛛)及“两病”(黄萎病、枯萎病)发生和发展对应时段的12种环境信息:发病季节、土壤温度和湿度、土壤盐分、土壤是否连种、空气温度和湿度、光照强度、降水量、降水日数、CO2浓度和农药使用量[22-24]。根据历史数据、按照月份,将棉花的不同病虫害的发生期划分为5个等级:0.9、0.7、0.5、0.3和0.1;将光照强度由强到弱设置为4个等级[25]:0.7、0.5、0.3 和 0.1;将农药用量由多到无分别设置为4个等级:0.7、0.4、0.2和0;按照土壤没有连种、连种1次、连种2次以上,将土壤是否连种信息分别设置为3个等级:0、0.2和0.4。从早上8点到下午5点间隔1 h采集温度、湿度和光照时间,然后计算日平均温度、日平均相对湿度和日平均光照时间。本文根据所采集的实际棉花病虫害发生数据,制定棉花的“三虫”和“两病”的发生程度等级划分方案[2,24-25]。
单幅病害叶片的病害等级划分标准为:0级:无病害;1级:斑点占叶面10%以下;2级:斑点占叶面10%~20%;3级:斑点占叶面20%~30%;4级:斑点占叶面30%以上。则棉花病害的病情等级表示为[26-27]:
虫害等级划分依据百株棉花上的虫量[15,27]:0级,无虫害;1级,百株数量在10头以下;2级,百株虫量在10~20头;3级,百株虫量在20~30头;4级,百株虫量在30头以上。
由于所采集到的环境信息数据的量纲不同,所以在利用这些数据之前需要进行归一化处理。具体的归一化算法如下,其他因素对应的信息值由式(2)归一化:
式中,aj,bj(j=1,2,……,n)分别为第j个环境信息数据归一化前后的值分别为n个数的最大值和最小值。
利用上述环境信息处理方法,将每天采集的各个环境信息进行日平均,再进行归一化,最后组成1个12维的向量,作为当天的环境信息向量样本,应该得到5×151×10=7 550个向量。但由于采集的部分环境信息数据缺失或不合理,所以我们只选择了4 500个环境信息向量进行下面的病虫害预测试验。
1.2 深度信念网络
深度信念网络(DBN)由若干个受限玻尔兹曼机(Restricted Boltzmann machine,RBM)网络和最高层为1个有监督学习的反向传播(Back-propagation,BP)网络堆叠组成[20-21]。 每个RBM网络由可视层(即输入数据VIˆRD)和隐层(即 1个二值随机隐变量构成,可视层与隐层层内各节点之间无连接、取值相互独立。设所有的隐层和可见层神经元均为二值分布, 神经元数分别为m和n, 则RBM的2层的能量函数为:
由E(v,h;θ)可以得到在状态(v,h)的联合概率分布为:
由式(4)可得到可见层和隐层的输出概率P(v|h)和P(h|v),即联合概率分布P(v,h|θ)的 2个边际分布:
由于RBM的可见层节点与隐层节点的激活状态之间相互独立,则第j个隐层节点和第i个可见节点的输出概率模型分别为:
式中,f(x)=1/(1+exp(-x))为 sigmoid 函数。
利用马尔科夫链蒙特卡洛方法使RBM的可视层和隐含层互为条件,不断地更新参数状态,当最终可视层和隐含层共同趋于平稳状态时,联合概率分布P(v,h|θ)达到最大,然后求得P(v,h|θ)与初始状态的联合概率分布的斜率P(v,h|θ)/θ,使用下式(7)更新权值:
式中,t为迭代次数,η为学习速度,默认取为迭代次数的倒数。
采用无监督预训练和有监督微调训练DBN[21],将期望输出和实际输出之间的误差进行反向传播,利用梯度下降法调整整个网络的参数,寻找网络的最优参数。
1.3 基于改进的DBN的棉花病虫害预测方法
学习速率η直接影响DBN的训练效果。若η过大,可能导致重构误差大,权重变化异常;而若η过小,则收敛速度较慢,训练时间过长。为了解决这一问题,采用动态学习率和对比分散准则(Contrastive divergence,CD)自适应地为各个参数分配不同学习率,加快RBM的训练过程。其公式如下:
式中,g(i)是第i次更新所得到偏导数。
由式(8)得知,式中的分母会随着迭代次数的增加而累加g(i),所以学习速率不再恒定。对于所有的参数来说,学习速率都是越来越小,而且偏导越小,则学习速率减小越慢,即学习率较大。
利用马尔科夫链的方法求得的联合概率分布不容易保证收敛性,可以采用CD准则提高计算速度和保证计算精度:
式中,P0为RBM在t=0时(即初始状态)的联合概率分布,Pn为经过n步马尔科夫链后网络的联合概率分布,P∞为马氏链末端的分布,KL(P|P′)为P和P′之间的差异性。
由式 (9) 可知,CDn是衡量Pn介于P0与P∞之间的位置。在运算中,不断地将Pn赋值给P0,更新P0和Pn。
为了减小预测模型的训练和运行时间,本文采用DBN的基本结构为1个输入层、3个隐含层和1个BP网络输出层。利用改进的DBN进行棉花病虫害预测,其主要流程如图1[20]所示。
主要过程描述如下:
(1)数据采集和预处理。采集与棉花病虫害发生相关的环境信息,包括气候、气象信息、土壤信息等12种组成原始数据集,结合病虫害历史数据,对每类数据进行量化、归一化预处理,然后组成维数为12的信息向量,作为模型的输入样本集,再将所有样本划分为训练样本集和测试样本集,作为可视层数据输入到最低层RBM。
图1 基于DBN的预测模型Fig.1 Prediction model based on DBN
(2)构造基于改进DBN的棉花病虫害预测模型。采用试验方法对DBN的结构进行优化设置,包括RBM的层数、输入层结点数、隐含层结点数、学习率等。
(3)训练阶段包括预训练和微调。利用训练样本训练改进DBN预测模型。在预训练阶段,第1层RBM网络的输入为原始数据,它由可见层v0和隐藏层h0组成。第1层RBM网络完成v0和h0之间的权值w0的学习后,进入第2层RBM网络的训练,此时h0=v1。依此类推,h1=v2…,hn-1=vn,得到各个 RBM 之间的权值wi(i=1,2,…,n),即DBN各隐藏层之间的参数。计算实际输出和目标输出的误差,使用与模型权重相关的函数表示这个误差,再利用共轭梯度算法调整权重矩阵,最后得到误差函数达到最小的网络权重矩阵;在测试阶段,DBN中的BP网络接收最后1个RBM网络的输出,再利用Dropout方法有监督地自上而下对整个DBN进行微调。BP网络以最后的RBM网络的输出作为输入,有监督地训练DBN的权值参数。
(4)测试阶段。将测试样本输入到训练好的预测模型中,计算棉花病虫害的预测结果。病虫害预测模型的输出层中的节点数为5,表示病害发生程度分为5个级别。其中,病虫害发生等级的预测期望输出模式分别为 (1 0 0 0 0)代表0级,(0 1 0 0 0)代表 1 级,(0 0 1 0 0)代表 2 级,(0 0 0 1 0)代表3级,(0 0 0 0 1)代表4级。模型训练后的输出结果为5个节点输出的最大值对应的病虫害等级[24]。
(5)预测结果分析。对于相同的训练数据和测试数据,利用经典的神经网络预测方法进行预测,将预测结果与基于DBN的预测模型的预测结果进行对比。
2 结果与分析
2.1 仿真试验设计
2.1.1试验平台。采用的硬件环境为内存32 G,CPU Intel(R)Core(TM)i7-4790 8*3.60 GHz,GPU GeForce GTX Titan X,训练速度是单核Intel 3.47 GHz的15倍以上,深度学习架构为Tensorflow,编程语言为python。
2.1.2模型训练。利用无标签4 000个环境信息向量样本数据集预训练预测模型,再利用1 000个带标签环境信息向量样本有监督地微调预测模型参数,待分类器通过学习具有分类能力后再利用新输入的棉花环境信息数据,寻找预测率最高时对应的输入层结点数和隐含层结点数,预测病虫害发生和发展的等级。由于DBN对相关的初始参数十分敏感,为了获得高效的预测正确率,首先需要确定3个参数:DBN的层数、每一隐层的节点个数和训练DBN模型需要迭代的次数。为此,通过大量试验对比获得最优的3个参数值来设置整个模型。模型评价指标选择为均方误差,当误差值较大时说明模型的预测精度较低;反之则说明模型预测精度较高。在确定模型的网络结构后,先用训练样本集进行训练,得到模型各神经元间的权值与偏置,利用训练好的模型对测试样本集的输入变量进行预测,判断模型的预测值与真实值之间的误差。当输出训练样本集的预测误差达到最小时的模型作为最终输出模型[21-24,30]。在本试验中,输入神经元数为12,输出神经元数为4。为了简化模型,训练的DBN模型每层都采用相同的节点数。训练各个RBM时学习率为1,分组训练大小设置为32,反向传播微调时学习率为1,动量为0.5。根据DBM规模设置迭代次数t,一般取100~2 000。经过多次试验得出识别率较好的DBN网络隐含层从100开始、步长为50进行增加,微调循环次数为50,dropout概率设置为0.2。在此基础上进一步确定各层神经元数,经过反复试验确定,每个隐层神经元数为350时,获得的高层特征效果最佳。最终确定的模型结构为1个输入层、3个隐含层和1个BP网络输出层。
2.1.3预测试验过程。采用10-折交叉验证法对4 500个环境信息向量重新进行试验,即将4 500个样本数据集分成10份,每份450个,轮流将其中1份作为测试数据测试模型,然后将剩余的1份作为测试数据输入到训练好的模型进行试验,得到10个测试结果,将其平均值作为1次试验结果。试验中,各节点输出值大于0.90,则判定为该类,预测结果表示为正确识别样本数占450个样本的百分比。重复进行10-折交叉验证试验50次,计算5种算法的50次试验对不同类病虫害的平均预测正确率以及各个算法的总体平均预测正确率。
2.2 预测结果与分析
基于DBN的棉花病虫害预测模型对“三虫、两病”的总体平均预测结果见表1。作为比较,表1还列出了基于马尔科夫转移矩阵(Markov transfer matrix,MTM)[22]、BPNN[23]、RBF 网络(RBF network,RBFN)[28]和 Apriori算法 (Apriori)[29]的棉花“三虫、两病”的预测结果。
从表1可以看出,基于改进DBN的棉花病虫害预测模型的预测正确率远高于其他4种预测方法,其原因是本文提出的基于DBN的预测方法能够充分利用12种环境信息,从复杂的环境信息中深度挖掘病虫害预测特征,提取影响棉花病虫害发生和发展的主要因素,从而得到较好的预测结果。尽管DBN的训练时间很长,但是当模型训练好后识别时间比较短。试验结果表明,基于DBN的预测方法在利用环境信息预测农作物病害中具有良好的特征学习性能,能够满足应用的要求。基于Apriori算法的棉花病虫害的预测结果优于MTM、BPNN和RBFN,其原因是,利用Apriori算法能够挖掘气候因素与棉花病虫害的发生和发展之间的关系。由表1的试验结果表明,气温、湿度、降水、光照等气候和气象因子变化直接影响到棉花病虫害的发生种类、发生期及发生程度,是预测病虫害的依据。
表1 基于5种预测模型的棉花病虫害的预测正确率及平均训练和识别时间Table 1 Forecasting accuracy of cotton diseases and pests by five forecasting models
3 结论与讨论
利用农作物生长的环境信息预测病虫害发生和危害等级是当前计算机科学和模式识别等领域研究的热点问题。面对海量、复杂、多变的环境信息,传统的浅层学习算法难以从高维数据中学习到环境信息与病虫害发生之间的本质联系,所以得到的预测正确率不高。本文利用相对湿度、平均气温、降水量和日照时数等12种环境信息,建立基于DBN的棉花病虫害预测方法。在棉花的“三虫、两病”数据集上进行了试验验证,并与其他4种预测方法进行了比较,结果证明了本文提出的预测方法的有效性。
该模型主要特点:(1)整合海量、多源的环境信息数据,能够准确预测棉花病虫害,在一定程度上克服了现有预测方法的缺陷。(2)该模型能够深度挖掘与病虫害发生相关的环境信息之间内在的联系,能够准确预测作物病虫害发生。(3)该模型采用动态学习率法则和对比分散准则进行网络自训练,提高了训练速度。
该方法为棉花病虫害预测提供了1种新思路,但其预测性能的稳定性和准确性还需进一步验证和改进。关于DBN的隐含层数、隐含层节点数等的设置几乎没有理论依据,一般依靠经验和试验结果进行设置,花费的时间比较长。下一步研究重点为寻找DBN的参数设置的思路和依据,以提高预测方法的性能。