基本原理

LSTM,长短期记忆 RNN,是 RNN 的变体,优点在于能学习长期依赖的信息,相当于有记忆功能。

LSTM是深度学习网络吗 lstm算法详解_网络层

LSTM 的关键就是 细胞状态(cell state),水平线在图上方贯穿运行。细胞状态类似于传送带,直接在整个链上运行,只有一些少量的线性交互。信息在上面流传比较容易保持不变。

LSTM是深度学习网络吗 lstm算法详解_深度学习_02

LSTM 有通过精心设计的称作为“门“的结构来 去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个按位的乘法操作。sigmoid 层输出 0 到 1 之间的数值,该数值控制着多少量的信息可以通过。0 代表不允许任何信息通过,1 代表任何信息都可通过。

LSTM是深度学习网络吗 lstm算法详解_神经网络_03

LSTM 拥有三个门,来保护和控制细胞状态。

首先是 遗忘门,它决定会从细胞状态中丢弃什么信息。LSTM是深度学习网络吗 lstm算法详解_LSTM是深度学习网络吗_04 表示完全舍弃,LSTM是深度学习网络吗 lstm算法详解_网络层_05

LSTM是深度学习网络吗 lstm算法详解_深度学习_06

然后是确定什么样的新信息被存放在细胞状态中。这里包含两个部分。第一,sigmoid 层称 “输入门层” 决定什么值我们将要更新。然后,一个 tanh 层创建一个新的候选值向量。LSTM是深度学习网络吗 lstm算法详解_深度学习_07

LSTM是深度学习网络吗 lstm算法详解_深度学习_08

然后就是对细胞状态进行更新。

LSTM是深度学习网络吗 lstm算法详解_深度学习_09

最终,需要确定输出值 LSTM是深度学习网络吗 lstm算法详解_深度学习_10。这个输出将会基于当前的细胞状态,但是也是一个过滤后的版本。首先,运行一个 sigmoid 层来确定隐藏状态的哪个部分将输出出去。接着,把细胞状态通过 tanh 进行处理(得到一个在 -1 到 1 之间的值)并将它和 sigmoid 门的输出相乘,最终输出该部分。

LSTM是深度学习网络吗 lstm算法详解_网络层_11

于是,整个传播过程由公式表示如下:
LSTM是深度学习网络吗 lstm算法详解_神经网络_12


参考:https://www.jianshu.com/p/9dc9f41f0b29