长短时记忆网络(LSTM)

长短时记忆网络

循环神经网络很难训练的原因导致它的实际应用中很处理长距离的依赖。本文将介绍改进后的循环神经网络:长短时记忆网络(Long Short Term Memory Network, LSTM)

原始RNN的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。那么如果我们再增加一个状态,即c,让它来保存长期的状态,这就是长短时记忆网络

新增加的状态c,称为单元状态。我们把上图按照时间维度展开:

可以看到在t时刻,LSTM的输入有三个:当前时刻网络的输出值$x_t$、上一时刻KSTM的输出值$h_{t-1}$、以及上一时刻的单元状态$c_{t-1}$;LSTM的输出有两个:当前时刻LSTM输出值$h_t$、和当前时刻的单元状态$x_t$。注意$x、h、c$都是向量。

LSTM的关键,就是怎样控制长期状态c。在这里,LSTM的思路是使用三个控制开关。第一个开关,负责控制继续保存长期状态c;第二个开关,负责控制把即时状态输入到长期状态c;第三个开关,负责控制是否把长期状态c作为当前的LSTM的输出。三个开关的作用如下图所示:

接下来我们要描述一下,输出h和单元状态c的具体计算方法。

长短时记忆网络的前向计算

我们引入“门(gate)”的概念。门实际上就是一层全连接层,它的输入是一个向量,输出是一个0到1之间的实数向量。假设W是门的权重向量,$b$是偏置项,那么门可以表示为:

$$g(x)=\sigma (Wx+b)$$

猜你喜欢

转载自www.cnblogs.com/LXP-Never/p/10398531.html