门控循环单元(Gated Recurrent Unit,GRU)是 LSTM 的一个稍微简化的变体,通常能够提供同等的效果,并且计算训练的速度更快。
门控循环单元原理图:参考门控循环单元
原理图中各个图形含义:
- X(t):表示当前时刻输入的信息(假设输入的样本个数为 n,输入个数为 d)
- H(t-1):表示上一时刻的隐藏状态。隐藏状态充当了神经网络的记忆,包含之前节点数据信息的综合(假设上一个时间步的隐状态的单元个数为 h)
- H(t):表示传递到下一时刻的隐藏状态。
- H'(t):表示候选隐藏状态(candidate hidden state)。
- R(t):表示重置门(reset gate),允许我们控制"可能还想记住"的过去状态的数量。
- Z(t):表示更新门(update gate),允许我们控制新状态中有多少个是旧状态的副本。
- σ:激活函数 sigmoid,可以将数据变为 (0, 1) 范围的数值。
- tanh:激活函数 tanh,可以将数据变为 (-1, 1) 范围的数值。
- W(xr) 和 W(xz) 是维度为 d×h 的权重参数,W(hr) 和 W(hz) 是维度为 h×h 的是权重参数,W(xh) 是维度为 d×h 的权重参数, W(hh) 是维度为 h×h 的是权重参数
- b(r)、b(z)、b(h) 是维度为 1×h 的偏置参数。
重置门和更新门的计算公式如下:
候选隐状态的计算公式如下:
下一时刻的隐藏状态公式如下:
重置门有助于捕获序列中的短期依赖关系;
更新门有助于捕获序列中的长期依赖关系。