RNN中的门控循环结构---lSTM和GRU

一:门控循环神经网络简介

门控循环神经网络是在经典RNN基础之上调整而出的网络结构,通过加入门控机制(非线性激活函数,通常是sigmoid),
用来控制神经网络中的信息传递。门控机制可以用来控制记忆单元中哪些信息需要留下,哪些需要丢弃,新的输入信息又有
多少需要保留到记忆单元中。这样门控循环神经网络就可以学习跨度相对较长的长期依赖关系,而且不会产生梯度爆炸或
梯度弥散。具体的原理是:从数学角度上讲,在一般的循环神经网络中,网络的状态XT和XT-1之间是非线性的。而网络又是
在时间上共享参数W(cnn是空间上共享参数),这就是导致梯度消失和梯度爆炸的根本原因。而门控循环神经网络的做法是
在两个状态之间,添加一个非线性的依赖关系。从而解决梯度弥散或者梯度消失问题。

二、 长短期记忆网络(LSTM)

循环神经网络中的记忆单元对信息的恒等处理导致记忆单元中储存了许多无用信息,而有用的信息也有被排挤出去的风险。LSTM(long short term memery).就是基于这一点出发对经典rnn做了改进,和一般的rnn不同的是,lastm有两个状态,一个是内部状态,一个是外部状态(即普通rnn中的状态–当前时刻隐层的输出,也是下一层的输入)。
在LSTM中有三个称之为“门”的控制单元,分别是输入门(input gate)、输出门(output gate)和遗忘门(forget gate),其中输入门和遗忘门是LSTM能够记忆长期依赖的关键。输入门决定了当前时刻网络的状态有多少信息需要保存到内部状态中,而遗忘门则决定了过去的状态信息有多少需要丢弃。最后,由输出门决定当前时刻的内部状态有多少信息需要输出给外部状态。
RNN中的门控循环结构---lSTM和GRU_第1张图片
RNN中的门控循环结构---lSTM和GRU_第2张图片

(1)输入门
RNN中的门控循环结构---lSTM和GRU_第3张图片

tanh的计算值又被称为候选值:
在这里插入图片描述
输入门的计算公式:
在这里插入图片描述
由于α为Logistic函数,其值域为(0,1),因此输入门的值就属于(0,1)。LSTM将“tanh”节点的输出(即候选状态tanh)乘上输入门的值后再用来更新内部状态。如果的值趋向于0的话,那么候选状态Ct就只有极少量的信息会保存到内部状态中,相反的,如果的值It趋近于1,那么候选状态Ct就会有更多的信息被保存。输入门就是通过这种方法来决定保存多少中的信息,It值的大小就代表了新信息的重要性,不重要的信息就不会被保存到内部状态中.
(2)遗忘门
RNN中的门控循环结构---lSTM和GRU_第4张图片
计算公式:
在这里插入图片描述
和输入门是同样的方法,通过的值来控制上一时刻的内部状态有多少信息需要“遗忘”。当Ft的值越趋近于0,被遗忘的信息越多
(3)输出门

计算公式:
在这里插入图片描述
RNN中的门控循环结构---lSTM和GRU_第5张图片
(4)整体计算过程:
RNN中的门控循环结构---lSTM和GRU_第6张图片
三、 门控制循环单元(GRU)
门控循环单元是基于门控结构的另一种循环神经网络,不同的是,GRU将LSTM中的输入门和遗忘门合并成了一种门,称为更新门。在GRU中,没有LSTM网络中的内部和外部状态的划分。而是通过直接在当前网络状态Ht和上一时刻的状态Ht-1之间添加一个线性的依赖关系,来解决梯度消失和梯度爆炸问题,从而继续学习跨度较大的长期依赖关系。
RNN中的门控循环结构---lSTM和GRU_第7张图片

在GRU网络中,更新门用来控制当前状态Ht中保留多少历史状态Ht-1,以及保留多少候选值–即tanh的值。更新门计算公式为:
在这里插入图片描述
RNN中的门控循环结构---lSTM和GRU_第8张图片
最后说一下LSTM和GRU的区别:
1:GRU参数比LSTM少,所以容易收敛。 数据集大的情况下,LSTM的表达性能还是比GRU好。
2:在一般数据集上 GRU和LSTM的性能差不多
3:从结构上来说,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU直接将hidden state 传给下一个单元,而LSTM则用memory cell 把hidden state 包装起来。

简单版本的结构图:

GRU

RNN中的门控循环结构---lSTM和GRU_第9张图片
LSTM
RNN中的门控循环结构---lSTM和GRU_第10张图片

你可能感兴趣的:(RNN中的门控循环结构---lSTM和GRU)