深度学习模型预测因素解释方法及其在土壤含水量预测中的应用

文档序号:28265060发布日期:2021-12-31 18:08阅读:257来源:国知局
深度学习模型预测因素解释方法及其在土壤含水量预测中的应用

1.本发明属于人工智能技术领域,具体涉及一种深度学习模型预测因素解释方法及其在土壤含水量预测中的应用。


背景技术:

2.深度学习(deep learning)是机器学习(machine learning)领域中一个新的研究方向,其通过学习样本数据的内在规律和表示层次,获得的信息对数据进行内部解释,从而让计算机能够像人类一样具有学习、分析与识别等能力。其中,以多层感知机(mlp)、卷积神经网络(cnn)模型最为经典。2010年前后,计算机硬件与计算性能,乃至大数据与互联网+等技术的日益成熟,使得深度学习发展一日千里。目前深度学习模型与框架已经扩展到图像处理、自然语言处理等多个领域,取得了优异的结果。
3.深度学习模型大多数具有模型复杂度高、参数多、透明性低的不足,其分析与决策过程的原理如同“黑箱”难以被获得。当下很多应用领域在得到优异分析结果的同时,希望获取模型内在的变化机制。而深度学习模型是通过输入变量直接映射输出结果,这种操作方式无法满足不同领域对内在分析的需求。


技术实现要素:

4.本发明的目的在于克服现有技术的不足,提供一种深度学习模型预测因素解释方法及其在土壤含水量预测中的应用。
5.本发明是通过以下技术方案实现的:
6.一种深度学习模型预测因素解释方法,包括以下步骤:
7.步骤1:对不同预测因素以及目标结果的时间序列数据进行标准化处理;
8.步骤2:基于步骤1中标准化处理后的预测因素以及目标结果数据训练得到深度学习模型,用于预测输出结果的动态变化;
9.步骤3:采用shapley值方法,计算不同预测因素对于上述构建的深度学习模型的输出结果的贡献度;
10.步骤4:根据步骤三计算出来的各预测因素的贡献度大小,确定深度学习模型中重要的预测因素,去除不重要的影响因素,对不同预测因素数据进行精简。
11.在上述技术方案中,步骤3中,各预测因素的贡献度采用shapley值方法进行分析,shapley值是根据预测因素集合s中每个玩家的值函数val定义的,每个预测因素的shapley值是其对输出结果的贡献,对所有可能的预测因素组合进行加权求和:
[0012][0013]
其中,s是应用于所述深度学习模型中的预测因素集合,x是要解释的当前实例的预测因素组成的向量,p是lstm模型中的预测因素数量,val
x
(s)是对预测因素集合s中的各
预测因素值的预测结果,这些因素从预测因素集合s中未包含的因素边缘化得到:
[0014][0015]
对预测因素集合s中未包含的每个因素执行多重集成,是集合x中所有预测因素组成的向量的平均预测值;
[0016]
为了计算准确的shapley值,引入蒙特卡洛近似抽样方法,根据需要计算的因素,选择感兴趣的实例1:x0=(x
(1)


,x
(j)


,x
(p)
);然后依据不同预测因素的数据矩阵,随机选择实例2:z0=(z
(1)


,z
(j)


,z
(p)
);根据实例1和实例2在不同位置的预测因素数值,构建两个新的实例:x
+j
=(x
(1)


,x
(j

1)
,x
(j)
,z
(j+1)


,z
(p)
)和x

j
=(x
(1)


,x
(j

1)
,z
(j)
,z
(j+1)
),

