一种基于LSTM深度学习模型的土壤墒情预测方法与流程

文档序号:18322075发布日期:2019-08-03 10:34阅读:1176来源:国知局
一种基于LSTM深度学习模型的土壤墒情预测方法与流程

本发明涉及土壤墒情预测方法领域,具体是一种基于lstm深度学习模型的土壤墒情预测方法。



背景技术:

我国是一个干旱缺水严重的国家,人均水资源量只有世界平均水平的1/4,是全球人均水资源最贫乏的国家之一。在农业生产过程中实施精准灌溉可以有效节约水资源、促进农作物生长。但农田灌溉往往存在着灌溉不充分和灌溉过剩的现象,灌溉不充分导致作物生长受阻,产量低下,而灌溉过剩则易使作物根系发育不良,出现作物死亡的现象,导致水资源利用率降低,无法达到高产的目的。因此,建立土壤墒情预测模型,开展土壤墒情的预测可以有效解决灌溉不充分和灌溉过剩的问题,是实现农田精准灌溉的主要技术手段。土壤墒情预测模型根据农田气象数据、土壤理化数据和过去的土壤含水量预测未来某一时刻的土壤含水量,以此确定灌溉水量的多少,从而达到高产稳产的作用。目前还没有成熟的技术方法对土壤墒情进行有效预测,建立泛化能力强、预报准确率高的土壤墒情预测模型,实施土壤墒情的准确预测是农业精准生产需要解决的重要问题之一。2016年文献《基于气象因子的启东市土壤墒情预报研究》(安徽农业科学,2016,44(34):174-176)提出了利用逐步回归方法,分别分析启东市2011—2014年的土壤表墒、底墒与同时期的气象因子(降水量、温度、湿度、日照、风)的相关性,筛选出影响土壤墒情的关键气象因子,并结合经验公式法建立土壤墒情预报模型。结果表明,影响启东市土壤墒情的气象因子主要是降水量、日照和气温,由此建立的预报模型预报未来30d内土壤墒情的平均相对误差在5%以内,检验效果理想,说明利用该模型可以较为准确地预报未来30d内土壤墒情,并用于指导农业生产。

2017年文献《基于bp神经网络的土壤墒情预测精度研究——以肥东县为例》(土壤通报,2017,48(02):292-297)。提出采用bp神经网络用于对土壤墒情进行预测,其主要思路选取其中对土壤水分影响较为显著的平均气温、平均湿度、辐射量、降雨量作为模型输入样本,建立网络模型。另外,时段初的土壤含水量对时段末的土壤墒情有很大影响,所以时段初土壤含水量也将作为模型的输入样本。

专利《一种基于墒情指数的土壤墒情预报方法》(申请号:n201810457976.x),该方法所用的模型是经过多年野外实验研究提出的半经验半理论模型,具有参数简单易得,便于实际应用的特点。该方法提出以失墒敏感层实测土壤含水量来计算作物根系发育层土壤墒情指数,依次进行20cm和50cm土层实测含水率计算、50cm土层墒情指数计算、50cm土层墒情指数预测、20cm土层含水率预测、50cm土层含水率预测、灌水时间预测、灌水定额预测,实现了土壤墒情监测、预报、更新、灌水时间及灌水定额预测技术的标准化,构建了土壤墒情监测与预报信息系统,方便墒情信息查询、旱灾评估及风险管控,适用于广大的平原地区农田土壤墒情预报。

上述这些方法均实现了依据过去一段时间的土壤墒情变化情况来预测下一时刻的土壤墒情变化曲线。但是它们共同存在的问题是:构建模型时没有充分考虑到数据的时序性特征,泛化能力及预报准确率都有待提高。



技术实现要素:

本发明的目的是提供一种基于lstm深度学习模型的土壤墒情预测方法,以解决现有技术土壤墒情预测方法没有考虑数据时序性特征的问题。

为了达到上述目的,本发明所采用的技术方案为:

一种基于lstm深度学习模型的土壤墒情预测方法,其特征在于:包括以下步骤:

(1)、收集目标农田的一段时间内的土壤理化及气象数据;

(2)、将步骤(1)收集到的土壤理化及气象数据进行预处理,然后再将预处理后的数据按比例划分为训练样本集和测试样本集;

