目录
1 GRU的输入输出结构
2 GRU的内部结构
2.1 重置门 reset gate
2.2 更新门 update gate
3 LSTM与GRU的关系
4. 总结
5 吴恩达视频截图
LSTM 通过门控机制使循环神经网络不仅能记忆过去的信息,同时还能选择性地忘记一些不重要的信息而对长期语境等关系进行建模,而 GRU 基于这样的想法在保留长期序列信息下减少梯度消失问题。
相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。
GRU的输入输出结构与普通的RNN是一样的。
有一个当前的输入 ,和上一个节点传递下来的隐状态(hidden state) ,这个隐状态包含了之前节点的相关信息。
结合 和 ,GRU会得到当前隐藏节点的输出 和传递给下一个节点的隐状态 。
首先,我们先通过上一个传输下来的状态 和当前节点的输入 来获取两个门控状态。如下图所示,其中 控制重置的门控(reset gate), 为控制更新的门控(update gate)。
Tips: 为sigmoid函数,通过这个函数可以将数据变换为0-1范围内的数值,从而来充当门控信号。
与LSTM分明的层次结构不同,得到门控信号之后,首先使用重置门控来得到“重置”之后的数据 ,再将 与输入 进行拼接,再通过一个tanh激活函数来将数据放缩到-1~1的范围内。即得到如下图所示的 。
注: 是Hadamard Product,也就是操作矩阵中对应的元素相乘,因此要求两个相乘矩阵是同型的。 则代表进行矩阵加法操作。
这里的 主要是包含了当前输入的 数据。有针对性地对 添加到当前的隐藏状态,相当于“记忆了当前时刻的状态”。类似于LSTM的选择记忆阶段。
最后介绍GRU最关键的一个步骤,我们可以称之为”更新记忆“阶段。
在这个阶段,我们同时进行了遗忘了记忆两个步骤。我们使用了先前得到的更新门控 (update gate)。
更新表达式:
首先再次强调一下,门控信号(这里的 )的范围为0~1。门控信号越接近1,代表”记忆“下来的数据越多;而越接近0则代表”遗忘“的越多。
GRU很聪明的一点就在于,我们使用了同一个门控 就同时可以进行遗忘和选择记忆(LSTM则要使用多个门控)。
可以看到,这里的遗忘 和选择 是联动的。也就是说,对于传递进来的维度信息,我们会进行选择性遗忘,则遗忘了多少权重 ( ),我们就会使用包含当前输入的 中所对应的权重进行弥补 。以保持一种”恒定“状态。
GRU是在2014年提出来的,而LSTM是1997年。他们的提出都是为了解决相似的问题,那么GRU难免会参考LSTM的内部结构。那么他们之间的关系大概是怎么样的呢?这里简单介绍一下。
大家看到 (reset gate)实际上与他的名字有点不符。我们仅仅使用它来获得了 。
那么这里的 实际上可以看成对应于LSTM中的hidden state;上一个节点传下来的 则对应于LSTM中的cell state。1-z 对应的则是LSTM中的 forget gate,那么 z 我们似乎就可以看成是选择门 了。
GRU输入输出的结构与普通的RNN相似,其中的内部思想与LSTM相似。
与LSTM相比,GRU内部少了一个”门控“,参数比LSTM少,但是却也能够达到与LSTM相当的功能,但是LSTM更加强大灵活。考虑到硬件的计算能力和时间成本,我们就会选择更加”实用“的GRU。在实际使用中,应加以尝试。
经过研究者的不断探究,终于研究出来一种适合几乎各种研究实验的新型GRU网络是这样的:
这个GRU可以经过经过更加深度的训练而保持强壮记忆力! gamma r的这个r可以表示为relevance相关性,也就是新的t时刻的记忆单元C~和t-1时刻的记忆单元C的相关性。
人人都能看懂的GRU:人人都能看懂的GRU - 知乎
吴恩达视频:【中英字幕】吴恩达深度学习课程第五课 — 序列模型_哔哩哔哩_bilibili