,z
(p)
);根据两个新实例,计算它们在深度学习模型f中的差异平均值,作为当前预测因素的shapley值,公式如下所示:
[0017][0018]
式中,是当前实例x在预测因素组成向量上的预测数值,随机个数的预测因素被随机选择的实例z在对应因素位置上的数值替换,j本身的因素值除外。和之间的差异很小,并且也同样选择于实例z。
[0019]
在上述技术方案中,步骤4中,将不同预测因素按照其shapley值的贡献度大小,由大至小顺序排列,保留排名前n位的预测因素数据,然后对保留的预测因素数据进行标准化处理,输入深度学习模型中进行训练,得到新的深度学习模型。
[0020]
在上述技术方案中,深度学习模型采用lstm模型。
[0021]
上述深度学习模型预测因素解释方法应用于土壤含水量预测,包括以下步骤:
[0022]
步骤1:将和土壤含水量相关的天气因素作为预测因素,对和土壤含水量相关的天气因素的预测因素以及土壤含水量的目标结果的时间序列数据进行处理;
[0023]
步骤2:基于步骤1中标准化处理后的预测因素以及目标结果数据训练得到深度学习模型,用于预测输出结果的动态变化;
[0024]
步骤3:采用shapley值方法,计算不同预测因素对于上述构建的深度学习模型的土壤含水量输出结果的贡献度;
[0025]
步骤4:根据步骤三计算出来的各预测因素的贡献度大小,确定深度学习模型中重要的预测因素,去除不重要的影响因素,对不同预测因素数据进行精简。
[0026]
在上述技术方案中,和土壤含水量相关的天气因素包括:最大温度、最小温度、平均温度、最大相对湿度、最小相对湿度、蒸汽压差、太阳总辐射、2米的平均风速、长波辐射、短波辐射、实际蒸气压、饱和蒸气压、最大温度饱和水气压、最小温度饱和水气压、蒸气压曲线的斜率、降雨量和蒸发量。
[0027]
在上述技术方案中,预测因素以及土壤水含量数据分为训练数据、验证数据以及预测数据三部分,比例为7:1:2;训练数据和验证数据用于训练得到满足一定准确度的lstm深度学习模型,预测数据用于输入到得到的lstm深度学习模型中预测土壤含水量的动态变化。
[0028]
本发明的优点和有益效果为:
[0029]
本发明能够根据不同预测因素,通过深度学习lstm时间序列模型,实现对结果变量动态变化的准确分析与预测;同时,利用不同预测因素的shapley值,在深度学习模型基础上,实现不同情形下的预测因素重要性解释,从而打破传统深度学习模型黑箱处理的方式,使研究者了解模型的内部机制,从而推动相关领域发展。另外,该模型在土壤水含量中的应用,使得研究人员清楚不同情形下的土壤水含量与预测因素的变化机制,以实现该领域科学有效的管理。
附图说明
[0030]
图1是深度学习模型预测因素解释方法的整体流程图。
[0031]
图2是将深度学习模型预测因素解释方法用于土壤含水量预测实例的整体流程图。
[0032]
图3.1是草本植被区域在浅层区域处的土壤含水量训练与预测结果。
[0033]
图3.2是草本植被区域在深层区域处的土壤含水量训练与预测结果。
[0034]
图4.1是草本植被在浅层区域处土壤含水量预测因素重要性的分析结果。
[0035]
图4.2是草本植被在浅层区域处不同预测因素的数值点对土壤含水量影响程度的分布结果。
[0036]
图5.1是利用排名前4的预测因素,预测的土壤含水量在浅层区域处的动态变化。
[0037]
图5.2是利用排名前4的预测因素,预测的土壤含水量在深层区域处的动态变化。
[0038]
对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据以上附图获得其他的相关附图。
具体实施方式
[0039]
为了使本技术领域的人员更好地理解本发明方案,下面结合具体实施例进一步说明本发明的技术方案。
[0040]
实施例一
[0041]
一种深度学习模型预测因素解释方法,包括以下步骤:
[0042]
步骤1:对不同预测因素以及目标结果的时间序列数据进行标准化处理。
[0043]
不同因素以及目标结果数据的单位不尽相同,直接将其放入深度学习模型中进行学习与训练,极易由于数值差距过大,造成模型的不精准。因此,所有因素以及结果数据首先进行了标准化处理,随后将变换后的数据输入模型,保证不同因素对模型贡献的公平性。
[0044]
假设原始预测因素的时间序列数据为p,处理后的数据序列为q,则有:q=[p

mean(p)]/std(p)。其中,mean(p)和std(p)分别为时间序列数据p的均值和标准差。
[0045]
步骤2:基于步骤1中标准化处理后的预测因素以及目标结果数据训练得到深度学习模型,用于预测输出结果的动态变化。
[0046]
本实施例中,深度学习模型采用了三层lstm模型(长短期记忆神经网络模型),每层神经元128个,优化函数选择为adam,共进行100步的迭代。
[0047]
长短期记忆神经网络模型lstm的记忆单元主要拥有三个门,分别是遗忘门、输入门和输出门,可以很好解决梯度爆炸和梯度消失问题,通过选择记忆当前信息或遗忘过去记忆信息,增强网络的长期记忆能力。
[0048]
1.遗忘门:lstm中的第一步是决定我们会从细胞状态中丢弃什么信息,这个决定由遗忘门完成。遗忘门会读取前一时刻的输出h
t
‑1和当前输入x
t
,输出一个0到1之间的数值f
t
作为前一时刻状态c
t
‑1保留的权重,f
t
=σ(w
f
·
[h
t
‑1,x
t
]+b
f
),其中,σ表示sigmoid激活函数(因为sigmoid的输出是在0到1之间,所以它能衡量到底有多少的数据要从从细胞状态忘记,1就代表让所有的信息记住,0就代表全部忘记),w
f
和b
f
分别为遗忘门的权值与偏置。
[0049]
2.输入门:输入门是决定让多少新的信息加入到细胞状态中。实现这个需要包括两个步骤:
[0050]
第一步:通过sigmoid层i
t
决定哪些信息需要更新;
[0051]
第二步:通过tanh层生成一个信息向量,也就是被选的用来更新的内容
[0052]
i
t
=σ(w
i
·
[h
t
‑1,x
t
]+b
i
)
[0053][0054]
其中,w
i
和b
i
分别为输入门的权值与偏置,w
c
和b
c
分别为当前细胞状态的权值与偏置。
[0055]
然后,更新细胞状态,即将前一时刻的状态c
t
‑1乘以f
t
(也就是遗忘门),进而计算得出来多少以前的数据要留下来,然后加上新的多少的数据要记住,即
[0056]
3.输出门:该部分决定了当前细胞的最终输出状态,实现这个需要包括两个步骤:
[0057]
第一步:首先用sigmoid层来决定有多少的信息我们将输出,即输出门会读取前一时刻的输出h
t
‑1和当前输入x
t
,利用sigmoid层输出一个0到1之间的数值o
t
作为当前状态c
t
保留的权重。
[0058]
第二步:然后把细胞当前状态c
t
通过tanh层进行处理得到一个在

