GRU 改变了RNN 的隐藏层,使其可以更好的捕捉深层连接,并改善了梯度消失问题。 GRU可以更好的捕捉非常长范围的依赖,让RNN更加有效。
-
RNN
下图为 RNN 隐藏层单元的可视化呈现,我们将使用相似的图来讲解 GRU 。
-
GRU
下图左上角的小图可以更好的解释GRU。
给定一个句子,如下图所示。当我们从左向右读这个句子的时候,GRU 单元将会有个新的变量 C ,代表细胞,即记忆细胞。记忆细胞的作用是提供了记忆的能力,比如说,对于一只猫是单数还是复数,当他看到之后的句子时仍能够判断句子的主语是单数还是复数。于是在时间 t 处记忆细胞有关于 t 的值 C<t>,GRU实际上是输出了 a<t> 的激活值,于是我们想要使用不同的符号 c 和 a 来表示记忆细胞的值和输出的激活值,即使他们是一样的,但当之后谈到 LSTM 的时候这两个代表两个不同的值。 在每个时间步,我们将用一个候选重写记忆细胞 即C~<t>,表达式如下,所以候选值替代了 C<t> 的值。