前言
Understanding LSTM Networks
这篇博客应该是所有学习LSTM的同学必看而且一看就会的博客了。我看了无数遍,忘了无数遍,所以还是写一篇总结记录一下……
正文
先放一张LSTM的整体图:
看上去好复杂……但是不用担心,分解开看的话是非常清晰简单的。
核心思想
LSTM的key是cell state,即细胞状态,就是下图中的横线。它像一条传送带一样贯通整个网络,在每个time step都会进行信息或者叫状态的修改。
对cell state的三种操作
- Forget
- Input
- Output
1. Forget
图中表示的很清晰,不再赘述。
2. Input
可能这里叫increment更合适一点。有两部分组成,先看图:
- Input gate layer:即左边的 σ σ ,决定了要增加哪些量。
- Candidate values:即右边的 tanh t a n h ,决定了增量的具体值。
有了forget和input,就可以更新我们的Cell state了。见图:
3. Output
很显然,output的核心还是cell state。还是有两部分:
- Onput gate layer:由 ht−1 h t − 1 和 xt x t 共同决定。
- Candidate values:由Cell state决定。
需要注意的一点是,输出的 ht h t 被复制了两份,一份作为了当前time step的输出,另一份作为了下一time step的输入。