1到1之间的值(目的是将值压缩到

1到1之间)并将该值和sigmoid层的输出o
t
相乘,最终得到细胞的最终输出h
t

[0059]
o
t
=σ(w
o
·
[h
t
‑1,x
t
]+b
o
)
[0060]
h
t
=o
t
*tanh(c
t
)
[0061]
其中,w
o
和b
o
分别为输出门的权值与偏置。由此,根据上述lstm模型,即可通过不同预测因素数据对输出结果进行分析预测。
[0062]
步骤3:采用shapley值方法,计算不同预测因素对于上述构建的lstm模型的输出结果的贡献度。
[0063]
3.1shapley值的定义
[0064]
各预测因素的贡献度采用shapley值方法进行分析,shapley值是根据预测因素集合s中每个玩家的值函数val定义的,每个预测因素的shapley值是其对输出结果的贡献。对所有可能的预测因素组合进行加权求和:
[0065][0066]
其中,s是应用于上述lstm模型中的预测因素集合,x是要解释的当前实例的预测因素组成的向量,p是lstm模型中的预测因素数量,ual
x
(s)是对预测因素集合s中的各预测因素值的预测结果,这些因素从预测因素集合s中未包含的因素边缘化得到:
[0067][0068]
对预测因素集合s中未包含的每个因素执行多重集成,是集合x中所有预测因素组成的向量的平均预测值。
[0069]
3.2 shapley值的近似采样计算方法
[0070]
为了计算准确的shapley值,必须估计所有可能的预测因素组合,含有和不含有第j个因素。可能的组合数量呈指数增长,当添加更多因素时,此问题的准确解决方案将成为一个问题。因此,本发明中引入了蒙特卡洛近似抽样方法,根据需要计算的因素,选择感兴趣的实例1:x0=(x
(1)


,x
(j)


,x
(p)
);然后依据不同预测因素的数据矩阵,随机选择实例2:z0=(z
(1)


,z
(j)


,z
(p)
);根据实例1和实例2在不同位置的预测因素数值,构建两个新的实例:x
+j
=(x
(1)


,x
(j

1)
,x
(j)
,z
(j+1)


,z
(p)
)和x

