RNN神经网络-LSTM模型结构
1. RNN神经网络模型原理2. RNN神经网络模型的不同结构3. RNN神经网络-LSTM模型结构
预备知识:
1. 前言
之前我们对RNN模型做了总结。由于RNN也有梯度消失的问题,因此很难处理长序列的数据。大牛们对RNN做了改进,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用。下面我们就对LSTM模型做一个总结。
2. LSTM模型结构
我们先看下LSTM的整体结构。
由于RNN梯度消失的问题,大牛们对于序列索引位置t的隐藏结构做了改进,可以说通过一些技巧让隐藏结构复杂了起来,来避免梯度消失的问题,这样的特殊RNN就是我们的LSTM。由于LSTM有很多的变种,这里我们以最常见的LSTM为例讲述。
2.1 细胞状态
在每个序列索引位置t时刻向前传播的除了和RNN一样的隐藏状态 h t ht ht,还多了另一个隐藏状态,如图中上面的长横线。这个隐藏状态我们一般称为细胞状态(Cell State),记为 C t Ct Ct。如下图所示:
2.2 LSTM之遗忘门
遗忘门(forget gate)顾名思义,是控制是否遗忘的,在LSTM中即以一定的概率控制是否遗忘上一层的隐藏细胞状态,并且以某种方式避免梯度随时间反向传播时引发的梯度消失和梯度爆炸的问题。遗忘门子结构如下图所示:

图中输入的有上一序列的隐藏状态 h t − 1 h_{t−1} ht−1和本序列数据 x t x_t xt,通过一个激活函数,一般是 s i g m o i d sigmoid sigmoid,得到遗忘门的输出 f t f_t ft。由于 s i g m o i d sigmoid sigmoid的输出 f t f_t ft在[0,1]之间,因此这里的输出ft代表了遗忘上一层隐藏细胞状态的概率。用数学表达式即为:
其中 W f W_f Wf, U f U_f Uf, b f b_f bf为线性关系的系数和偏倚,和RNN中的类似。σ为sigmoid激活函数。
2.3 LSTM之输入门
输入门(input gate)负责处理当前序列位置的输入,用于控制当前输入数据流入记忆单元的多少,即有多少输入信息可以保存到细胞状态中。它的子结构如下图:
从图中可以看到输入门由两部分组成,第一部分使用了 s i g m o i d sigmoid sigmoid激活函数,输出为it第二部分使用了 t a n h tanh tanh激活函数,输出为 a t a_t at,两者的结果后面会相乘再去更新细胞状态。用数学表达式即为:
其中 W i W_i Wi, U i U_i Ui, b i b_i bi, W a W_a Wa, U a U_a Ua, b a b_a ba为线性关系的系数和偏倚,和RNN中的类似。σ为sigmoid激活函数。
2.4 LSTM之细胞状态更新
在研究LSTM输出门之前,我们要先看看LSTM之细胞状态。前面的遗忘门和输入门的结果都会作用于细胞状态 C t C_t Ct。我们来看看从细胞状态 C t − 1 C_{t−1} Ct−1如何得到 C t C_t Ct。如下图所示:
细胞状态 C t C_t Ct由两部分组成,第一部分是 C t − 1 C_{t−1} Ct−1和遗忘门输出ft的乘积,第二部分是输入门的 i t i_t it和 a t a_t at的乘积,即:
2.5 LSTM之输出门
有了新的隐藏细胞状态 C t C_t Ct,我们就可以来看输出门了,子结构如下:
从图中可以看出,隐藏状态ht的更新由两部分组成,第一部分是 o t o_t ot,它由上一序列的隐藏状态 h t − 1 h_{t−1} ht−1和本序列数据 x t x_t xt,以及激活函数 s i g m o i d sigmoid sigmoid得到,第二部分由隐藏状态 C t C_t Ct和 t a n h tanh tanh激活函数组成, 即:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)