LSTM
长短期记忆(Long short-term memory, LSTM)是一种特殊的 RNN
下图中,左边是原始的 RNN,右边是 LSTM:
其中,
具体实现
首先,LSTM 内部会计算下面四个变量
其中,
接下来,按顺序进行下面的计算,主要分为 3 个阶段
- 忘记阶段:对上一个节点传进来的输入进行选择性忘记。简单来说就是会 “忘记不重要的,记住重要的”。具体实现是把
作为门控,控制上个阶段的 有哪些被遗忘。 - 选择记忆阶段。这个阶段将这个阶段的输入有选择性地进行“记忆”。门控为
上面两个阶段合起来得到了新的 - 输出阶段。这个阶段将决定哪些将会被当成当前状态的输出。主要是通过
来进行控制的。并且还对上一阶段得到的 进行了放缩(通过一个tanh激活函数进行变化)
与普通RNN类似,输出往往最终也是通过 变化得到
参考:人人都能看懂的LSTM - 知乎 (zhihu.com) (台大李宏毅教授的深度学习课的笔记)