(3)、构建lstm深度学习模型,所述lstm深度学习模型具有一个输入层、二十五个隐藏层和一个输出层,通过训练样本集对lstm深度学习模型进行训练以得到调参后的lstm深度学习模型,再通过测试样本集对调参后的lstm深度学习模型进行验证,最终以验证后的lstm深度学习模型作为土壤墒情预测模型;

(4)、将步骤(1)收集的土壤理化及气象数据作为土壤墒情预测模型的输入,通过土壤墒情预测模型对土壤理化及气象数据进行处理,最终由土壤墒情预测模型输出未来时刻的土壤墒情预测结果。

所述的一种基于lstm深度学习模型的土壤墒情预测方法,其特征在于:步骤(1)中,采用线性插值法修补所收集的土壤理化及气象数据的缺失数据,其中线性插值法的公式如下:

公式(1)中,i与j分别表示第i时刻与第j时刻值,要求0<i<j。xk和xk+j分别是k时刻与k+j时刻采集的土壤理化及气象数据,xk+i为k+i时刻丢失的土壤理化及气象数据。

所述的一种基于lstm深度学习模型的土壤墒情预测方法,其特征在于:步骤(2)中的预处理为归一化预处理,归一化预处理后将其中85%的数据作为训练样本集,15%的数据作为测试样本集,归一化预处理的公式为

通过对所收集到的数据进行归一化预处理,使收集的数据值的映射区间为[0,1],归一化预处理的公式中,x为原始数据,xmax,xmin分别为原始数据中的最大值与最小值,xnow为归一化处理之后的结果数据;

通过归一化预处理以消除指标之间的量纲影响,解决数据指标之间的可比性,原始数据经过预处理后,各指标处于同一数量级,有助于模型的构建。

所述的一种基于lstm深度学习模型的土壤墒情预测方法,其特征在于:步骤(3)中,构建的lstm深度学习模型的网络结构为(7,25,1),lstm深度学习模型中的每个隐藏层分别采用具有三个门的lstm单元,该lstm单元的三个门分别是遗忘门、输入门和输出门,通过三个门结构共同完成对状态的更新并且输出目标值,隐藏层的数据处理过程如下:

遗忘门确定遗忘信息的程度,首先读取h(t-1)和x(t)以对数据进行筛选处理,其中h(t-1)表示的是上一个记忆细胞的输出,x(t)表示的是当前细胞的输入,如公式(2)所示:

f(t)=σ(wf·[h(t-1),x(t)]+bf)(2),

公式(2)中,wf是权重项,bf是偏置项,f(t)是信息的遗忘程度,σ为sigmoid函数,取值为[0,1]之间。sigmoid函数输出一个在0到1之间的数值用于细胞状态c(t)的更新,其中1表示为完全保留信息,0表示完全舍弃此节点数据;

输入门确定新的信息添加到隐藏节点中,其中c(t-1)是上一时刻的细胞状态,定义i(t)为确定更新的信息,完成信息添加需要包括两个步骤:首先,通过一个输入门的sigmoid函数决定哪些信息需要更新;其次,通过一个tanh层生成一个向量,也就是备选的用来更新的内容a(t),把这两部分联合起来,对细胞的状态进行一个更新,如公式(3)、(4)所示:

i(t)=σ(wi·[h(t-1),x(t)]+bi)(3),

a(t)=tanh(wc·[h(t-1),x(t)]+ba)(4),

公式3中,σ为sigmoid函数,wi为权重项,h(t-1)是上一时刻最终输出的部分,x(t)为当前细胞的输入。bi是偏置项。

公式4中,tanh为tanh函数,wc为权重项,h(t-1)是上一时刻最终输出的部分,x(t)为当前细胞的输入。ba是偏置项。

公式(4)中更新旧细胞状态时,将上一时刻更新的内容a(t-1)更新为此刻更新的内容a(t)。把上一时刻的细胞状态c(t-1)与遗忘门中的f(t)相乘,并加上i(t)*a(t),达到更新细胞状态的作用,如公式(5)所示:

c(t)=f(t)*c(t-1)+i(t)*a(t)(5),

公式(5)式中,*表示hadamard积,即表示矩阵对应位置的乘积。c(t-1)为上一时刻的细胞状态,a(t)为新的内容。c(t)为新的记忆状态。

输出门确定输出项,首先基于记忆细胞状态,运行一个sigmoid函数以确定记忆细胞的哪些信息将输出;其次,把记忆细胞状态通过tanh进行处理,得到一个介于-1到1之间的值,并将该值和输出门的输出相乘,如公式(6)和公式(7)所示:

