【摘要】 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所示。