深入理解LSTM

    GRU和LSTM都是RNN的一种特殊模型,它们的出现是为了解决RNN存在rnn 的梯度消失问题,我们今天从lstm的公式推导以及它的应用来说明以这些问题。

   lstm的模型可适应较为深的神经网络,它的通用模型有三个门,遗忘门,更新门,输出门,

 

lstm 和 GRU的原理差不多,都能够让你可以在序列中学习非常深的连接。其他类型的单元也可以让你做到这个,比如LSTM即长短时记忆网络,甚至比GRU更加有效,让我们看看。

深入理解LSTM

由上可知gru有两个门:

更新门(the update gate

相关门(the relevance gate

 

LSTM是一个比GRU更加强大和通用的版本,我们来对比一下它们的区别:

深入理解LSTM

这就是LSTM主要的式子(上图编号2所示),我们继续回到记忆细胞c上面来,使用来更新它的候选值(上图编号3所示)。注意了,在LSTM中我们不再有的情况,这是现在我们用的是类似于左边这个式子(上图编号4所示),但是有一些改变,现在我们专门使用或者,而不是用,我们也不用,即相关门。虽然你可以使用LSTM的变体,然后把这些东西(左边所示的GRU公式)都放回来,但是在更加典型的LSTM里面,我们先不那样做。

 

lstm改成了三个门:

Iu :更新门的系数,主要决定该时间点更新的C<t>的系数

If:是遗忘门的系数,主要决定上个时间点C<t-1>的保留程度,If 越小,保留程度越低

Io:是输出门 的系数,主要决定C<t>于a<t>的映射关系。

注意:以上的系数求解,都用到了sigmod**函数,最后的系数都是在0—1之间,可以无限的接近于0,比如0.0001,0.00001等等,但不会等于零,可以使得lstm网络的反向传播求导的过程中,不会出现梯度消失的问题,这就是GRU和LSTM 能够训练深layer的原因,这种消除梯度爆炸的方法比较类似于残缺网络(RETNETS),有兴趣的可以了解一下。

深入理解LSTM

 

 

LSTM前向传播图:

深入理解LSTM

深入理解LSTM

 

LSTM反向传播计算:

门求偏导:

深入理解LSTM

 

 

 

参数求偏导 :

深入理解LSTM

  

为了计算 需要各自对 求和。

最后,计算隐藏状态、记忆状态和输入的偏导数:

深入理解LSTM

 

 

大家如果对以上的推导过程有疑惑的话可以交流。