RNN
时间序列在深度学习的解决方案就是RNN了,RNN又叫循环神经网络。
RNN循环神经网络它可以表示为该图。
又一个神经网络递归形成,但是有先后顺序。
对参数进行说明
s隐藏层输出
RNN循环神经网络x是该层的输入
o是最终的概率输出,一般是softmax
RNN循环神经网络至于UVW都是权重矩阵
根据St的公式,我们发现,t时间的输出和当前输入和t-1时刻输出有关。
对于反向传播,对s求导时会牵涉到st-1,那么就形成了链式法则
RNN循环神经网络但是RNN具有遗忘性,表现为序列过长时,越久的信息越会保留少。
因为这个原因,认为的修改公式,使其达到长时间的记忆。比如LSTM算法
LSTM
也叫长短期记忆序列
其增加了一个叫门的概念。所谓门,无非是谁进谁不进,对信息进出有管控作用。
LSTM有三道门,分别是遗忘门(通过x和ht-1选出哪些信息需要遗忘),更新门(通过x和ht-1选出哪些信息需要更新增加),输出门(根据St.ht-1.x选出哪些信息作为输出给下一时刻)输出值为h
我们使用理解lstm文章中的三个图很容易说清楚
RNN循环神经网络遗忘门,f是遗忘矩阵
RNN循环神经网络更新门,i是更新矩阵,Ct是t时刻信息
RNN循环神经网络用f决定t-1时刻的信息哪些需要遗忘,i来决定t时刻信息哪些更新到原来信息中
RNN循环神经网络ot决定哪些信息需要输出,ht是最终输出
变体,lstm的变体GRU减少了参数个数,也就是减少了门,他把更新和删除合成了一个门
RNN循环神经网络也把S和h混合,z如果为遗忘,那么1-z就是更新。简化的处理了更新和遗忘
LSTM的输入:
其输入是一个3D张量
(sample,timestep,inputdim)
第一维是指有多少个数据的训练集,第二个参数是时间步数,第三个是训时间步数下的练维度。
假如我们有20个句子,一个句子10个单词,一个单词由20维数据表示那么输入为(20,10,20)
如果我们得到的是10个时间序列,一秒代表一个值,一个序列有50个值,我们的输入为(10,50,1)
网友评论