LSTM RNN遗忘门是如何计算的?

数据挖掘 深度学习 lstm
2022-02-11 09:07:21

我知道 LSTM 循环神经网络有一个遗忘门、输入门和输出门。

但是,我不明白下面的等式如何计算“忘记”信息(来自 Chris Olah 的LSTM 帖子

LSTM忘记门层和方程

这个遗忘门如何决定从先前的单元状态中丢弃哪些信息?换句话说,忘记了什么。

在我看来,这个等式只需要xt从当前状态和ht1从之前的状态。

有人能解释一下这个方程是如何作为一个遗忘门来保留或丢弃细胞状态的吗?

1个回答

的方程和值ft本身并不能完全解释门。您需要查看下一步的第一个术语:

Ct=ftCt1+itC¯t

向量ft即遗忘门的输出,用作与前一个单元状态的元素相乘Ct1. 正是在这个阶段,个体的元素C被“记住”或“被遗忘”。

由于 sigmoid 函数,向量ft表现得像每个元素的二元分类器,饱和值倾向于选择不修改C在所有(价值1)或“忘记”之前的值是什么(值0)。当然中间值也是可能的,简单地记住和忘记值之间的类比就不那么直接了。

与遗忘或记忆的类比有助于理解在多个时间步上保留梯度的改进。对于任何步骤,其中一个元素ft接近1(因此先前时间步长的影响被“记住”),然后相应的梯度元素从θCtθCt1保持不变,避免在更简单的 RNN 架构中看到的梯度损失(尤其是与饱和值相关的)。一旦前一个元素在C被“遗忘”,则时间步之间的误差梯度连接被切断。