长短期记忆网络(Long Short-Term Memory,LSTM)是一种特殊的循环神经网络(RNN),它能够学习长期依赖信息。传统的RNN在处理序列数据时存在梯度消失或梯度爆炸的问题,这使得它难以捕捉长距离的时间依赖关系。LSTM通过引入门控机制(gate mechanism)来有效地解决这一问题。
LSTM的核心思想是其细胞状态(cell state),以及三个门结构:输入门(input gate)、遗忘门(forget gate)和输出门(output gate)。这些门控制信息的流入流出,以及细胞状态的更新。
遗忘门:决定从细胞状态中丢弃什么信息。它查看前一个隐藏状态和当前的输入,输出一个在0到1之间的值给每个在细胞状态中的数字。1表示“完全保留这个信息”,而0表示“完全丢弃这个信息”。
输入门:确定哪些新的信息被存储在细胞状态中。它包含两部分:首先,一个称为输入门层的sigmoid函数决定哪些值我们将要更新;其次,一个tanh层创建一个新的候选值向量,可以被加到状态中。
细胞状态:细胞状态Ct是LSTM的核心,它在整个链上运行,只有轻微的线性交互,保持信息流畅。
输出门:决定从细胞状态中输出什么信息到下一个隐藏状态。首先,我们运行一个sigmoid函数来决定细胞状态的哪些部分将输出。然后,我们将细胞状态通过tanh(得到一个介于-1到1之间的值)并将它乘以sigmoid门的输出,以决定最终的输出。
LSTM通过这些门控结构来控制信息的流动,从而有效地解决了传统RNN在处理长期依赖时遇到的问题。这使得LSTM在许多序列建模任务中表现出色,如语言模型、机器翻译、语音识别等。
LSTM的一个变体是门控循环单元(Gated Recurrent Unit,GRU),它将输入门和遗忘门合并为一个更新门,并将细胞状态和隐藏状态合并为一个状态,从而简化了LSTM的结构。GRU在某些任务中可以提供与LSTM相似的性能,但参数更少,计算效率更高。