什么是长短期记忆网络?

长短期记忆网络(Long Short-Term Memory, LSTM)是一种特殊的循环神经网络,能够学习长期依赖关系。它通过门控机制来控制信息的流动,避免遗忘重要的远期信息。
LSTM网络的主要特征是:

  1. 遗忘门(Forget Gate):控制上一时刻细胞状态的遗忘程度,一般使用Sigmoid激活函数。
  2. 输入门(Input Gate):控制当前时刻输入到记忆单元的程度,一般使用Sigmoid激活函数。
  3. 输出门(Output Gate):控制记忆单元输出的程度,一般使用Sigmoid激活函数。
  4. 更新门(Update Gate): 将遗忘门和输入门输出相乘作为记忆单元层的输入,一般使用Tanh激活函数。
  5. 记忆单元(Memory Cell):记录长期信息,一般使用Tanh激活函数。

LSTM的工作流程是:

  1. 定义LSTM输入xt及隐藏层ht-1和Ct-1(上一时刻隐藏层输出和记忆单元)
  2. 计算遗忘门:ft = σ(Wf · [ht-1, xt] + bf) (σ为Sigmoid激活函数)
  3. 计算输入门:it = σ(Wi · [ht-1, xt] + bi)
  4. 计算更新门:ut = tanh(Wu · [ht-1, xt] + bu)
  5. 更新记忆单元:Ct = ft * Ct-1 + it * ut
  6. 计算输出门:ot = σ(Wo · [ht-1, xt] + bo)
  7. 计算当前隐藏层:ht = ot * tanh(Ct)
  8. 重复步骤1-7直到序列结束

LSTM通过引入门控机制,实现了对信息的过滤与控制,解决了Vanilla RNN中的梯度消失问题,能够捕捉更长期的信息与依赖关系。它在许多任务上都获得了较好效果,是目前最流行的RNN模型之一。
理解LSTM有助于我们设计更加强大的序列学习模型。LSTM与其他RNN模型一起,在NLP与语音识别领域有广泛应用。