RNN循环神经网络

RNN

时间序列在深度学习的解决方案就是RNN了,RNN又叫循环神经网络。

RNN循环神经网络_第1张图片
图片发自App

它可以表示为该图。

又一个神经网络递归形成,但是有先后顺序。

对参数进行说明

s隐藏层输出

RNN循环神经网络_第2张图片
图片发自App

x是该层的输入

o是最终的概率输出,一般是softmax

RNN循环神经网络_第3张图片
图片发自App


至于UVW都是权重矩阵

根据St的公式,我们发现,t时间的输出和当前输入和t-1时刻输出有关。


对于反向传播,对s求导时会牵涉到st-1,那么就形成了链式法则

RNN循环神经网络_第4张图片
图片发自App

但是RNN具有遗忘性,表现为序列过长时,越久的信息越会保留少。

因为这个原因,认为的修改公式,使其达到长时间的记忆。比如LSTM算法

LSTM

也叫长短期记忆序列

其增加了一个叫门的概念。所谓门,无非是谁进谁不进,对信息进出有管控作用。

LSTM有三道门,分别是遗忘门(通过x和ht-1选出哪些信息需要遗忘),更新门(通过x和ht-1选出哪些信息需要更新增加),输出门(根据St.ht-1.x选出哪些信息作为输出给下一时刻)输出值为h

我们使用理解lstm文章中的三个图很容易说清楚

RNN循环神经网络_第5张图片
图片发自App


遗忘门,f是遗忘矩阵

RNN循环神经网络_第6张图片
图片发自App

更新门,i是更新矩阵,Ct是t时刻信息

RNN循环神经网络_第7张图片
图片发自App

用f决定t-1时刻的信息哪些需要遗忘,i来决定t时刻信息哪些更新到原来信息中

RNN循环神经网络_第8张图片
图片发自App

ot决定哪些信息需要输出,ht是最终输出

变体,lstm的变体GRU减少了参数个数,也就是减少了门,他把更新和删除合成了一个门

RNN循环神经网络_第9张图片
图片发自App

也把S和h混合,z如果为遗忘,那么1-z就是更新。简化的处理了更新和遗忘

LSTM的输入:

其输入是一个3D张量

(sample,timestep,inputdim)

第一维是指有多少个数据的训练集,第二个参数是时间步数,第三个是训时间步数下的练维度。

假如我们有20个句子,一个句子10个单词,一个单词由20维数据表示那么输入为(20,10,20)

如果我们得到的是10个时间序列,一秒代表一个值,一个序列有50个值,我们的输入为(10,50,1)

你可能感兴趣的:(RNN循环神经网络)