LSTM, Long-Short Term Memory RNN. 长短期记忆模型循环神经网络. LSTM属于RNN, 是它的一种特殊实现.
short term memory 对于当前的任务, 有时我们只需考虑最近的信息, 看下面的填空,
" the clouds are in the __sky__"这是常识, 不需要更远的前文环境. 图2-1 short term memory
long 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-1 LSTM网络及标注示意
LSTM的关键是细胞状态 .
顶部直线 穿过图表上方的水平直线, 直接在整个链上运行,只有一些小的线性相互作用, 让信息在流动的同时保持不变性。
阀门 LSTM有能力向细胞状态中添加或移除信息, 这通过精细调整叫阀门的结构来实现. 阀门可以让信息有选择地通过. 它们由一个S形网络层和一个逐点乘法操作组成. S形网络层输出[0,1]的一个数, 描述应该让每个组件通过多少信息. 0就是什么也不让通过, 1就是每个信息都可以通过. 一个LSTM含有三个这样的阀门, 来保护和控制细胞状态.
忘记阀门层 用于决定从细胞状态中扔掉哪些信息, 这由一个叫做忘记阀门层的S形网络层实现.
输入阀门层 在丢掉一些信息之后, 下一步要决定把哪些信息存储在细胞状态中.由两部分组成.
决定要更新的值创造新的候选值向量计算细胞状态 将旧的细胞状态 Ct−1 更新为新的状态 Ct .
输出阀门层 首先, 我们会运行一个s网络层, 用于决定细胞状态的哪些部分会被输出. 然后将细胞状态作 tanh运算, 得到[-1,1]的值,