时间序列预测LSTM与TCN

【摘要】 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网络结构

遗忘门(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所示。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享