门控循环单元网络GRU详解

为了改善循环神经网络的长程依赖问题,在

梯度消失是循环网络的主要问题除了使用一些优化技巧外更有效的方式就是改变模型比如让U = I同时令 ∂ht/∂ht= I 为单位矩阵即ht = ht−1 + g(xt; θ), (其中g(·)是一个非线性函数,θ 为参数ht和ht−1 之间为线性依赖关系,且权重系数为1,这样就不存在梯度爆炸或消失问题。但会出现梯度爆炸和记忆容量问题

的基础上引入门控机制来控制信息的累计速度。括有选择地加入新的信息,并有选择地遗忘之前累积的信息。这一类网络可以称为基于门控的循环神经网络。主要介绍两种基于门控的循环神经网络:长短期记忆网络和门控循环单元网络

下面介绍只介绍门控循环单元网络。

门控循环单元网络GRU详解_第1张图片

是一种比LSTM网络更加简单的循环神经网络。GRU不引入额外的记忆单元,GRU网络也是在公式

输出公式(1)

的基础上引入一个更新门(来控制当前状态需要从历史状态中保留多少信息(不经过非线性变换),以及需要从候选状态中接受多少新信息。

GRU网络的更新状态ht

更新门

由当前输入xt,上一时刻隐藏层的状态ht-1以及偏置决定

当zt = 0时,当前状态ht 和前一时刻的状态ht−1 之间为非线性函数关系;

当zt = 1时,ht 和ht−1 之间为线性函数关系。

在上面的输出公式中的最后一项

等于

公式(2)h^表示当前时刻的候选状态

在上面的候选状态公式(2)中,rt称为重置门用来控制候选状态h^t的计算是否依赖上一时刻的状态ht−1。

重置门由下面的公式表示:

由当前输入xt,上一时刻隐藏层的状态ht-1以及偏置决定

当rt = 0时,候选状态h˜t = tanh(Wcxt + b)只和当前输入xt 相关,和历史状态无关。

当rt =1时,候选状态h˜t = tanh(Whxt + Uhht−1 + bh)和当前输入xt 和历史状态ht−1 相关,和简单循环网络一致。

综上所述GRU网络的状态更新方式为:

你可能感兴趣的:(tensorflow,循环神经网络)