1.什么是GRU
GRU(Gate Recurrent Unit)门控循环单元,是循环神经网络(RNN)的变种种,与LSTM类似通过门控单元解决RNN中不能长期记忆和反向传播中的梯度等问题。与LSTM相比,GRU内部的网络架构较为简单。
2.GRU内部结构
GRU网络内部包含两个门使用了更新门(updategate)与重置门(resetgate)。重置门决定了如何将新的输入信息与前面的记忆相结合,更新门定义了前面记忆保存到当前时间步的量。如果我们将重置门设置为1,更新门设置为0,那么我们将再次获得标准RNN模型。这两个门控向量决定了哪些信息最终能作为门控循环单元的输出。这两个门控机制的特殊之处在于,它们能够保存长期序列中的信息,且不会随时间而清除或因为与预测不相关而移除。 GRU门控结构如下图所示:
2-1 更新门
更新门帮助模型决定到底要将多少过去的信息传递到未来,或到底前一时间步和当前时间步的信息有多少是需要继续传递的。
其中Xt为第t个时间步的输入向量,即输入序列X的第t个分量,它会经过一个线性变换(与权重矩阵W(z)相乘)。h(t-1)保存的是前一个时间步t-1的信息,它同样也会经过一个线性变换。更新门将这两部分信息相加并投入到Sigmoid激活函数中,因此将激活结果压缩到0到1之间。以下是更新门的计算公式:
2-2 重置门
重置门主要决定了到底有多少过去的信息需要遗忘。
h(t-1)和xt先经过一个线性变换,再相加投入Sigmoid激活函数以输出激活值。
2-3 当前记忆内容
在重置门的使用中,新的记忆内容将使用重置门储存过去相关的信息。
计算重置门rt与Uh(t-1)的Hadamard乘积,即rt与Uh(t-1)的对应元素乘积。因为前面计算的重置门是一个由0到1组成的向量,它会衡量门控开启的大小。例如某个元素对应的门控值为0,那么它就代表这个元素的信息完全被遗忘掉。该Hadamard乘积将确定所要保留与遗忘的以前信息。
2-4当前时间步的最终记忆
最终记忆的计算过程中,需要使用更新门,它决定了当前记忆内容ht’和前一时间步h(t-1)中需要收集的信息。这一过程可以表示为
zt为更新门的激活结果,它同样以门控的形式控制了信息的流入。zt与h(t-1)的Hadamard乘积表示前一时间步保留到最终记忆的信息,该信息加上当前记忆保留至最终记忆的信息就等于最终门控循环单元输出的内容。
门控循环单元不会随时间而清除以前的信息,它会保留相关的信息并传递到下一个单元,因此它利用全部信息而避免了梯度消失问题。