目录
LSTM模型
LSTM结构图
LSTM的核心思想
细胞状态
遗忘门
输入门
输出门
RNN模型
LRNN
LSTM模型
什么是LSTM模型
LSTM (Long Short-Term Memory)也称长短时记忆结构,它是传统RNN的变体,与经典RNN相比能够有效捕捉长序列之间的语义关联,缓解梯度消失或爆炸现象.同时LSTM的结构更复杂,它的核心结构可以分为四个部分去解析:
●遗忘门
●输入门
●细胞状态
●输出门
LSTMs也具有这种链式结构,但是它的重复单元不同于标准RNN网络里的单元只有一个网络层,它的内部有四个网络层。LSTMs的结构如下图所示。
LSTM结构图
LSTM之所以能够解决RNN的长期依赖问题,是因为LSTM引入了门(gate)机制用于控制特征的流通和损失。可以做到在tn时刻提取到ti时刻的特征。
在解释LSTMs的详细结构时先定义一下图中各个符号的含义,符号包括下面几种:
每个黄色方框表示一个神经网络层,由权值,偏置以及激活函数组成;每个粉色圆圈表示元素级别操作;箭头表示向量流向;相交的箭头表示向量的拼接;分叉的箭头表示向量的复制。
LSTM的核心思想
相比于原始的RNN的隐层(hidden state), LSTM增加了一个细胞状态(cell state),我下面把lstm中间一个时刻t的输入输出标出来:
我们可以先把中间那一坨遮起来,看一下LSTM在t时刻的输入与输出,首先,输入有三个:细胞状态Ct-1,隐层状态ht-1,t时刻输入向量Xt,而输出有两个:细胞状态Ct,隐层状态ht,其中ht 还作为t时刻的输出。
细胞状态
LSTMs的核心是细胞状态,用贯穿细胞的水平线表示。细胞状态像传送带一样。它贯穿整个细胞却只有很少的分支,这样能保证信息不变的流过整个RNNs。细胞状态如下图所示:
LSTM网络能通过一种被称为门的结构对细胞状态进行删除或者添加信息。门能够有选择性的决定让哪些信息通过。其实门的结构很简单,就是一个sigmoid层和一个点乘操作的组合。如下图所示:
因为sigmoid层的输出是0-1的值,这代表有多少信息能够流过sigmoid层。0表示都不能通过,1表示都能通过。
前面提到LSTM由三个门来控制细胞状态,这三个门分别称为忘记门、输入门和输出门。下面一个一个的来讲述。
遗忘门
LSTM的第一步就是决定细胞状态需要丢弃哪些信息。这部分操作是通过一个称为忘记门的sigmoid单元来处理的。它通过查看Xt和ht-1信息来输出一个0-1之间的向量,该向量里面的0-1值表示细胞状态Ct-1中的哪些信息保留或丢弃多少。0表示不保留,1表示都保留。忘记门如下图所示。
首先说一下[ h t − 1 , x t ] 这个东西就代表把两个向量连接起来(操作与numpy.concatenate相同)
输入门
下一步是决定给细胞状态添加哪些新的信息。这一步又分为两个步骤,
首先,利用ht-1和Xt通过一个称为输入门的操作来决定更新哪些信息。然后利用ht-1和Xt通过一个tanh层得到新的候选细胞信息Ct~,这些信息可能会被更新到细胞信息中。这两步描述如下图所示。
下面将更新旧的细胞信息Ct-1,变为新的细胞信息Ct。更新的规则就是通过忘记门选择忘记旧细胞信息的一部分,通过输入门选择添加候选细胞信息Ct~的一部分得到新的细胞信息Ct。更新操作如下图所示
输出门
更新完细胞状态后需要根据输入的ht-1和Xt来判断输出细胞的哪些状态特征,这里需要将输入经过一个称为输出门的sigmoid层得到判断条件,然后将细胞状态经过tanh层得到一个-1~1之间值的向量,该向量与输出门得到的判断条件相乘就得到了最终该RNN单元的输出。该步骤如下图所示:
RNN模型
LRNN
【LSTM长短期记忆网络】3D模型一目了然,带你领略算法背后的逻辑_哔哩哔哩_bilibili