RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络

目录

门控循环单元的组成

长短期记忆网络的组成 

GRU和LSTM的对比


门控循环单元GRU

RNN不能处理太长的序列,因为序列信息都放在隐藏状态里面,就类似一个带时间序列的MLP, 当时间很长的时候,隐藏状态里累计了太多东西,前面很久的信息就不那么有参考价值了。

因此,观察一个序列时,不是每个观察值同样重要。

而门控循环单元的作用就是通过一些额外的控制单元,选取比较重要的数据内容用来训练循环神经网络。可以通过R和Z的大小,来选择多看现在的Xt还是多看过去隐藏状态Ht-1.

门控循环单元的组成

1、Rt重置门(reset gate)和Zt更新门(update gate)。 我们把它们设计成(0,1)(0,1)区间中的向量, 这样我们就可以进行凸组合。重置门Rt是计算新的隐藏状态时需要多少之前的隐藏状态的信息;更新门Zt是计算新的隐藏状态时,需要多少新的关于Xt的信息。

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第1张图片

 2、候选隐藏状态,与上一个时刻的隐藏状态Ht-1和输入x还有门Rt有关

Rt中的权重系数是可以学的,判断输出与之前哪个数值相关 ,同时排除一些无关的可以不要的信息。

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第2张图片

3、  确定新的隐状态Ht∈Rn×h 在多大程度上来自旧的状态Ht−1和 新的候选状态H~t。 更新门Zt仅需要在 Ht−1和候选H~t 之间进行按元素的凸组合就可以实现这个目标。 

  可学习的权重参数多了三倍,R,Z,H \widetilde{}

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第3张图片


LSTM与GRU相比,不只用z来决定要哪一部分,而是学习了F和I两个矩阵,来决定之前和现在的取舍。 PS:虽然大家一直不知道为什么LSTM的设计是这样

长短期记忆网络的组成 

 1、输入门、忘记门和输出门

就如在门控循环单元中一样, 当前时间步的输入和前一个时间步的隐状态 作为数据送入长短期记忆网络的门中, 它们由三个具有sigmoid激活函数的全连接层处理, 以计算输入门、遗忘门和输出门的值。

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第4张图片

输入为Xt∈Rn×d, 前一时间步的隐状态为Ht−1∈Rn×h。 相应地,时间步tt的门被定义如下: 输入门是It∈Rn×h, 遗忘门是Ft∈Rn×h, 输出门是Ot∈Rn×h。 它们的计算方法如下: 

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第5张图片

 2、候选记忆元

候选记忆单元Ct。(对应GRU的H波浪)使用tanhtanh函数作为激活函数,函数的值范围为(−1,1)(−1,1)。

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第6张图片 3、记忆元

 输入门It控制采用多少来自C~t的新数据, 而遗忘门Ft控制保留多少过去的 记忆元Ct−1∈Rn×h的内容

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第7张图片4、隐状态 

 这就是输出门发挥作用的地方,只要输出门接近1,我们就能够有效地将所有记忆信息传递给预测部分, 而对于输出门接近0,我们只保留记忆元内的所有信息,而不需要更新隐状态。

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第8张图片


GRU和LSTM的对比

RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第9张图片RNN循环神经网络进阶——GRU门控循环和LSTM长短期记忆网络_第10张图片 

                           GRU                                                                       LSTM

在计算过程中对比,可以看出多了一个Ct的过程。

C和H的区别:H的范围是【-1,1】,C可以存储信息,没有数值限制,可以比较大

你可能感兴趣的:(动手学深度学习,深度学习,rnn,人工智能)