1. 简介
LSTM, Long-Short Term Memory RNN. 长短期记忆模型循环神经网络.
LSTM属于RNN, 是它的一种特殊实现.
2. Long-Short Term Memory
short term memory
对于当前的任务, 有时我们只需考虑最近的信息, 看下面的填空," the clouds are in the __sky__"
这是常识, 不需要更远的前文环境.
图2-1 short term memorylong term memory
再看一个填空的例子, 最后一句话中, 要填的很可能是一种语言, 但应该是哪种语言呢? 往前追溯到第一句话, 可由 France 推断出是 French.
"I grew up in France. ... .I speak fluent __French__."
这个例子中, 相关信息 和 需要它的点 之间的距离很远.
图2-2 long term
RNN在short-term上表现不错, 但long-term就不理想了, 所以有人提出了LSTM.
它被广泛地运用, 并在相当多的问题上表现得惊人的好!
图2-3 含有4个交互层的 LSTM重复模型
3. 组件
图3-1 LSTM网络及标注示意
LSTM的关键是细胞状态 .
顶部直线
穿过图表上方的水平直线, 直接在整个链上运行,只有一些小的线性相互作用, 让信息在流动的同时保持不变性。阀门
LSTM有能力向细胞状态中添加或移除信息, 这通过精细调整叫阀门的结构来实现.
阀门可以让信息有选择地通过. 它们由一个S形网络层和一个逐点乘法操作组成.
S形网络层输出[0,1]的一个数, 描述应该让每个组件通过多少信息. 0就是什么也不让通过
, 1就是每个信息都可以通过
.
一个LSTM含有三个这样的阀门, 来保护和控制细胞状态.忘记阀门层
用于决定从细胞状态中扔掉哪些信息, 这由一个叫做忘记阀门层的S形网络层实现.输入阀门层
在丢掉一些信息之后, 下一步要决定把哪些信息存储在细胞状态中.由两部分组成.- 决定要更新的值
- 创造新的候选值向量
计算细胞状态
将旧的细胞状态 Ct−1 更新为新的状态 Ct .输出阀门层
首先, 我们会运行一个s网络层, 用于决定细胞状态的哪些部分会被输出. 然后将细胞状态作 tanh运算, 得到[-1,1]的值,