公式(6)中,o(t)为输出哪些信息,h(t-1),x(t)表示为上一时刻的输出与此刻输入。wo为权重项,bo为偏置项。

公式(7)中h(t)为最终输出的部分,将式(6)中得到的o(t)再乘以当前新的记忆状态通过tanh函数的值,达到记住序列长期依赖的信息的效果。

本发明与现有技术相比的优点在于:本发明利用深度学习算法,采用一种基于长短期记忆模型的土壤墒情预测方法。与传统方法相比,使用深度学习方法对土壤墒情进行预报,不必实时采用人工方法测量,节约了人力物力。另外,使用lstm单元能够真实的反映前期数据对后期结果的影响,充分体现了时序性特征,提高了预测效率和准确度,具有较高的泛化能力。基于lstm深度学习模型的土壤墒情预测方法具有良好的应用价值。

附图说明

图1为本发明实现流程图。

图2为本发明使用的lstm单元示意图。

图3为激活函数示意图。

图4为激活函数示意图。

图5为测试集(土壤墒情)的预测曲线图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

如图1所示,本发明具体实现过程如下:

1、监测农田的气象数据和土壤理化数据。每30分钟采集一次数据。采集约3个月的数据量,共计4000余条数据记录,对于其中部分缺失的数据,采用所述的线性插值法修补,如公式(1)所示:

公式(1)中,i与j分别表示第i时刻与第j时刻值,要求0<i<j。xk和xk+j分别是k时刻与k+j时刻采集的土壤理化及气象数据,xk+i为k+i时刻时丢失的土壤理化及气象数据。

2、数据预处理:在模型训练前,需要对采集到的农田气象数据和土壤理化数据进行归一化处理。所谓归一化处理,就是将数据映射到[0,1]或[-1,1]区间。保证不同数据范围的输入数据发挥相同的作用。本发明中采用的归一化处理公式为其中x为待归一化处理的原始数据,xmax,xmin分别为原始数据中的最大值与最小值,xnow为归一化处理之后的数据。

将归一化处理后的数据分为训练样本集和测试样本集数据两个部分。数据所占比例分别为85%、15%,用于lstm深度学习模型的训练和测试。

3、模型结构:如图2所示,本发明采用具有7个输入层、25个隐藏层和1个输出层的lstm深度学习模型,lstm深度学习模型的隐藏层单元均采用lstm(长短时记忆)单元,这种结构很好的解决的后续节点对前面的时间节点感知能力下降的问题,克服了常规时间序列模型结构的不足之处,能够很好的处理时序性数据。lstm是一种叫做记忆细胞的单元,该单元具有3个门结构。

遗忘门确定遗忘信息的程度。读取h(t-1)和x(t),h(t-1)表示的是上一个记忆细胞cell的输出,x(t)表示的是当前细胞的输入,完成数据的筛选处理,如公式(2)所示:

f(t)=σ(wf·[h(t-1),x(t)]+bf)(2),

公式(2)中,wf是权重项,bf是偏置项,f(t)是信息的遗忘程度,σ为sigmoid函数,取值为[0,1]之间。sigmoid函数输出一个在0到1之间的数值用于细胞状态c(t)的更新,其中1表示为完全保留信息,0表示完全舍弃此节点数据;

输入门确定新的信息添加到隐藏节点中。c(t-1)是上一时刻的细胞状态,i(t)是确定信息更新的部分。完成信息添加需要包括两个步骤:首先,通过一个输入门的sigmoid函数决定哪些信息需要更新;其次,一个tanh层生成一个向量,也就是备选的用来更新的内容a(t)。这两部分联合起来,对细胞状态进行更新,如公式(3)和公式(4)所示:

i(t)=σ(wi·[h(t-1),x(t)]+bi)(3),

a(t)=tanh(wc·[h(t-1),x(t)]+ba)(4),

公式3中,σ为sigmoid函数,wi为权重项,h(t-1)是上一时刻最终输出的部分,x(t)为当前细胞的输入。bi是偏置项。

公式4中,tanh为tanh函数,wc为权重项,h(t-1)是上一时刻最终输出的部分,x(t)为当前细胞的输入。ba是偏置项。

公式(4)中更新旧细胞状态时,将上一时刻更新的内容a(t-1)更新为此刻更新的内容a(t)。把上一时刻的细胞状态c(t-1)与遗忘门中的f(t)相乘,并加上i(t)*a(t),达到更新细胞状态的作用,如公式(5)所示:

