长短期记忆网络(LSTM)学习笔记

0 前言

  循环神经网络工作的关键点就是使用历史信息来帮助当前的决策,但同时也带来更大的技术挑战-长期依赖问题(long-term dependencies)。长短期记忆网络(Long Short Term Memory, LSTM)的设计就是为了解决这个问题。

1 LSTM与RNN的异同

  如果对RNN的结构及其实现方式不太了解的话,可以先看看我前一篇关于RNN的学习笔记:循环神经网络(RNN)学习笔记 。LSTM是RNN的一种变体,其内部结构相较于RNN多了很多结构。下图是RNN的结构:

在这里插入图片描述

在RNN中,只有一个tanh层,即输入 x t x_t xt与上一时刻的状态 h t − 1 h_{t-1} ht1组成本时刻的RNN层的输入: [ x t , h t − 1 ] [x_t, h_{t-1}] [xt,ht1]。运算之后的结果经过激励函数 t a n h = e x − e − x e x + e − x tanh=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh=ex+exexex,得到下一时刻的状态 h t h_t ht。与之相对应的,LSTM中的结构就比较复杂了:

在这里插入图片描述

不同于单一的神经网络层,这里一共有四个,以一种特殊的方式进行交互,但是其基本原理与RNN是一样的,输入进入LSTM层后与上一时刻的状态进行运算,得到本时刻的状态输入到下一时刻进行运算。无非是整个的运算过程变得复杂了而已。

2 LSTM结构细节

2.1 细胞状态

在这里插入图片描述

最上面这条线表示细胞状态。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。

从计算流程上看,它先与遗忘门的输出进行乘法运算,然后再加上输入门的输出。这种运算方式理解起来就是将上一时刻的一些信息进行压缩或更新,然后再加上本时刻的信息,通过这种方式来记住长期的信息。

2.2 遗忘门

在这里插入图片描述

  遗忘门是决定从细胞状态中丢弃什么东西,它首先连接$[h_{t-1}, x_t]$经过sigmoid激励函数得到一个在0-1之间的数字给每个细胞状态$C_{t-1}$里的数字,其中1表示“完全保留”;而0表示“完全舍弃”。
2.3 输入门

在这里插入图片描述
在这里插入图片描述

  输入门是决定将新的信息放在细胞状态里。它首先经过一个tanh层,得到当前信息的表示;同时也经过一个Sigmoid层来计算出新的信息中那些是重要的,那些是不重要的,然后与tanh层的输出进行相乘再加入到细胞状态中。这个过程简言之就是将当前的新信息加权到细胞状态中。经过这些运算就可以得到当前时刻的细胞状态$C_t$。
2.4 输出门

在这里插入图片描述

  输出门则是决定本时刻的输出状态。它是先将当前时刻的细胞状态$C_t$,经过一个tanh层激励,再由$[x_t, h_{t-1}]$经过一个Sigmoid层得到更新的权值,两者进行相乘得到。其结果就是当前细胞状态经过tanh激励后加权得到当前时刻的状态。

3 总结

  在一个lstm cell中,所有的sigmoid层都是在做一个权值的计算。在遗忘门中表示遗忘的程度,在输入门中表示当前信息在细胞状态中的更新程度,而在输出门中则作为细胞状态激励后的输出层度。

4 LSTM的变体

4.1 Adding “Peephole Connections”

  这是Gers & Schmidhuber (2000)提出来的一种LSTM的变体,他将细胞状态输入每个Sigmoid之前,与 x t , h t − 1 x_t, h_{t-1} xt,ht1共同影响权值的生成。这个图中是将其加到所有的门中,而在论文中只将其加入到部分门里。

在这里插入图片描述

4.2 耦合遗忘门和输入门

  相较于正常的LSTM,在这个变体中,输入门的输出信息加入到细胞状态中的权值由遗忘门的输出得到 1 − f t 1-f_t 1ft。这个式子表示我们遗忘多少信息,就更新多少信息

在这里插入图片描述

4.3 GRU(Gated Recurrent Unit)

  有个更加有意思的LSTM变体是Cho, et al. (2014)提出来的。他不仅将遗忘门和输入门统一为更新门,而且将状态h和细胞状态C也一起合并了,从整个外观上看比较像简单的RNN结构了。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。

在这里插入图片描述

参考资料

Understanding LSTM Networks
理解 LSTM 网络
LSTMs/#disqus_thread)
理解 LSTM 网络
理解LSTM

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值