时间序列预测LSTM与TCN

举报
vvvvvvv_sy 发表于 2021/04/30 17:05:58 2021/04/30
【摘要】 1、简介:传统神经网络(DNN)无法对时间序列进行建模,只能接受特定的输入得到输出,前一个输入和后一个输入之间没有关系。针对某些需要序列时序信息的任务,即前一个输入和后一个输入之间是有关系的,则需要循环神经网络(RNN)来处理。RNN由神经元和一个或多个反馈循环组成,神经元的输出在下一时刻是可以传递给自身的,同时还输出一个隐藏层状态,在当前层处理下一个时刻的样本时进行使用,可以看做是带自循环...

1、简介:

传统神经网络(DNN)无法对时间序列进行建模,只能接受特定的输入得到输出,前一个输入和后一个输入之间没有关系。针对某些需要序列时序信息的任务,即前一个输入和后一个输入之间是有关系的,则需要循环神经网络(RNN)来处理。RNN由神经元和一个或多个反馈循环组成,神经元的输出在下一时刻是可以传递给自身的,同时还输出一个隐藏层状态,在当前层处理下一个时刻的样本时进行使用,可以看做是带自循环反馈的全连接神经网络。

RNN隐藏层以循环结构形成记忆,可以保留之前的信息,从而有效利用过去时刻的信息进行处理。但是随着序列长度的逐渐增加,RNN无法处理长距离依赖的问题,同时由于采用BRTT的反向传播算法,RNN容易出现梯度爆炸和梯度消失的问题。因此,对于较长序列,一般不能直接使用RNN进行预测建模。

2、LSTM(Long Short-Term Memory)长短期记忆网络

长短时记忆网络 (Long Short Term Memroy, LSTM) 是由 Hochreiter 和 Schmidhuber[1]提出一种特殊的 RNN,可以解决RNN无法处理长距离依赖的问题。LSTM 与RNN有着类似的链式结构,如图1所示。LSTM在RNN的基础上通过增加3个门(gates)来控制单元添加或者删除信息的能力。

图1 LSTM网络结构[3]

遗忘门(Forget Gate):决定忘记上一时刻Memory cell中的哪些信息,主要通过一个sigmoid的网络层来控制。

输入门(Input Gate):决定哪些信息存储在当前时刻的Memory cell中,主要通过一个sigmoid的网络层确定,然后通过一个tanh的网络层生成一个新的候选值向量添加到Memory cell中,之后对两者进行整合并更新。

输出门(Output Gate):决定当前时刻Memory cell中的哪些信息进行输出,主要通过一个sigmoid的网络层确定输出,然后对单元状态进行tanh操作并与sigmoid的输出相乘,作为最后的隐藏层输出。

3、TCN(Temporal Convolutional Networks)时间卷积网络

TCN的特点在于:1.网络的输入和输出长度相等;2.不利用将来的信息。为了解决上述问题,TCN以CNN为基础,并做了如下改进。

  • 一维卷积

TCN使用一维全卷积结构和 zero padding保证了各隐藏层之间长度与输入长度相同。

  • 因果卷积

因为要处理时间序列,使用x1,x2,....,xt和y1,y2,....,yt-1来预测yt,因此不能使用普通的CNN。使用因果卷积,不考虑未来的信息,对前一层 t 时刻及之前的状态进行卷积,计算得到 t 时刻的输出,如图2所示。

图2 因果卷积网络结构示意图[4]

但是,如果需要考虑的时间序列很长,那就需要增加卷积层数,提升网络深度,才能捕捉到长时间的历史信息。网络深度的增加,容易造成梯度消失,难以训练的问题。针对这个问题,TCN使用扩张卷积来扩大网络的感受野。

  • 扩张卷积(膨胀卷积)

相比于普通卷积,扩张卷积引入扩张因子(dilation rate),指的是卷积核的点的间隔数量(普通卷积为1),通过跳过部分输入的方式,使得卷积核filter可以应用于大于filter本身长度的区域,从而扩大网络的感受野。如图3所示,扩张卷积在普通卷积的基础上,保证网络参数数量不变,扩大卷积核的感受野。

图3 扩张卷积示意图[5]

  • 残差模块

TCN同时还采用ResNet的残差结构来代替卷积层,进而训练更深的网络。如图4所示,残差模块包括:两层扩展卷积,两层权重归一化,两层激活函数ReLU,两层Dropout。与ResNet不同的是,标准ResNet中是将输入直接添加到输出中,而TCN中,由于输入输出的维度了可能不一致,因此先引入1*1卷积改变输入特征维度,然后再与输出相加。

图4 TCN残差结构[2]

4、实验结果总结

实验结果[2]表明:TCN的效果明显由于LSTM和RNN等一般的递归体系结构。尽管RNN在理论上可以处理较长时间的序列数据,但是在实践过程中并不能实现。LSTM和TCN都能够保存更加长期的记忆,并且有效避免了RNN中梯度爆炸和梯度消失的问题。但是,对于时间较长的序列数据,LSTM需要使用大量内存来存储单元状态,而TCN中特征的反向传播只取决于网络深度,相比LSTM消耗更小的内存。

参考文献

  • [1].Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural Computation, 9(8), 1735–1780.
  • [2].Bai S, Kolter J Z, Koltun V. An empirical evaluation of generic convolutional and recurrent networks for sequence modeling[J]. arXiv preprint arXiv:1803.01271, 2018.
  • [3].http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • [4].Oord A, Dieleman S, Zen H, et al. Wavenet: A generative model for raw audio[J]. arXiv preprint arXiv:1609.03499, 2016.
  • [5].https://deepmind.com/blog/article/wavenet-generative-model-raw-audio
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。