RNN 的主要限制 在于它无法记住很长的序列,并且会陷入梯度消失的问题。
什么是梯度消失问题?
当添加更多具有某些激活函数的层时,神经网络中损失函数的梯度趋近于零,这使得网络难以训练。

长短期记忆(LSTM)
LSTM 可以解决梯度消失问题。它通过忽略(忘记)网络中无用的数据/信息来实现这一点。如果没有来自其他输入(之前的句子单词)的有用信息,LSTM 就会忘记这些数据。当新的信息出现时,网络会决定哪些信息应该被忽略,哪些信息应该被记住。
LSTM 架构
让我们看看 RNN 和 LSTM 之间的区别。
在 RNN 中,我们有一个非常简单的结构,只有一个激活函数(tanh)。

在 LSTM 中,我们拥有多个组件,而不仅仅是具有单一激活功能的简单网络,从而使网络能够忘记和记住信息。

使用的符号
LSTM 有 4 个不同的组成部分,分别是
- 单元状态(记忆单元)
- 忘记门
- 输入门
- 输出门
让我们逐一了解这些组件。
1. 单元状态(记忆单元)
它是 LSTM 的第一个组件,贯穿整个 LSTM 单元。可以把它想象成一条传送带。

细胞状态负责记忆和遗忘。它基于输入的上下文。这意味着一些先前的信息应该被记住,而一些则应该被遗忘,一些新的信息应该被添加到记忆中。第一个操作(X )是逐点运算,它只是将细胞状态乘以一个[-1, 0, 1]的数组。乘以0的信息将被LSTM遗忘。另一个操作是(+),它负责向状态添加一些新的信息。
2. 忘记门
顾名思义,遗忘 LSTM 门决定哪些信息应该被遗忘。S 型函数层用于做出这一决定。该 S 型函数层被称为"遗忘门层"。

它对h(t-1) 和x(t) 进行点积运算,并在 sigmoid 层的帮助下,为单元状态***C(t-1)***中的每个数字输出一个介于 0 和 1 之间的数字。如果输出为"1",则表示我们将保留它。"0"表示完全忘记它。
3. 输入门
输入门向 LSTM 提供新信息,并决定是否将该新信息存储在单元状态中。

这分为三个部分-
- 一个S 型函数层决定需要更新的值。该层被称为"输入门层"。
- tanh 激活函数层创建一个新的候选值向量Č(t),可以添加到状态中。
- 然后我们结合这两个输出,***i(t) * Č(t),***并更新单元状态。
新的细胞状态***碳原子数(t)***是通过将遗忘门和输入门的输出相加而得到的。

4.输出门
LSTM 单元的输出取决于新的单元状态。

首先,一个 S 型函数层决定要输出单元状态的哪些部分。然后,在单元状态上使用一个tanh层将值压缩到 -1 到 1 之间,最后乘以 S 型函数门的输出。
LSTM 实际应用
现在我们已经了解了 LSTM 的架构和组件,让我们看看它的实际作用。

结论
正如文章中提到的,LSTM 可以通过遗忘和记忆信息来延长信息的保存时间。这由 4 个组件实现------一个单元状态和 3 个门控。它还能克服梯度消失问题,而这正是 RNN 的一个局限性。这使得 LSTM 比普通 RNN 更具优势。我们还了解了 LSTM 的架构和工作原理。
