梯度异常的意义

校验和:

考虑一个极端情况,其中第一个观测值包含一个校验和, 目标是在序列的末尾辨别校验和是否正确。 在这种情况下,第一个词元的影响至关重要。 我们希望有某些机制能够在一个记忆元里存储重要的早期信息。 如果没有这样的机制,我们将不得不给这个观测值指定一个非常大的梯度, 因为它会影响所有后续的观测值。

无关信息

一些词元没有相关的观测值。
例如,在对网页内容进行情感分析时, 可能有一些辅助HTML代码与网页传达的情绪无关。 我们希望有一些机制来跳过隐状态表示中的此类词元。

逻辑中断

序列的各个部分之间存在逻辑中断。
例如,书的章节之间可能会有过渡存在, 或者证券的熊市和牛市之间可能会有过渡存在。 在这种情况下,最好有一种方法来重置我们的内部状态表示。

门控隐状态

模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。
这些机制是可学习的,并且能够解决了上面列出的问题。
例如,如果第一个词元非常重要, 模型将学会在第一次观测之后不更新隐状态。 同样,模型也可以学会跳过不相关的临时观测。 最后,模型还将学会在需要的时候重置隐状态。

重置门和更新门

我们把它们设计成(0,1)区间中的向量, 这样我们就可以进行凸组合。(因此使用sigmoid作为激活函数)
重置门允许我们控制“可能还想记住”的过去状态的数量X
更新门将允许我们控制新状态中有多少个是旧状态的副本,可以直接绕过X,看上一个隐状态
image.png

重置门和更新门的数学表达

给定时间步t,输入是一个小批量门控循环单元(GRU) - 图2上一个时间步t-1的隐状态为门控循环单元(GRU) - 图3门控循环单元(GRU) - 图4
门控循环单元(GRU) - 图5
门控循环单元(GRU) - 图6
其中门控循环单元(GRU) - 图7
虽然这两个门结构一样,但参数不一样,通过学习得到,
可视化学习参数,观察权重

候选隐状态

重置门Rt 与 常规隐状态更新机制集成,得到时间步t的候选隐藏状态门控循环单元(GRU) - 图8
image.png

候选状态的数学表达

image.png
image.png

候选状态解释

门控循环单元(GRU) - 图12接近0时,表示要把门控循环单元(GRU) - 图13即上一个隐藏状态的值给忘掉,相当于重新开始,以往的信息全部不要;当门控循环单元(GRU) - 图14接近1时,表示要记住上一个隐藏状态。门控循环单元(GRU) - 图15是可以学习的,因此可以自动决定哪些需要保留。
候选状态来表示上一个输入X对隐状态更新的影响

GRU的隐状态

隐状态更新公式:

image.png

更新公式解释:

GRU隐状态的更新取决于门控循环单元(GRU) - 图17 ,
更新门的作用就在于把旧状态和候选状态进行凸组合。
门控循环单元(GRU) - 图18
从而有效地跳过了依赖链条中的时间步t。
门控循环单元(GRU) - 图19
image.png

总结

门控循环单元具有以下两个显著特征

  • 重置门有助于捕获序列中的短期依赖关系。
  • 更新门有助于捕获序列中的长期依赖关系。