1. 什么是GRU
在循环神经⽹络中的梯度计算⽅法中,我们发现,当时间步数较⼤或者时间步较小时,**循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。**通常由于这个原因,循环神经⽹络在实际中较难捕捉时间序列中时间步距离较⼤的依赖关系。
**门控循环神经⽹络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较⼤的依赖关系。**它通过可以学习的⻔来控制信息的流动。其中,门控循环单元(gatedrecurrent unit,GRU)是⼀种常⽤的门控循环神经⽹络。
2. ⻔控循环单元
2.1 重置门和更新门
GRU它引⼊了**重置⻔(reset gate)和更新⻔(update gate)**的概念,从而修改了循环神经⽹络中隐藏状态的计算⽅式。
门控循环单元中的重置⻔和更新⻔的输⼊均为当前时间步输⼊ X t X_t Xt 与上⼀时间步隐藏状态 H t − 1 H_{t-1} Ht−1,输出由激活函数为sigmoid函数的全连接层计算得到。 如下图所示:
具体来说,假设隐藏单元个数为 h,给定时间步 t 的小批量输⼊ X t ∈ R n ∗ d X_t\in_{}\mathbb{R}^{n*d} Xt∈Rn∗d(样本数为n,输⼊个数为d)和上⼀时间步隐藏状态 H t − 1 ∈ R n ∗ h H_{t-1}\in_{}\mathbb{R}^{n*h} Ht−1∈Rn∗h。重置⻔ H t ∈ R n ∗ h H_t\in_{}\mathbb{R}^{n*h} Ht∈R