GRU(门控循环单元)--学习笔记

版权声明:转载请声明转自Juanlyjack https://blog.csdn.net/m0_38088359/article/details/83960108

0、门控循环单元

门控循环神经网络可以更好地捕捉时间序列中时间步距离较大的依赖关系,通过引入了门的概念,修改循环神经网络中隐藏状态的计算方式,它包括重置门、更新门、候选隐藏状态和隐藏状态。

重置门有助于捕捉时间序列里短期的依赖关系。更新门有助于捕捉时间序列里长期的依赖关系。

1、重置门和更新门

门控循环单元中的重置门(reset gate)和更新门(update gate)的输入均为当前时间步输入 Xt 与上一时间步隐藏状态 Ht−1,输出由激活函数为 sigmoid 函数的全连接层计算得到。
在这里插入图片描述

举个例子:
在这里插入图片描述
其中:
在这里插入图片描述

2、候选隐藏状态

门控循环单元将计算候选隐藏状态来辅助稍后的隐藏状态计算。将当前时间步重置门的输出与上一时间步隐藏状态做按元素乘法(符号为 ⊙)。

如果重置门中元素值接近 0,那么意味着重置对应隐藏状态元素为 0,即丢弃上一时间步的隐藏状态。如果元素值接近 1,那么表示保留上一时间步的隐藏状态。

然后,将按元素乘法的结果与当前时间步的输入连结,再通过含激活函数 tanh 的全连接层计算出候选隐藏状态,其所有元素的值域为 [−1,1]。

在这里插入图片描述

按照上面那个例子:
在这里插入图片描述

3、隐藏状态

候选隐藏状态只是为了更新新的隐藏状态,而并不是隐藏状态。所以接下来时间步t的隐藏状态计算需要用当前的时间步更新Zt来对上一步的隐藏状态Ht-1和当前时间步的候选隐藏状态做组合。

还是按照上面这个例子:
在这里插入图片描述
计算结构图如下图所示:
在这里插入图片描述

4、GRU训练

输出层的输入为:
在这里插入图片描述
输出为:
在这里插入图片描述
某时刻的损失函数为:
在这里插入图片描述
训练中整个抽样的样本的损失为:
在这里插入图片描述
以下是梯度下降更新过程:
在这里插入图片描述

在往后的章节中会使用MXNet的gluon来实践GRU。

学习参考1
学习参考2

猜你喜欢

转载自blog.csdn.net/m0_38088359/article/details/83960108
今日推荐