荆昱阳,张利强
(1.北京邮电大学,北京 100876;2.北京机械工业自动化研究所有限公司,北京 100120)
以大数据(Big Data)为基础的机器学习(Machine Learning)、人工智能(Artificial Intelligence)和深度学习(Deep Learning)是当前信息技术领域最重要的发展领域。随着计算能力的提升和软件技术的发展,2012年以后深度学习再次成为研究和应用领域的热点,在音视频数据处理、语音识别、高维高频传感器数据处理等领域得到了广泛的应用。
自2015年谷歌公司以开源形式发布深度学习框架TensorFlow以来,进一步简化了深度学习模型的开发和部署过程,推动了深度学习由理论研究向实践应用的发展。目前比较流行的深度学习框架主要有两个:一个是TensorFlow,另一个是Pytorch。Pytorch由Facebook于2018年5月开源发布。尽管Pytorch的发布晚于TensorFlow,但在短短的几年内已成为重要的深度学习开源框架,特别是在科研领域得到了大量的应用[1]。
在深度学习的应用领域中,时间序列数据(Time series data)是一类常见的数据,其主要特征是数据存在时间上的相关性。现实生活中,具有时间序列特征的数据非常多,常见的如股票交易数据、大气相关数据、企业的销售数据、人体的生理指标、传感器数据等。掌握时间序列的波动特征、了解数据变化规律并预测未来是时间序列分析的主要目的。在深度学习得到广泛应用之前,人们主要采用统计学方法进行时间序列分析,其中以自回归移动平均(Auto-regressive moving average)模型[2,3]和差分自回归移动平均(Auto-regressive Integrated Moving Average)模型[4,5]的应用最为广泛。近年来,随着数据采集、存储技术的发展,高频高维时间序列数据已变得越来越常见,例如间隔为秒级的股票交易数据、间隔为毫秒级的传感器数据等。由于统计方法在处理高频高维时间序列数据存在的局限性,采用深度学习方法处理时间序列数据正受到越来越多的关注。本文主要关注用于时间数列分析的深度学习方法——长短期记忆(Long short-term memory,LSTM)网络的基本原理,并介绍了基于Pytorch开源框架的实现和应用。
LSTM是一种特殊的循环神经网络(Recurrent neural network,RNN)。RNN具有循环网络结构,能够处理需要记忆(历史数据的影响)的时间序列数据,RNN采用如图1所示的结构。图1中表示输入层和隐含层连接权重;表示隐含层和输出层连接权重;和分别表示隐含层和输出层的偏置;表示t时刻的输入;h表示隐含层输出;表示t时刻的输出;表示第t-1时刻隐含层的输出。RNN为了处理时间序列数据,将隐含层节点之间互相连接,使得隐含层的输入不仅包含当前输入数据,还包含上一时刻隐含层的输出。通过这种方式,RNN实现了对历史信息的记忆。但是,当RNN处理长度比较大的时间序列时,存在梯度爆炸和梯度消失的问题,而且RNN难以保持较长时间的记忆[6]。
图1 RNN网络结构
LSTM网络是特殊的RNN网络,能够学习并记忆序列长期信息的递归模型,其组成结构如图2所示。LSTM神经元专门设计了记忆单元(memory cell)用于保存历史信息。历史信息通过输入门(Input gate)、遗忘门(Forget gate)和输出门(Output gate)的控制进行信息更新。其中sig和tanh为表示sigmoid和tanh激活函数,期作用分别是把输入转换为区间(0,1)和(-1,1)内的数,定义为:
图2 LSTM网络结构
遗忘门:通过一个逐点相乘的操作,实现选择性的信息通过,其数学表达式为:
输入门:决定单元状态中保存的信息哪些需要更新,通过一个sigmoid层和一个tanh层实现,其数学表达式为:
输出门:决定LSTM单元输出的内容,包括网络输出和网络状态,其数学表达式为:
LSTM改善了RNN网络存在的问题,在处理非线性模型方面体现出了很好的性能,并且适用于构造大型深度神经网络。
Pytorch的神经网络(nn)模块实现了LSTM方法,可以通过调用nn的LSTM方法构建LSTM网络,下面列给出了LSTM网络的python代码。
LSTM网络的定义:
以某加工过程中温度监控曲线为例。在一个正产周期内,温度经历升温、保持、降温三个阶段。由于生产过程存在多种因素的影响,测得的温度有波动。一个生产周期测得的数据经标准化处理后如图3所示。
图3 一个生产周期测得的温度数据
在这里,首先使用移动窗口方法将时间序列数据转换为LSTM网络的训练数据,将窗口宽度设为5。此时,表示用前5个观测数据预测第6个数据。使用上一节建立的LSTM模型,初始化参数为5,8和1,即输入数据的长度为5,隐含层节点数为8,输出数据的长度为1。经1000次训练,均方误差(Mean squared error,MSE)指标逐步减小,显示LSTM网络对数据有了较好的拟合,过程如图4所示,图5给出了数据的拟合结果。
图4 LSTM训练过程
图5 数据拟合结果
围绕某加工过程中温度监控曲线为例,针对一个生产周期测得的数据,考虑到数据的特征,采用曲线拟合加平滑的方法对观测数据进行拟合,并将结果与与LSTM拟合进行对比。图6给出了两种方法对数据的拟合结果,结果显示LSTM模型能够很好的拟合数据。
图6 数据拟合对比
两种方法的拟合效果的均方误差,如表1所示。从表1可以看出,相比于曲线拟合方法,深度学习方法对数据的拟合更好。
表1 深度学习和曲线拟合的均方误差
本研究建立的LSTM训练深度学习模型,除了具有训练高拟合性优势外,还具备滞后数据的预测能力,可提供以下应用功能。
1)基于多个周期的观测数据对模型进行反复训练,拟合出更精确生产过程的温度曲线,为后续的过程生产分析及状态预判提供基础;
2)采用移动窗口方式,应用训练好的模型,对后期的观测数据进行预测;
3)基于数据预测,对生产过程的稳定性进行预判,能够增加检测效果并避免过程异常的发生。
本文简要介绍RNN和LSTM基本原理,基于Pytorch开源库开发LSTM模型,通过实例对比分析模型性能和应用,实现将LSTM应用于时间序列数据分析。结果显示,所构建的LSTM模型能够很好地拟合非线性时间序列数据,可用于生产过程的状态分析和预测。