5.2.1 HLSTM编码器
循环神经网络(Recurrent Neural Network,RNN)是一种定向连接成环的递归人工神经网络,其内部状态可分析动态时间序列,在保持内部状态的同时,将前一个样本的输出作为下一个样本输入的一部分传输到下一层,传输过程如图5.1所示。给定时间序列[x0,x1,x2,…,xt],RNN对应输出一个序列[h0,h1,h2,…,ht]。RNN每次的激活函数At的数学表达式为
式中 Waa,Wax——RNN中前一个输出和输入值的权重;
ba——输入值偏差;
φ——RNN的激活函数[1],如S型函数、正切函数和线性整流函数。
图5.1 循环神经网络架构示意图
输出项ht可计算为
式中 Wha——权重系数;
bh——输出偏差;
ϕ——输出激活函数,与φ可以不同。
RNN架构在输入和输出较易对齐,二者间映射变化较多(如多对多、一对多和多对一)。但RNN存在梯度消失和爆炸的问题,随着神经网络输入的时间序列增加,反向传播的梯度累积到爆炸或者消失,限制了神经网络捕捉长期的记忆。而基于内存的长短期记忆网络(LSTM)使用3个专门设计的内部逻辑门有效地解决了这个问题。LSTM进一步发展了RNN的记忆机制,满足了在未知持续时间滞后的情况下对时间轨迹进行分类、处理和预测。与RNN相比,LSTM构造优势在于3个门:输入门、遗忘门和输出门。其结构示意图如图5.2所示。
图5.2 长短期记忆模型示意图
注:σ和Φ分别代表S型函数和双曲正切函数;⊗为各元素间的相乘运算
输入门(Input Gate)负责评估输入的数据流中的哪个值及具体值的大小应被用于记忆单元的调整与修改,即是将0~1间的输入数据和上一层隐藏数据通过S型函数进行合并和归一化,计算式如下:
式中 it——时间节点t上的输入;
ht-1——前一层隐层输出;
Wi,Vi,bi——网络输入数据的学习权重值及输入偏差;
σ——S型激活函数。然后使用正切激活函数对从-1到1的输入门的值进行加权。
式中 Wp,Vp,bp——与式(5.4)不同的网络输入数据学习权重值及输入偏差;
Φ——正切激活函数[2]。
LSTM的输入门的最终结果用it和pt点乘结果表示,即
根据制订的算法判断信息是否可用,符合规则的信息被利用,否则通过遗忘门(Forget Gate)被遗忘。遗忘门通过S型激活函数2决定被遗忘的信息及数量,可计算为
当前t时间点的内存状态是当前输入流与过滤后的前一个内存状态的聚合,即
式中 st-1——最后一个时间点t-1的存储状态。
输出门(Output Gate)结合标准化后的数据输入和当前时间节点t的内存状态,通过元素式多重运算操作,可得到时间节点t的隐层表达式为
式中 ht——时间节点t的隐层输出结果。
每一个时间节点输出ot与该时间节点对应的田间试验实测的土壤含水率及土壤含盐量利用Huber Loss函数进行损失计算,即
利用输入(灌水量、生育期时长、土层深度及气候条件指标)与输出(土壤含水率、土壤含盐量)之间的更新与映射,提取最后一个时间节点的隐层表示h,作为学到整个时间序列上各项指标的嵌入(embedding),并作为BMLP解码器的输入项。