j
=(x
(1)


,x
(j

1)
,z
(j)
,z
(j+1)


,z
(p)
);根据两个新实例,计算它们在深度学习模型f中的差异平均值,作为当前预测因素的shapley值。公式如下所示:
[0071][0072]
式中,是当前实例x在预测因素组成向量上的预测数值,随机个数的预测因素被随机选择的实例z在对应因素位置上的数值替换,j本身的因素值除外。和之间的差异很小,并且也同样选择于实例z。
[0073]
步骤4:分析并获得关键影响因素,精简模型提升预测精度。
[0074]
根据步骤三计算出来的各预测因素的shapley值(即贡献度)大小,确定lstm模型中重要的预测因素,去除不重要的影响因素,对不同预测因素数据进行精简。具体步骤为:将不同预测因素按照其shapley值的贡献度大小,由大至小顺序排列,保留排名前n位的预测因素数据(n的大小由用户进行设定),然后对保留的预测因素数据进行标准化处理,输入lstm模型中,对目标结果进行学习、训练与预测。在精简数据、改进模型训练效率的基础上,维持乃至提升目标结果的预测精度。
[0075]
实施例二
[0076]
在实施例一的基础上,本实施例将上述深度学习模型预测因素解释方法应用于土壤含水量预测,包括以下步骤:
[0077]
步骤1:将和土壤含水量相关的天气因素作为预测因素,对和土壤含水量相关的天气因素的预测因素以及土壤含水量的目标结果的时间序列数据进行处理。
[0078]
不同预测因素以及目标结果数据的单位不尽相同,直接将其放入深度学习模型中进行学习与训练,极易由于数值差距过大,造成模型的不精准。为保证不同预测因素对模型贡献的公平性,对所有预测因素数据都进行标准化处理,随后将变换后的数据输入模型。
[0079]
假设原始预测因素的时间序列数据为p,处理后的数据序列为q,则有:q=[p

mean(p)]/std(p)。其中,mean(p)和std(p)分别为时间序列数据p的均值和标准差。
[0080]
本实施中,和土壤含水量相关的天气因素(即预测因素)包括:最大温度(tmax)、最小温度(tmin)、平均温度(tavg)、最大相对湿度(hmax)、最小相对湿度(hmin)、蒸汽压差(vdef)、太阳总辐射(atot)、2米的平均风速(2avg)、长波辐射(rnl)、短波辐射(rns)、实际
蒸气压(ea)、饱和蒸气压(es)、最大温度饱和水气压(e0max)、最小温度饱和水气压(e0min)、蒸气压曲线的斜率(delta)、降雨(rain)和蒸发(et)等17个预测因素。
[0081]
步骤2:应用上述标准化处理后的预测因素以及土壤含水量的目标结果数据训练得到lstm深度学习模型,用于预测土壤含水量的动态变化。
[0082]
本实例中,利用仪器分别监测了不同植被下深度为5cm,20cm,45cm和80cm处的土壤含水量,将lstm深度学习模型应用于不同深度的土壤含水量分析与预测中,全部预测因素以及土壤水含量数据分为训练数据、验证数据以及预测数据三部分,比例为7∶1∶2。训练数据和验证数据用于训练得到满足一定准确度的lstm深度学习模型,预测数据用于输入到得到的lstm深度学习模型中预测土壤含水量的动态变化。
[0083]
本实例中,深度学习模型采用了三层lstm网络结构,每层神经元128个,优化函数选择为adam,共进行100步的迭代。
[0084]
长短期记忆神经网络模型lstm的记忆单元主要拥有三个门,分别是遗忘门、输入门和输出门,可以很好解决梯度爆炸和梯度消失问题,通过选择记忆当前信息或遗忘过去记忆信息,增强网络的长期记忆能力。
[0085]
1.遗忘门:lstm中的第一步是决定我们会从细胞状态中丢弃什么信息,这个决定由遗忘门完成。遗忘门会读取前一时刻的输出h
t
‑1和当前输入的预测因素x
t
,输出一个0到1之间的数值f
t
作为前一时刻状态c
t
‑1保留的权重,f
t
=σ(w
f
·
[h
t
‑1,x
t
]+b
f
),其中,σ表示sigmoid激活函数(因为sigmoid的输出是在0到1之间,所以它能衡量到底有多少的数据要从从细胞状态忘记,1就代表让所有的信息记住,0就代表全部忘记),w
f
和b
f
分别为遗忘门的权值与偏置。
[0086]
2.输入门:输入门是决定让多少新的信息加入到细胞状态中。实现这个需要包括两个步骤:
[0087]
第一步:通过sigmoid层i
t
决定哪些信息需要更新;
[0088]
第二步:通过tanh层生成一个信息向量,也就是被选的用来更新的内容
[0089]
i
t
=σ(w
i
·
[h
t
‑1,x
t
]+b
i
)
[0090][0091]
其中,w
i
和b
i
分别为输入门的权值与偏置,w
c
和b
c
分别为当前细胞状态的权值与偏置。
[0092]
然后,更新细胞状态,即将前一时刻的状态c
t
‑1乘以f
t
(也就是遗忘门),进而计算得出来多少以前的数据要留下来,然后加上新的多少的数据要记住,即
[0093]
3.输出门:该部分决定了当前细胞的最终输出状态,实现这个需要包括两个步骤:
[0094]
第一步:首先用sigmoid层来决定有多少的信息我们将输出,即输出门会读取前一时刻的输出h
t
‑1和当前输入的预测因素x
t
,利用sigmoid层输出一个0到1之间的数值o
t
作为当前状态c
t
保留的权重。
[0095]
第二步:然后把细胞当前状态c
t
通过tanh层进行处理得到一个在