c(t)=f(t)*c(t-1)+i(t)*a(t)(5),

公式(5)式中,*表示hadamard积,即表示矩阵对应位置的乘积。c(t-1)为上一时刻的细胞状态,a(t)为新的内容。c(t)为新的记忆状态。

输出门确定输出项。首先,基于记忆细胞状态,运行一个sigmoid层来确定记忆细胞的哪些信息将输出;其次,把记忆细胞状态通过tanh进行处理(得到一个介于-1到1之间的值)并将它和输出门的输出相乘。输出项根据(6)式和(7)式进行计算。

公式(6)中,o(t)为输出哪些信息,h(t-1),x(t)表示为上一时刻的输出与此刻输入。wo为权重项,bo为偏置项。

公式(7)中h(t)为最终输出的部分,将式(6)中得到的o(t)再乘以当前新的记忆状态通过tanh函数的值,达到记住序列长期依赖的信息的效果。

门结构使用sigmoid激活函数(如图3所示):

上式(8)中,x作为输入数据,通过sigmoid函数把数据向量值‘压缩’至[0,1]之间,若输入的值为负数且非常大,则数值为0,若输入的值为正数非常大,则为1。

在对细胞的状态进行更新时,使用了tanh激活函数(如图4所示。):

上式(9)中,x作为输入数据,经过函数f(x)映射到[-1,1]之间。

网络训练中,将当前批处理(batch)的最终隐藏层状态作为后续的初始隐藏状态(按顺序遍历整个训练集)。设置batch的大小为72。本发明使用的lstm深度学习模型采用的网络结构为(7,25,1)。,学习速率(learningrate)设定为0.01。在训练过程中,按照平均绝对误差(meanabsoluteerror)来计算误差,并按照反向传播算法用于更新权重。

上式(11)中,m为训练数据的总条数,x(i)表示数据输入值,k(x(i))是预测输出值,y(i)是实际输出值。依据上式得出的误差值。将训练样本数据中的序列作为训练输入,不断训练网络模型并调参,当迭代次数达到300次时结束。得出一个稳定的预测模型,将该模型用作土壤墒情的预测模型。

lstm模型有两个隐藏状态h(t),c(t),模型中参数较多。

(1)前向传播过程在每个序列索引位置的过程为:

①更新遗忘门输出

f(t)=σ(wf·[h(t-1),x(t)]+bf),

②更新输入门的两部分输出

i(t)=σ(wi·[h(t-1),x(t)]+bi),

a(t)=tanh(wc·[h(t-1),x(t)]+ba),

③更新细胞状态

c(t)=f(t)*c(t-1)+i(t)*a(t)

④更新输出门的输出

⑤更新当前序列索引预测输出

y(t)=σ(wyh(t)+c)

(2)反向传播算法:为了反向传播误差,通过隐藏状态h(t)的梯度δ(t)逐步向前传播。lstm的反向传播,有两个隐藏状态h(t)和c(t)。定义两个δ,即:

为了便于推导,将损失函数分成两块,一块是时刻t位置的损失l(t),另一块是时刻t之后损失l(t+1),即:

而在最后的序列索引位置τ,其分别为:

接着由反向推导的梯度由本层t时刻的输出梯度误差和大于t时刻的误差两部分决定,即:

lstm反向传播的关键在于的计算。由于h(t)=o(t)*tanh(c(t))在第一项o(t)中包含一个h的递推关系,使得第二项tanh(c(t))变得更复杂,tanh函数变量可以表示成:

c(t)=c(t-1)*f(t)+i(t)*a(t)

的反向梯度误差由两部分组成,即前一层的梯度误差和本层的从h(t)传回来的梯度误差。

已知即能得出wf的梯度计算过程,其它参数同上。

4、网络测试(调参和优化)。将经过预处理的训练集数据输入到已构建的lstm深度学习模型,不断优化参数,逐步提高预测精度,为了防止过拟合,需要进行正则化。最终得出模型,输出的是未来某一时刻的土壤墒情预测结果,预测的平均相对误差<0.25%,预测结果如图5所示,预测结果较好。

本发明所采用的方法极大程度上利用、整合了历史数据之间的关系,充分考虑到数据的时序性特点,构建起合理的时间序列模型,对提高对土壤墒情的预测能力,增强模型的泛化能力具有良好的应用价值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1