【问题标题】:Why do LSTM forget gates take in new inputs?为什么 LSTM 遗忘门会接受新的输入?
【发布时间】:2020-08-01 01:54:00
【问题描述】:

我正在关注LSTMs的这个解释

在图中所示的门示例之一中,它们显示了遗忘门采用旧的单元状态值(等于先前的隐藏状态?)以及新的输入。

我的问题有两个:

1) 如果遗忘门应该调节对先前单元状态的记忆,为什么需要接受新的输入?不应该只在输入门中处理吗?

2) 如果输入门决定将哪些新信息添加到单元状态,为什么我们还要在输入门中输入先前的单元状态?那个规定不是应该已经在遗忘门发生了吗?

总的来说,这里似乎有一些多余的过程。

【问题讨论】:

    标签: machine-learning deep-learning neural-network lstm recurrent-neural-network


    【解决方案1】:

    以下是 LSTM 方程:

    当您查看这些方程式时,您需要在头脑中区分出门是如何计算(第 1 到 3 行)以及它们是如何应用(第 5 行和第 3 行)。 6)。它们被计算为隐藏状态h 的函数,但它们被应用于内存单元c

    它们显示遗忘门接收旧的单元状态值(等于先前的隐藏状态?)以及新的输入。

    让我们具体看一下第 2 行计算的forget 门。它的计算将当前输入x[t] 和最后一个隐藏状态h[t-1] 作为输入。 (请注意,您评论中的断言不正确:隐藏状态与记忆单元不同。)

    事实上,第 1 行到第 3 行中的所有 inputforgetoutput 门都统一计算为采用 x[t]h[t-1] 的函数。从广义上讲,这些门的值取决于当前输入是什么以及之前的状态是什么。

    直接回答您的问题:

    1) 如果遗忘门应该调节对先前单元状态的记忆,为什么需要接受新的输入?不应该只在输入门中处理吗?

    不要将门的计算方式应用方式混淆。看看第 5 行中如何使用f 遗忘门来执行您提到的调节。遗忘门仅适用于前一个存储单元c[t-1]。您可能知道,门只是浮点小数的向量,它被用作逐元素乘法。在这里,f 门将与c[t-1] 相乘,从而保留一些c[t-1]。在同一行 5 中,i 输入门对新的候选存储单元 c-tilde[t] 执行相同的操作。第 5 行的基本思想是新的记忆单元c[t]将一些旧记忆单元和一些新的候选记忆单元混合在一起。

    第 5 行是 LSTM 方程中最重要的一个。您可以在 GRU 方程中找到类似的线。

    2) 如果输入门决定将哪些新信息添加到单元状态,为什么我们还要在输入门中输入先前的单元状态?那个规定不是应该已经在遗忘门发生了吗?

    同样,您需要区分门是如何计算和如何应用的。输入门确实控制了向单元状态添加哪些新信息,正如我在上面写的那样,这是在第 5 行执行的。

    【讨论】:

      猜你喜欢
      • 2018-06-21
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多