面向预测的长短时神经网络记忆增强机制
2021-11-12吴明慧侯凌燕
吴明慧,侯凌燕,王 超
1.北京信息科技大学 计算机开放系统实验室,北京100101
2.北京材料基因工程高精尖中心,北京100101
时间序列预测方法在目标追踪、天气预报、市场分析和故障诊断领域中有广泛的应用。时间序列预测的目标是寻找未来时刻序列的取值与其历史观测值及变量之间的关系[1-2]。深度学习(deep learning)通过建立深层神经网络实现自动特征提取,构建数据在不同层级、维度下的关联,提高自变量对因变量的解释程度[2-5]。
目前,用于时间序列预测的深度学习模型主要有循环神经网络(Recurrent Neural Network,RNN)和长短时神经网络(Long Short-Term Memory neural network,LSTM)[6]。基于时间(状态)的循环机制,RNN能将时间序列的上下文信息考虑在内,但在训练过程中存在梯度消失问题(即梯度向量的分量在长时序列上呈指数降低)[7-15]。Schmidhuber等人提出长短时神经网络,在RNN的基础上设立细胞状态保存历史信息、设立输入门更新细胞状态、设立遗忘门清除无用历史信息,从而分离了记忆模块与数据输入模块,缓解了梯度消失问题[3]。进而,涌现出诸多基于LSTM模型在预测领域的应用案例,例如Yuan等[15]对工业设备寿命的预测。然而,后续的研究发现梯度消失问题在LSTM中仍然存在,尤其在工业环境中,时序数据往往由高采样率的传感器收集得到,随采样时间的增加,序列长度不断增长,在处理距离当前时刻较远的序列信息时这个问题更加明显[16]。
为解决此问题,Chorowski等人[17]提出在LSTM之后增加注意力机制,通过为隐层节点分配不同权重,使重要特征在长序数据的学习过程中被保留。Wang[18]将CNN捕捉局部特征的能力与LSTM提取序列数据时序特征的能力相结合,构建多特征提取模型。Li[19]在此基础上引入注意力机制选取关键特征进行学习,进一步降低预测误差,然而序列长度受限的关键在于LSTM,通过多特征叠加的方式并不能解决此问题。Shi等人[20]提出ConvLSTM,将卷积整合到LSTM结构中获得时空特征的提取能力,使LSTM应用扩展到图像领域。Conv-LSTM在短序列输入时表现突出,但面对高维长序数据输入的特征提取能力不足。
基于单链结构的LSTM仅能学习正向时序关系,BiLSTM的逆序双链结构可以对数据二次训练,这一特性使其可以学习序列正向和逆向的时序关系。Siami[21]验证了在预测准确度上BiLSTM优于LSTM。随后,Ding[22]将CNN与BiLSTM组合,结果表明在预测误差方面优于LSTM、BiLSTM和CNN-LSTM,是目前预测精度最高的方案。Wang[23]和Jiang[24]等人分别尝试在CNNBiLSTM组合上附加注意力机制用于特征选取,但预测效果并不稳定。
综上,在LSTM对历史序列的记忆能力随序列长度增加而下降的问题中,关注的重点在于引入其他模型或机制来提升特征提取能力[25-27],均未从LSTM链式结构信息传导机理出发提升LSTM的记忆能力。链式结构的长短时神经网络在梯度反向传导时,历史时刻梯度的计算基于后续时刻的梯度值。这一机制使得在面对高采样率、分布不均衡的数据时,模型会弱化小比例数据的记忆能力。最终导致算法能够接受的序列长度有限,输入序列达到一定长度时预测精度会明显降低。在此方面,本文提出提出在LSTM节点中构建强化门实现对遗忘信息的提取,并与记忆信息按比例选取、融合、输入记忆单元,增加学习过程中的梯度传导能力,使网络对相对较远的信息保持敏感以提升记忆能力。
1 相关背景
RNN是一种隐层具有自连接关系的神经网络,每个节点通过当前时刻的状态信息计算输出,而当前状态由上一时刻的状态和当前时刻的输入共同决定,从而实现时序数据的记忆。LSTM延续了RNN的链式传导结构,并在RNN的基础上增加了四种交互层(如图1所示),input(输入门)、forget(遗忘门)、output(输出门)和cell(细胞状态),以解决梯度消失问题。每个LSTM节点包含三个输入,即上一时刻的节点状态、上一时刻的节点输出和当前时刻的输入。LSTM特有的门结构包含一个非线性激活函数,决定了在节点之间传递的信息量。LSTM通过门结构实现对历史信息传递的控制[29]。
图1 面向预测问题的LSTM结构Fig.1 LSTM structure for prediction problems
(1)遗忘门通过自循环权重控制前一个过程中状态信息的保存。同时通过激活函数将遗忘门的值限制在0至1之间,控制细胞状态以防止记忆饱和[15]。计算公式为:
其中,Wf为循环权重,Uf为输入权重,bf为偏置,ht-1和xt分别为隐含层的输出和输入。
(2)输入门由sigmoid激活函数实现,输入单元it按需提取输入信息C͂t以控制序列的输入。计算公式为:
其中,Ui和Uc为输入权重,Wi和Wc为循环权重,bi和bc为偏置。
(3)细胞状态更新。细胞状态Ct用来记录当前时刻LSTM神经网络的状态。由Ct-1和遗忘门ft的乘积,和输入门it和C͂t的乘积两部分组成。计算公式为:
其中,∘为哈达玛积[28]。
(4)输出门将输入的数据经过隐藏层计算再通过激活函数压缩到0至1进行输出。计算公式为:
其中,Wo和Uo分别为循环权重和输入权重,bo为偏置。
(5)隐状态通过输出激活函数实现预测。设输入序列X=(x0,x1,…,xt),预 测 结 果 用y͂=( )y͂0,y͂1,…,y͂t表示,计算公式为:
其中,wy为权重,by为偏置,φ代表LSTM的输出激活函数。当输入序列(x0,x1,…,xt),LSTM模型会生成相应的隐状态(h0,h1,…,ht),隐状态经过数据激活函数φ转换为预测值。
2 面向LSTM的记忆增强机制
在数据持续输入的过程中,会出现细胞状态饱和现象(细胞状态持续增长导致模型停止记忆新信息),因此Schmidhuber引入遗忘门限制记忆传递的程度。但在序列长度超过一定限度时,遗忘门会导致历史信息丢失。针对长序列数据的记忆限制问题,本文提出在LSTM节点中构建强化门实现对遗忘信息Ct-1(f)的提取,并与记忆信息Ct-1(r)按比例选取、融合、输入记忆单元,增加学习过程中的梯度传导能力,使网络对相对较远的信息保持敏感以提升记忆能力。
遗忘门控制上一时刻细胞状态的传递,当输入序列超出模型接受的限度时,遗忘门会过度发挥作用将重要信息(历史信息)过滤。遗忘门的这一性质导致LSTM面对长序数据会遗忘历史信息。强化门机制是在遗忘门的基础上附加了记忆回收模块,可在输入长序数据时回收部分遗忘的历史信息。记忆强化结构如图2所示。
图2 记忆增强LSTM模型结构图Fig.2 Structure of memory enhanced LSTM model
将遗忘信息Ct-1(f)的选取比例设定为W1,记忆信息Ct-1(r)的选取比例设为W2,引入强化门后记忆单元为:
其中,W3=W2-W1,通过对遗忘信息加权,可使LSTM对遗忘信息保持一定程度的敏感性。将公式(4)展开得:
公式(9)表明,将记忆状态按照时间全部展开后,第t个时刻的单元记忆Ct为第i步的输入记忆C͂i经历t-i+1次遗忘求和得到。通过加强每一时刻的输入记忆C͂t,可实现单元记忆Ct的增强。将公式(8)展开如下:其中,ft由sigmoid函数实现,其输出结果在0~1。当0 另一方面,LSTM长期记忆的序列长度与梯度值正向相关,递归梯度计算是导致梯度消失的原因。LSTM结构设计为通过Ct进行长期记忆,对进行展开: 其中,function表示复合函数。在长序数据(尤其是不均衡数据集)输入的条件下,通常取值为0~1,function函数对其取值影响小于ft。对改进模型梯度展开得: 细胞状态Ct通常在时间序列的学习过程中倾向于线性增长,在持续输入的情况下,细胞状态可能会无限增长,从而导致输出门的饱和。输出门饱和将使ht的导数消失,无法获取输入误差,导致模型停止记忆,故遗忘门取值设置在0~1,以实现对单元记忆饱和度的控制[15]。因fnew_t输出结果在0~1,记忆增强模型不会由于增加记忆信息而导致单元记忆饱和。 实验选取预测拟合曲线对比改进模型(记忆增强)S_LSTM与原LSTM模型的预测能力。随后对比S_LSTM与多种LSTM模型的预测误差随输入序列长度的变化,以验证改进模型的预测精度。之后评测参数W1对改进模型S_LSTM预测误差与训练时间的影响。最后对比S_LSTM与原LSTM模型训练时间与测试时间随输入序列增加的变化趋势,分析新参数伴随的负面效果。 实验数据集取自某器件中的监控数据,单个传感器按照每20 ms一次的频率记录一次数值,将160个传感器在同时刻记录的数值集合记为一条数据。数据集包含某时刻起连续29 h采集的正常数据4 000 686条数据,在0.3 h内采集的故障数56 954条,数据集共有160个维度,每个维度表示相应的传感器监测值。为平衡正负样本,本实验将正常数据以20为间隔选取,将数据压缩至200 000条,故障数据过滤掉空值过多的项,总数据量共计245 463条。 在数据采集的过程中,数据集质量会受环境因素干扰,采集数据的不正当操作以及设备本身的问题会导致采集的数据中存在异常。在训练前先对数据进行预处理。 本文采用min-max归一化是对原始数据的线性变换,变换公式如式(13): 其中,Maxvalue为数据中的最大值,Minvalue为数据中的最小值,Maxvalue-Minvalue为极差,xi为在数据集中所取的数据,xi′为归一化后数据的大小。 将传感器编号18S记录的指标设为因变量18S,当18S数值大于170时机器异常,其余指标作为自变量,使用日前向链嵌套交叉验证方法,基于Keras框架搭建LSTM模型实现对故障特征参数18S的预测。训练集中因变量18S的数值如图3所示,横坐标为数据量,纵坐标表示数值,以此数据分布模拟实际场景中一个训练周期。 图3 训练集因变量18S度量指标Fig.3 18S metric of training set dependent variable 实验选取平均绝对误差(Mean Absolute Error,MAE),均方根误差(Root Mean Square Error,RMSE)作为模型预测结果的评估标准。RMSE是用于测量观测值与实际值之间的偏差,对非常大或较小误差的测量高度敏感。MAE与RMSE的计算如下: 图4 展示了记忆增强模型(S_LSTM)与原模型的预测结果,横坐标表示数据量,纵坐标表示参数数值。直线线条为测试集因变量18S的值,虚线线条(记忆增强模型)和星状线条(原模型)为模型预测的因变量值。因变量在潜在故障时由93变为163,发生故障时由163增长超过170阈值。在正常时序区间,记忆增强模型的预测曲线比原LSTM模型的预测曲线更贴近于真实曲线。在故障时序区,记忆增强模型的预测误差为14.45,相对于原模型的预测误差(22.51)减少35.8%。 图4 预测结果对比Fig.4 Comparison of prediction results 图5 给出记忆增强模型(S_LSTM)与其他LSTM模型在预测过程中的均方根误差RMSE与平均绝对误差MAE随输入序列长度的变化趋势对比,对比模型包括LSTM、Attention LSTM、ConvLSTM、BiLSTM、CNNLSTM、CNN-BiLSTM及Attention CNN-LSTM。由图5(a)的RSME曲线可见,随输入序列长度逐渐增加,各模型的均方根误差均呈持续增长的趋势。其中,S_LSTM的RSME曲线整体位于原模型的下方,该现象印证了改进模型记忆能力高于原LSTM模型。而与其他模型的对比中,在0~60序列长度内,模型组合以增强特征提取能力的表现更明显,CNN-LSTM、BiLSTM、Attention CNN-LSTM与CNN-BiLSTM的预测误差均小于S_LSTM。但是当序列长度增至100时,仅CNN-BiLSTM的预测能力略优于改进模型。在100后,改进模型的误差曲线最低,这说明在序列长度超过60时,附加其他模型特征提取能力的影响已经逐渐弱于LSTM梯度传导的影响。改进模型面对长序输入的记忆能力高于其他LSTM模型。平均绝对误差MAE(图5(b))的变化趋势与均方根误差RMSE类似,但随序列长度增加,曲线斜率的变化更明显。图5(b)中,各模型的误差曲线斜率均呈现先降低后增加的趋势。这表明,当输入序列增加到一定程度(100)时,模型已达到记忆上限。而S_LSTM曲线斜率上升的拐点晚于其他模型,这表明S_LSTM的记忆增强机制发挥作用,添加强化门机制可使LSTM记忆上限高于其他方法。 图5 记忆增强模型与其他模型在预测误差上比较Fig.5 Comparison of prediction error between memory enhancement model and other models 表1 展示了S_LSTM在不同W1参数取值下与预测精度较高的LSTM相关模型(CNN-LSTM、BiLSTM、Attention CNN-LSTM及CNN-BiLSTM)对比,对比预测误差与总训练时间分析S_LSTM的性能。其中序列长度设置为200,学习率为0.01,L2正则化系数为0.01,以0.1为间隔在0至1区间取值。当W1取值为0.2及0.8时RMSE与MAE最小,分别为24.65与14.11,低于原LSTM(33.76与22.51)及其相关模型。表1中,W1取值从0.1至0.9运行时间无明显规律变化,但高于LSTM、CNN-LSTM、CNN-BiLSTM及Attention CNNLSTM。可见,记忆增强模型的预测结果在RMSE、MAE方面均优于其他LSTM相关模型,但训练时间相比LSTM、CNN-LSTM、CNN-BiLSTM及Attention CNNLSTM略微增长。 表1 参数W1对模型的影响Table 1 Effect of parameter W1 on model 图6 进一步表现了记忆加强模型(S_LSTM)与原模型(LSTM)训练时间(图6(a))与测试时间(图6(b))随输入序列的变化(学习率为0.01,L2正则化系数为0.01)。记忆加强模型与原模型在序列长度为1时训练时间接近,分别为14 s与11 s。随着序列长度的增长,两模型的训练时间与测试时间均逐渐上升。记忆增强模型的平均训练时间为599.81 s,较原模型(509.57 s)增长17.71%。记忆加强模型的训练时长与输入序列长度的增长基本呈线性关系,而原LSTM模型仅在序列长度低于130区间内表现为线性,之后则呈现急剧增加的趋势,表明模型的记忆能力与训练时间存在正向关系。当序列长度达到200时,记忆加强模型和原LSTM模型已基本持平。测试时间方面,引入强化门机制增加参数计算量,导致记忆增强模型的测试时间整体略高于原模型。 图6 记忆增强模型与原模型训练时间与测试时间Fig.6 Training time and test time of memory enhancement model and eriginal model 本文提出了一种面向预测的长短时神经网络记忆增强机制,通过对神经网络的节点结构修改,在遗忘门的基础上增设强化门,由原模型只关注历史信息的筛选(保留记忆部分),扩展至对遗忘信息提供传导通道并实现记忆调节,增加学习过程中的梯度传导能力从而增强了长短时神经网络对历史信息在传递过程中的提取能力。实验表明,改进模型S_LSTM对长序数据的预测精度高于其他LSTM模型。 本文提出的改进方法在LSTM节点内部实现,引入新参数提升记忆能力的方式增加了学习的参数量,融合其他模型会带来更大的训练成本。同时复杂的组合模型容易导致过拟合,需要加大正则系数。后期将从降低模型复杂度切入,可通过门控单元合并降低参数量,或引用卷积提取局部特征,以简化S_LSTM输入的特征量,降低运算复杂度。3 实验结果分析
3.1 数据集
3.2 数据预处理
3.3 模型搭建
3.4 评价指标
3.5 结果分析
4 结语