RNN中的LSTM Cell模块详解

**

1. LSTM Cell的结构如下:

RNN中的LSTM Cell模块详解_第1张图片

从整体上看:LSTM有三个输入:当前时刻网络的输入值x(t), 上一时刻LSTM的短时输出状态h(t-1), 以及上一时刻的长时输出状态c(t-1);三个输出:当前时刻网络的输出值y(t), 当前时刻LSTM短时输出状态h(t), 和当前时刻的长时状态c(t)。

从局部上看,我们可以看到LSTM有三个门,分别为遗忘门,输入门和输出门。门是一种让信息选择式通过的方法,从图中也可以看到,这里其实是一个sigmoid神经网络层和信息的一个乘法操作,sigmoid可以让信号输出控制在0到1,这样通过一个乘法操作就能决定一个信息需要留下多少内容。接下来我们分别介绍下这三个门,一起学下这三个门是如何保存和更新长期状态的。

首先,最左边是一个遗忘门,遗忘门决定了哪些信息可以保留下来,哪些信息会遗忘掉。f(t)是x(t)和h(t-1)经过全连接层以及sigmoid层后的结果,它与c(t-1)相乘决定什么样的信息该保留,什么样的信息要遗忘。
其中LSTM中的公式如下:
RNN中的LSTM Cell模块详解_第2张图片
接下来就是一个输入门,输入门由一个常规的RNN循环神经元g(t)和一个控制信息取舍的i(t)组成,g(t)跟一个常规的RNN神经元一样,输入为当前网络的输入值和上一个时刻的状态,经过一个全连接层和tanh激活函数,最后得到g(t)。g(t)的取舍收到i(t)的控制,i(t)跟遗忘门中的f(t),以及后面输出门中的o(t)一样。输入门的输出和遗忘门的输出叠加到一起,成为当前时刻长时状态c(t)。
最后,长时状态c(t)经过tanh激活后经输出门控制函数o(t)的取舍下,输出成为当前网络的输出值和当前时刻的短时状态h(t)。

整个网络就是这样,连起来用就如下图:
RNN中的LSTM Cell模块详解_第3张图片

你可能感兴趣的:(深度学习,LSTM,RNN)