GRU(门控循环单元)网络结构与计算

门控循环单元(Gated Recurrent Unit,GRU)是另一种基于门控制的循环神经网络,GRU 的网络结构相比 LSTM 要简单一些。GRU 将 LSTM 中的输入门和遗忘门合并成了一个门,称为更新门(Update Gate)。

在 GRU 网络中,没有 LSTM 网络中的内部状态和外部状态的划分,而是通过直接在当前网络的状态 ht 和上一时刻网络的状态 ht-1 之间添加一个线性的依赖关系来解决梯度消失和梯度爆炸题的,如图 5 所示。
单个时间步的GRU 网络结构
图 5:单个时间步的 GRU 网络结构

在 GRU 网络中,更新门用来控制当前时刻输出的状态 ht 中要保留多少历史状态 ht-1,以及保留多少当前时刻的候选状态 。更新门的计算公式如下:

zt=σ(wzxt+Uzht-1+bz)

更新门的输出分别和历史状态 ht-1 及候选状态  进行了乘操作,其中和  相乘的是1-zt。最终当前时刻网络的输出为


重置门的作用是决定当前时刻的候选状态是否需要依赖上一时刻的网络状态,以及需要依赖多少。上一时刻的网络状态 ht 先和重置门的输出 rt 相乘之后,再作为参数用于计算当前时刻的候选状态。重置门的计算公式如下:

ht=σ(wrxt+Urht-1+br)


rt 的值决定了候选状态  对上一时刻的状态 ht-1 的依赖程度,候选状态  的计算公式如下:


其实当 zt 的值为 0 且 rt 的值为 1 时,GRU 网络中的更新门和重置门就不再发挥作用了,而此时的 GRU 网络就退化成了简单循环神经网络,因为有: