本文是看了[译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络之后写的笔记。
1.Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息。
LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力!
所有 RNN 都具有一种重复神经网络模块的链式的形式。在标准的 RNN 中,这个重复的模块只有一个非常简单的结构,例如一个 tanh 层。
LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于 单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。
2.LSTM 的核心思想
LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。
细胞状态流转
门控结构

h_{t-1}
和x_t
,输出一个在 0 到 1 之间的数值给每个在细胞状态C_{t-1}
中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
(3)更新细胞状态
现在是更新旧细胞状态的时间了,C_{t-1}
更新为C_t
。前面的步骤已经决定了将会做什么,我们现在就是实际去完成。
我们把旧状态与f_t
相乘,丢弃掉我们确定需要丢弃的信息。接着加上i_t * \tilde{C}_t
。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。
在语言模型的例子中,这就是我们实际根据前面确定的目标,丢弃旧代词的性别信息并添加新的信息的地方。
最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。
