Advertisement

深度学习之LSTM原理研究

阅读量:

文章目录

  • LSTM来源
  • LSTM网络公式解释
  • 遗忘门的计算
  • 输入门的计算
  • 输出门的计算
  • 内部状态c_t的计算
  • 输出h_t的计算
  • 总结
  • 展望

LSTM来源

因为论文里面用到了LSTM网络,又不想看代码,遂记录一下LSTM网络的原理吧。下一篇研究一下GRU(LSTM网络的变体)
LSTM起源于RNN,RNN(recurrent nenural network),RNN神经网络的结构如下图所示:
其中x_t代表的是t时刻网络的输入,h_t代表的是隐藏层的状态,当前h_t的输出不仅和当前时刻的输入x_t有关,还和之前的输出h_{t-1}有关,因此简单的循环网络在t时刻的更新公式如下所示:
z_t=Uh_{t-1}+Wx_t+b,h_t=f(z_t)
其中z_t为隐藏层的净输入,f是非线性激活函数。
在这里插入图片描述
由于RNN保留了时间序列的上下文信息,所以可以通过过去的信号数据来推测当前信号的数据,理论上RNN可以保留之前所有时刻的信息。然而实际的使用过程中,由于当前的时刻的t输出可能依赖于k时刻的输入,随着时间间隔的增大,梯度会出现爆炸和消失的情况,因此,RNN神经网络很难建立长距离的依赖关系,即(long-term-dependencies),为了改善这个问题,从而提出了基于门控的循环神经网络:长短期记忆网络(long short-term memery network)LSTM

LSTM网络公式解释

首先需要知道,在LSTM网络中增加了一个internal-statec_t,其实就是cell-state.如下图所示,其内部增加了3个门控开关,分别是遗忘门f_t,输入门i_t,输出门o_t
数字电路中,开关有0和1两种状态,而LSTM网络中引入了门控机制,它的取值为0~1之间,用来控制传输数据的多少。
在这里插入图片描述
f_t:遗忘门,用来控制上一个时刻的内部状态c_{t-1}需要遗忘多少信息。
i_t:输入门,用来控制当前时刻的候选状态c'_t有多少信息需要保存。这里的候选状态c'_t是根据上一时刻的输出h_{t-1}和本次输入x_t来计算出来的。
o_t:输出门,顾名思义,当前时刻的内部状态c_t有多少信息可以输出给外部状态h_t
需要注意一下这里的 h_t其实就是RNN中的y_t。而LSTM中的c_t就是RNN中的h_t

下面我们看一下,以上三种门如何计算吧。

遗忘门的计算

在这里插入图片描述
遗忘门的结构中包含一个sigmod神经网络层(参数为W_f,b_f)。
将上一时刻的输出和当前时刻的输入拼接之后送入到sigmod网络层中,最终输出f_t,注意f_t是一个0~1的数值。

输入门的计算

和遗忘门是一样的,只不过给定的权重参数是不一样的。
在这里插入图片描述

输出门的计算

在这里插入图片描述

内部状态c_t的计算

内部状态C_t存储了到当前时刻为止的历史信息,f_t*C_{t-1},因为它需要确定之前的信息有多少需要丢弃。而i_t*C'_t,因为它需要确定新输入的信息有多少需要被保留下来。
得到了c_t之后,就可以把它传递给t+1时刻的LSTM网络中啦!
在这里插入图片描述
候选状态C'_t的计算公式如下:注意这里是通过一个tanh神经网络层
在这里插入图片描述

输出h_t的计算

万事俱备,只欠输出啦!当前时刻的输出h_t的计算公式如下:
在这里插入图片描述
需要注意的是这里的tanh是一个函数,不是一个神经网络层,上面候选状态的计算过程中tanh是一个神经网络层。
将当前时刻的内部状态c_t通过一个tanh函数,之后和遗忘门的数值o_t进行相乘,即可以得到当前时刻的输出,与此同时它也将作为下一时刻的输入信号。

总结

1.计算3个门控的值:取值为0-1之间。

2.遗忘门乘以上一时刻内部状态的c_{t-1}加上输入门乘以当前时刻的候选状态c'_t得到当前时刻的内部状态c_{t}

3.当前的时刻输出y_t:输出门和经过非线性变变化之后的c_t相乘。

LSTM中使用门控状态来控制传输状态,RNN网络中,h_{t-1}h_t之间的变化通常很大,而传递下来的c_t却改变的比较慢,所以我们认为RNN是一种short-term_memory。因为每个时刻的h_t都是不一样的。而LSTM中,通过记忆单元c可以捕捉某个关键信息,而且可以有能力将此关键信息保存一定的时间间隔。

展望

下一节将研究LSTM变体:GRU。
原理听起来比较简单,不过自己实现的时候还需要考虑LSTM的参数学习,如何训练上述公式中提到的参数,也是一大块知识要去啃呀。书中提到了BPTT:即随时间反向传播算法。有兴趣的同学可以看一看嗷。

参考书籍:

神经网络与深度学习-邱锡鹏

全部评论 (0)

还没有任何评论哟~