1到1之间的值(目的是将值压缩到

1到1之间)并将该值和sigmoid层的输出o
t
相乘,最终得到细胞的最终输出h
t

[0096]
o
t
=σ(w
o
·
[h
t
‑1,x
t
]+b
o
)
[0097]
h
t
=o
t
*tanh(c
t
)
[0098]
其中,w
o
和b
o
分别为输出门的权值与偏置。由此,根据上述lstm模型,即可通过不同天气因素以及土壤含水量数据对目标土壤含水量进行分析预测。
[0099]
图3.1和3.2所示为草本植被区域在浅层和深层区域处的土壤含水量预测结果,其中实线为观测数据,虚线为训练得到的结果,点划线为预测得到的结果。由图可见,lstm模型能够比较准确地拟合土壤含水量的动态变化,均方根误差在0.025左右。
[0100]
步骤3:采用shapley值方法,计算上述不同预测因素对于构建的lstm模型中目标土壤含水量预测结果的贡献程度。
[0101]
3.1模型预测因素shapley值的定义
[0102]
不预测因素的贡献度采用shapley值方法进行分析,shapley值是根据预测因素集合s中每个玩家的值函数val定义的,每个预测因素的shapley值是其对目标土壤含水量的贡献。对所有可能的预测因素与土壤含水量预测因素组合进行加权求和:
[0103][0104]
其中,s是应用于上述lstm模型中的预测因素集合,x是要解释的当前实例的预测因素组成的向量,p是lstm模型中的预测因素数量,val
x
(s)是对预测因素集合s中的各预测因素值的预测结果,这些因素从预测因素集合s中未包含的因素边缘化得到:
[0105][0106]
对预测因素集合s中未包含的每个因素执行多重集成,是集合x中所有预测因素组成的向量的平均预测值。
[0107]
3.2 shapley值的近似采样计算方法
[0108]
为了计算准确的shapley值,必须估计所有可能的预测因素组合,含有和不含有第j个因素。可能的组合数量呈指数增长,当添加更多因素时,此问题的准确解决方案将成为一个问题。因此,本发明中引入了蒙特卡洛近似抽样方法,根据需要计算的预测因素,选择感兴趣的实例1:x0=(x
(1)


,x
(j)


,x
(p)
);然后依据不同预测因素的数据矩阵,随机选择实例2:z0=(z
(1)


,z
(j)


,z
(p)
);根据实例1和实例2在不同位置的预测因素数值,构建两个新的实例:x
+j
=(x
(1)


,x
(j

1)
,x
(j)
,z
(j+1)


,z
(p)
)和x

