目录
前言
门控循环单元(Gated Recurrent Unit(GRU))是2014年成熟的一个技术,其改变了RNN的隐藏层,使其可以更好地捕捉深层连接,改善了梯度消失问题。
RNN的基本单元
更具体一些:
(把上图中a<t>的矩阵相乘展开了)
GRU基本单元(简化版)
GRU增加了一个新的变量c,代表记忆细胞(cell)。记忆细胞的作用是提供了记忆的能力,比如说一只猫是单数还是复数,当它看到之后较远的句子的时候,依旧可以判断句子的主语是单数还是复数。
在时间 t 处,有记忆细胞, 在每个时间步,我们将用一个候选值重写记忆细胞,即 的值,而GRU中真正重要的思想是有一个门,用来决定是否真的要更新的值。
对于GRU而言, 的值等于 的激活值;但是在LSTM(长短时记忆网络)中两者是不相等的。
代表sigmoid函数 ,所以会让门的值大部分情况非常接近0或者1。
所以GRU的式子是 (门 1表示更新,0表示不更新)
这样就成功实现了 不更新它的时候,就用的是之前的值,同时没有忘记之前的值。
(紫色的框就是上图的公式)
GRU基本单元(完整版)
完整的GRU单元需要做的改变就是在我们计算的第一个式子中给记忆细胞的新候选值加上一个新的项。
简化版本:
完整版本:
添加了一个新的门,r可以理解为相关性(relevance),这个 门计算出的下一个 的候选值 跟 有多大的相关性。
为什么有 ?为什么不用之前的简单版本?这是因为多年来研究者们试验过很多不同可能的方法来设计这些单元,去尝试让神经网络有更深层的连接,去尝试产生更大范围的影响,还有解决梯度消失的问题,GRU就是其中一个研究者们最常使用的版本,也被发现在很多不同的问题上也是非常健壮和实用的。