长短期记忆 (Long Short-Term Memory, LSTM)


LSTM是循环神经网络(RNN)的一种特殊变种,它可以更好地捕获序列中的长距离连接。
与GRU的比较:
- GRU使用了一个更新门和一个重置门。
- LSTM使用了三个门:更新门、遗忘门和输出门,这使得LSTM更复杂但也更强大。
LSTM的原理
- 候选内存:
$$ \begin{equation}\tilde{c}^t = \tanh(W_c[a^{t-1}, x^t] + b)\end{equation} $$
- 更新门:
$$ \begin{equation}\Gamma_u = \sigma(W_u [ a^{t-1}, x^t] + b_u)\end{equation} $$
- 遗忘门:
$$ \begin{equation}\Gamma_f = \sigma(W_f [a^{t-1}, x^t] + b_f)\end{equation} $$
- 输出门:
$$ \begin{equation}\Gamma_o = \sigma(W_o [ a^{t-1}, x^t] + b_o)\end{equation} $$
- 内存单元更新:
$$ \begin{equation}c^t = \Gamma_u * \tilde{c}^t + \Gamma_f * c^{t-1}\end{equation} $$
- 输出值:
$$ \begin{equation}a^t = \Gamma_o * \tanh(c^t)\end{equation} $$
LSTM的特点
- LSTM 有能力”记住”或”遗忘”信息,这是通过遗忘门实现的。
- LSTM 更复杂但也更强大,它们可以捕获长距离依赖关系。
- LSTM 的设计目的是为了避免长序列中的梯度消失问题。
LSTM的变种
- 窥视孔连接(Peephole Connection): 在计算门值时,考虑前一个内存单元值 ct-1。这意味着门值不仅仅依赖于 at-1 和 xt,还依赖于之前的内存值。
GRU与LSTM的选择:
- LSTM在历史上更早,GRU是LSTM的简化版本。
- 在不同的问题上,这两种方法都有其优势。
- GRU更简单,可能更容易扩展到更大的模型,并且计算速度更快。
- LSTM更强大,更灵活,并且在历史上更为验证。
- 大多数人默认首选LSTM,但随着GRU在许多应用中的成功,也获得了很大的关注。