j
=(x
(1)


,x
(j

1)
,z
(j)
,z
(j+1)


,z
(p)
);根据两个新实例,计算它们在深度学习模型f中的差异平均值,作为当前预测因素的shapley值。公式如下所示:
[0109][0110]
式中,是当前实例x在预测因素组成向量上的预测数值,随机个数的预测因素被随机选择的实例z在对应因素位置上的数值替换,j本身的因素值除外。和之间的差异很小,并且也同样选择于实例z。
[0111]
本实例基于shapley值的定义与近似计算方法,研究了各种预测因素在不同植被以及不同深度下对目标土壤含水量的贡献程度,用以分析不同情形下的目标土壤含水量关键因素,从而解决深度学习从输入数据直接到结果输出的黑箱操作,提高了整个深度学习
模型的可解释性。图4.1和图4.2所示分别为草本植被在浅层区域处土壤含水量的重要性以及不同预测因素的数值点对土壤含水量影响程度的分布结果。。由图可见,降雨(rain)、最小相对湿度(hmin)、最大温度饱和水气压(eomax)以及最大相对湿度(hmax)是浅层区域土壤含水量最为重要的影响因素,其对目标土壤含水量贡献度更高。
[0112]
步骤4:根据步骤三计算出来的各预测因素的shapley值(即贡献度)大小,精简预测因素数据,提升深度学习lstm模型对目标土壤含水量的预测精度。
[0113]
根据步骤三计算出来的各预测因素的shapley值(即贡献度)大小,确定lstm模型中重要的预测因素,去除不重要的影响因素,对不同预测因素数据进行精简。在改善深度学习lstm模型训练效率的基础上,进一步提升土壤含水量的预测精度。具体步骤为:将不同预测因素按照其shapley值的贡献度大小,由大至小顺序排列,保留排名前n位的预测因素数据(n的大小由用户进行设定),然后对保留的预测因素数据进行标准化处理,输入lstm模型中,对目标结果进行学习、训练与预测。在精简各天气因素以及土壤含水量数据、改进模型训练效率的基础上,维持乃至提升目标土壤含水量的预测精度。
[0114]
其中,降雨(rain)、最小相对湿度(hmin)、最大温度饱和水气压(e0max)以及最大相对湿度(hmax)是浅层区域土壤含水量排名前4的影响因素;降雨(rain)、深度5cm的土壤含水量、深度20cm的土壤含水量以及深度45cm的土壤含水量是深层区域(80cm)土壤含水量排名前4的影响因素。图5.1和5.2所示为分别利用排名前4的预测因素,预测的土壤含水量在浅层和深层区域处的动态变化。由图可见,重要因素构建的模型能够准确地模拟土壤含水量的变化,均方根误差控制在0.028左右,基本等同于全部预测因素得到的预测效果。
[0115]
以上对本发明做了示例性的描述,应该说明的是,在不脱离本发明的核心的情况下,任何简单的变形、修改或者其他本领域技术人员能够不花费创造性劳动的等同替换均落入本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1