Long Short-Term Memory(长短期记忆网络)

在这篇文章中将介绍的是RNN的一个“升级”模型,LSTM。LSTM可以说是复杂版本的RNN,相较于simple-RNN,LSTM可以有效地避免了梯度消失的问题,并且在RNN的基础上可以有更长的记忆。

1.LSTM的模型结构

LSTM与simple-RNN的区别更多的在于,LSTM引入了门的一个机制的设定,从而导致了LSTM有4个学习参数(simple-RNN只有一个)。

上图所展示的便是LSTM和simple-RNN的大致模型图。 

在LSTM中,一共有3个门,忘记门(forget gate),输入门(input gate),以及输出门(output gate)。而这些门的主要作用便是有选择的让上一次的数据通过。

1.1 门

在LSTM中,我们讲到共有3个门,分别是忘记门,输入门,和输出门。

  上图所展示的是LSTM中三个门对应的公式及其模型图。

我们设I_t,F_t,O_t分别对应输入门,忘记门以及输出门在t时刻的输出。我们可以看到三个门输入的参数都是input X_t以及上一层的Hidden state H_(t-1)。并且我们对每一个门,每一个X_t和H_(t-1)都设定了相应的权重W。(实际中,我们会对X_t和H_(t-1)进行结合变成一个矩阵,那么对应到的每一个门的参数权重W就只有一个,因此三个门有三个W)。

上图所展示的是忘记门的F_t运算图。

讲完忘记门的具体模型图,我们这边要就用数据实际的来讲解一下,忘记门是如何进行有选择的忘记的(以忘记门为例,其他两个门都一样)。过程也很简单,因为我们F_t是经过sigmoid函数得到的,因此对应的矩阵的值便在0-1之间,所以当矩阵中某一个值为0时,那么做数组元素依次相乘时,最后的结果便是0(不通过)。同理,当值为1时,那么做数组元素依次相乘时,最后的结果便是1(通过)。

 上图所展示的是忘记门的一个数据选择。

1.2候选记忆单元

在LSTM中我们还加入了候选记忆单元这么一个部分,主要作用便是将X_t和H_(t-1)进行结合,产生C_t波浪(数学符号打不出来),这里我们也设定了一组W矩阵作为学习的参数。

  上图所展示的是C_t波浪的数学公式。

 1.3记忆单元

记忆单元产生结果便是LSTM的一个输出C_t。在1.1和1.2中,我们分别介绍了忘记门,输入门,已经候选记忆单元这三个部分,所以记忆单元便是由这三个所组成。

   上图所展示的是LSTM中记忆单元对应的公式及其模型图。

我们可以看到加号的前一部分是忘记门和C_(t-1)做elementwise multiplication(数组元素依次相乘),这个作用便是对上一个的输出C_(t-1)的数据进行选择性的保留,加号的前一部分是输入门和C_t波浪做elementwise multiplication(数组元素依次相乘),这个作用便是对C_t波浪的数据进行选择性的保留。随后两个数据进行相加得到最后的C_t。

1.4隐状态

LSTM的隐状态和simple-RNN的隐变量相识,都是利用上一层的隐藏状态和这一层的输入进行结合,生成下一层的隐藏状态。

   上图所展示的是LSTM中隐状态对应的公式及其模型图。

相较于simple-RNN,这里H_t的产生并不相同。我们可以看到它是将已经生成的C_t,先做激活运算,再与输出门 O_t做elementwise multiplication(数组元素依次相乘),得到最后的H_t。

1.5总结

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值