文章目录

  • 0 前言
  • 1 LSTM与RNN的异同
  • 2 LSTM结构细节
  • 2.1 细胞状态
  • 2.2 遗忘门
  • 2.3 输入门
  • 2.4 输出门
  • 3 总结
  • 4 LSTM的变体
  • 4.1 Adding “Peephole Connections”
  • 4.2 耦合遗忘门和输入门
  • 4.3 GRU(Gated Recurrent Unit)
  • 参考资料


0 前言

  循环神经网络工作的关键点就是使用历史信息来帮助当前的决策,但同时也带来更大的技术挑战-长期依赖问题(long-term dependencies)。长短期记忆网络(Long Short Term Memory, LSTM)的设计就是为了解决这个问题。

1 LSTM与RNN的异同

  如果对RNN的结构及其实现方式不太了解的话,可以先看看我前一篇关于RNN的学习笔记:循环神经网络(RNN)学习笔记 。LSTM是RNN的一种变体,其内部结构相较于RNN多了很多结构。下图是RNN的结构:



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料

在RNN中,只有一个tanh层,即输入基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料_02与上一时刻的状态基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_03组成本时刻的RNN层的输入:基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料_04。运算之后的结果经过激励函数基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料_05,得到下一时刻的状态基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_权值_06。与之相对应的,LSTM中的结构就比较复杂了:



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料_07

不同于单一的神经网络层,这里一共有四个,以一种特殊的方式进行交互,但是其基本原理与RNN是一样的,输入进入LSTM层后与上一时刻的状态进行运算,得到本时刻的状态输入到下一时刻进行运算。无非是整个的运算过程变得复杂了而已。

2 LSTM结构细节

2.1 细胞状态



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料_08

最上面这条线表示细胞状态。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。

从计算流程上看,它先与遗忘门的输出进行乘法运算,然后再加上输入门的输出。这种运算方式理解起来就是将上一时刻的一些信息进行压缩或更新,然后再加上本时刻的信息,通过这种方式来记住长期的信息。

2.2 遗忘门



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_权值_09

  遗忘门是决定从细胞状态中丢弃什么东西,它首先连接$[h_{t-1}, x_t]$经过sigmoid激励函数得到一个在0-1之间的数字给每个细胞状态$C_{t-1}$里的数字,其中1表示“完全保留”;而0表示“完全舍弃”。

2.3 输入门



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_10


基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_11

  输入门是决定将新的信息放在细胞状态里。它首先经过一个tanh层,得到当前信息的表示;同时也经过一个Sigmoid层来计算出新的信息中那些是重要的,那些是不重要的,然后与tanh层的输出进行相乘再加入到细胞状态中。这个过程简言之就是将当前的新信息加权到细胞状态中。经过这些运算就可以得到当前时刻的细胞状态$C_t$。

2.4 输出门



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_12

  输出门则是决定本时刻的输出状态。它是先将当前时刻的细胞状态$C_t$,经过一个tanh层激励,再由$[x_t, h_{t-1}]$经过一个Sigmoid层得到更新的权值,两者进行相乘得到。其结果就是当前细胞状态经过tanh激励后加权得到当前时刻的状态。

3 总结

  在一个lstm cell中,所有的sigmoid层都是在做一个权值的计算。在遗忘门中表示遗忘的程度,在输入门中表示当前信息在细胞状态中的更新程度,而在输出门中则作为细胞状态激励后的输出层度。

4 LSTM的变体

4.1 Adding “Peephole Connections”

  这是Gers & Schmidhuber (2000)提出来的一种LSTM的变体,他将细胞状态输入每个Sigmoid之前,与基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_权值_13共同影响权值的生成。这个图中是将其加到所有的门中,而在论文中只将其加入到部分门里。



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_14

4.2 耦合遗忘门和输入门

基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_15。这个式子表示我们遗忘多少信息,就更新多少信息



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_循环神经网络_16

4.3 GRU(Gated Recurrent Unit)

  有个更加有意思的LSTM变体是Cho, et al. (2014)提出来的。他不仅将遗忘门和输入门统一为更新门,而且将状态h和细胞状态C也一起合并了,从整个外观上看比较像简单的RNN结构了。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。



基于LSTM长短期记忆网络的多输入多输出 长短期记忆网络模型_参考资料_17

参考资料

Understanding LSTM Networks 理解 LSTM 网络 LSTMs/#disqus_thread)
理解 LSTM 网络理解LSTM