GRU
GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。
GRU 和 LSTM 在很多情况下实际表现上相差不大,那么为什么我们要使用GRU(2014年提出)而不是相对经受了更多考验的 LSTM(1997提出),因为GRU 参数。
gru.png-
重置门
重置门有助于捕捉短期的依赖关系
-
更新门
有助于捕捉长期的依赖关系
重置门用于控制是否清空(格式化)存储单元,而更新门是将数据更新到存储单元。
这里我们重点地来说明几件事 - 是候选状态
- 这里 和 是按元素相乘,也就是如果 是 0 就表示 每一个元素都是乘以 0 得到 0 ,那么也就是 来控制是否将上一个状态更新到当前
这里通过 来控制当前隐含状态是来自上一个时刻隐含状态,还是来自当前候选隐含状态。当就会一直保留一些之前隐含状态。
- 输入门
- 遗忘门
- 输出门
所有门控都是有上一个时刻和当前输入所决定的这个很好理解
然后我们候选状态在 LSTM 中是什么样子的。
我们看这里候选状态与之前 GRU 的状态不太一样没有任何控制,而是原始的 RNN 神经单元差不多。
记忆希望是 GRU 没有, 不断记忆处理信息,如果我们想要忘记过去的信息,这时候只要将 设置为 0 那么之前保存信息就会丢失。这里想一想,在序列中有<eos>来表示断句,而且句子之间没有什么联系,在<eos>后面第一个词就是下一句首,之前句子所有信息对下一句第一个词是没有任何意义,所有我们可以通过遗忘门将之前信息进行清空。
最后就是输出门,用输出门来控制
最后希望大家关注我们微信公众号
wechat.jpeg
网友评论