彭秋连,冯璐,邓军,樊仙,张跃彬
(云南省农业科学院甘蔗研究所,云南开远661699)
我国是世界上主要的产糖国之一[1],而云南是全国主要的甘蔗产区及糖料基地,甘蔗和食糖产量位居全国第二[2-3]。因此甘蔗作为云南地区的主要产业,其产量的高低影响着该地区的经济发展。做好甘蔗产量的预测,对于相关部门统筹甘蔗生产管理、制定甘蔗产业政策和计划具有指导意义。
目前产量预测的方法较多,传统的预测方法主要有时间序列分析法[4]和线性回归模型[5]。这些方法简单,容易实现,但是只适用于短期的产量预测。随后出现了人工神经网络模型[6-7]和马尔可夫法[8]等非线性预测方法,这些方法可提高产量预测的精度。而在甘蔗预测方面,很多研究学者也进行了一系列的研究。黄永春等[9]结合灰色系统理论,建立榨季小期蔗糖分预测模型,得出了该模型误差小,具有较高的精度,预测结果可信的结论。李尚平等[10]利用基于PSO算法的BP神经网络提出了一种甘蔗宿根切割质量的预测方法。毛钧等[11]提到APSIM-Sugar甘蔗模型可用于预测甘蔗地上部生物量、蔗茎、糖分产量、含糖量、水分利用、氮素摄取和分配等。钟楚等[12]根据作物生理发育时间的基本原理,来预测甘蔗生理发育时间和生育期。上述研究对甘蔗的预测都起到了非常重要的作用。
近年来,神经网络在甘蔗预测的研究比较广泛。徐永春等[13]应用改进遗传神经网络建立了甘蔗产量模型;陈晓等[14]基于甘蔗叶片的反射光谱,利用PCA和BP神经网络算法来预测甘蔗叶片的叶绿素含量;谢名洋等[15]首次将人工神经网络模型,应用于广西甘蔗产量预测系统;文绍纯等[16]结合甘蔗制糖的实际,设计了一个甘蔗制糖结晶过程的神经网络模型。由此可见,研究学者们利用人工神经网络来进行甘蔗预测是可行的。本文通过建立BP神经网络预测模型,用云南历年甘蔗产量来进行分析研究,并用实例来验证该模型。
BP(back propagation)神经网络[6-7,10,14]是目前应用最广泛的神经网络模型,是反向传播网络,即基于误差反向传播算法的一种多层前馈网络。此网络的学习是使网络的实际输出逐步接近某个特定的期望输出。所以,学习的关键是设计出合理的网络结构。对网络进行设计,一般要从网络层数、各层神经元数来确定。
BP算法[6-7,10,14]的基本思想是,对网络权值和阈值的修正,使误差函数沿梯度方向下降。在该网络中,每个处理单元均为非线性输入/输出关系,通常选取Sigmoid函数作为其功能函数。
BP神经网络是采用有监督的学习方法,包括输入层、输出层和隐含层三层,其训练算法分为两个阶段:即正向传播和误差的反向传播。
在正向传播过程,输入样本通过输入层,经隐含层逐层处理并计算每个单元的实际输出值;若输出层得不到期望输出,则进入反向传播过程,通过不断地修正各层神经元权值,来逐层递归地减少实际输出与期望输出的差值。层层修正各个连接权值的过程,即是网络的学习训练过程,如此循环直至误差达到允许的范围之内为止。
在三层BP神经网络中,输入向量为X=(x1,x2,…,xi,…,xn)T,隐层输出向量为Y=(y1,y2,…,yj,…,ym)T,输出层输出向量为O=(o1,o2,…,ok,…,ol)T,期望输出向量为D=(d1,d2,…,dk,…,dl)T。输入层到隐层之间的权值矩阵用V表示,V=(v1,v2,…,vj,…,vm)T,其中vj为隐层第j个神经元对应的权向量;隐层到输出层之间的权值矩阵用W表示,W=(w1,w2,…,wk,…,wl)T,其中wk为隐层第k个神经元对应的权向量。
作用函数采用单极性Sigmoid函数:
对输入矢量,神经元网络的有关计算公式如下:
输出层节点k的输入netk为:
输出层节点k的实际输出ok为:
隐层节点j的输入netj为:
隐层节点j的实际输出yj为:
当BP神经网络的实际输出与期望输出不等时,存在输出误差,
定义为:将上述输出误差定义式子展开至隐层:
进一步展开至输入层:
由(8)式可以看出,网络的输出误差是各层权值wk、vi的函数,因此调整权值即可改变误差E。
显然,调整权值正是为了使误差不断减少,因此应使权值的调整与误差的下降成正比,即
(9)式和(10)式中的负号表示梯度下降,常数η∈(0,1)表示比例系数,在训练中反映其学习速率。
(9)式和(10)式只是权值调整思路的数学表达,对于具体的权值调整计算式本文不作推导。
下面仅给出三层BP算法权值调整的表达式:
其中输出层误差为:
隐层误差为:
从(11)和(12)两个式子中可以看出,学习率η、本层的输出误差δ及本层的输入向量X(或Y)决定着权值的调整。
以1990—2018年度(令1990=1,1991=2,…,2018=29)云南省甘蔗产量为数据样本,对数据都假设归一化在0~1之间,其中1990年到2012年的数据作为训练样本,2013年到2018年6年实际产量作为预测效果检验样本。分析数据来源于云南省农业厅种植业管理处。
影响甘蔗产量的因子平均气温、最低温度、最高温度、降雨量和日照等,取云南省气象因子的月平均值作为参数,每年则有60个气象因子。本文选取60个云南省平均气象因子作为BP神经网络训练模型的输入层节点数;云南省甘蔗实际产量为目标输出,因此模型的输出层节点数为1;通过黄金分割法分析确定隐层节点数为23。
利用公式(3),将1990年到2012年的气象因子X代入,可计算1990年到2012年实际输出(甘蔗产量);利用公式(8),计算甘蔗实际输出(甘蔗产量)和目标输出(甘蔗实际产量)的误差,选取网络学习的收敛误差为0.001,通过对该网络模型进行训练,直至迭代次数为2 000次,训练结束。
根据1990—2018年的云南省甘蔗产量的数据,通过BP神经网络模型来进行训练,即利用1990年到2012年云南省甘蔗产量数据来预测2013年到2018年云南省的甘蔗产量,其模型预测结果与实际值的对比关系可见表1,相对误差在-5.7%~4.6%的范围内,模拟精度高,由此可见该模型可较好地服务于甘蔗产量的预测。
表1 预测结果与实际值比较Table1 Comparison of forecast results with actual values
和其他预测模型相比,BP神经网络在模型的学习训练阶段,网络具有自学习能力,会自动根据各因子对甘蔗产量所起作用的大小来调节权重,且其拟合能力和预测性能都比其他预测方法优越。但该模型本身还存在一些问题:(1)如何克服由于神经网络初始权值的随机性和网络结构确定过程中所带来的网络振荡,以及局部解问题,并有效提高网络的泛化能力;(2)BP神经网络的结构确定至今还没有一套完整的理论体系来支持,一般由经验来选定,而网络的结构直接影响着网络的逼近能力,从而影响着预测结果。
针对云南地区甘蔗产量的预测问题,本研究利用BP神经网络算法,选取平均气温、最低温度、最高温度、降雨量和日照5个气象因子作为预测变量,建立了一种甘蔗产量预测模型,网络训练结果表明,BP神经网络算法可提高甘蔗产量的预测精度,具有较强的实用性,在甘蔗产量的预测中具有较好的应用前景,同时该模型可为其他产业的发展提供技术支持。
国家各相关部门都非常重视糖料和食糖产业安全,在积极寻求发展措施[17]。今后探讨BP神经网络网络模型或其它预测是否可应用于糖料目标价格管理、食糖消费及进出口[18-20],以利于糖料和食糖产业安全。