LSTM网络

1.LSTM网络

长短期记忆网络( Long Short-Term Memory Network , LSTM ) [Gers et al.,2000; Hochreiter et al., 1997] 是循环神经网络的一个变体,长短期记忆是指长的“短期记忆”,可以有效地解决简单循环神经网络的梯度爆炸或消失问题.

LSTM 网络的循环单元结构

2.LSTM核心思想

​ LSTM 的关键是 cell 状态,即记忆单元c。cell 状态的传输就像一条传送带,向量从整个 cell 中穿过,只是做了少量的线性操作,这种结构能很轻松地实现信息从整个 cell 中穿过而不做改变(这样就可以实现长时期地记忆保留)。在 LSTM 网络中,记忆单元c可以在某个时刻捕捉到某个关键信息,并有能力将此关键信息保存一定的时间间隔.记忆单元c中保存信息的生命周期要长于短期记忆,但又远远短于长期记忆,因此称为长短期记忆( Long Short-Term Memory )。

​ LSTM 也有能力向 cell 状态中添加或删除信息,这是由称为门(gates)的结构仔细控制的。可以选择性的让信息通过,它们由 sigmoid 神经网络层和逐点相乘实现。每个 LSTM 有三个这样的结构来实现控制信息(分别是 forget gate 遗忘门;input gate 输入门;output gate 输出门

3.逐步理解LSTM

3.1 遗忘门

遗忘门 f t f_t ft控制上一个时刻的内部状态 c t − 1 c_{t-1} ct1需要遗忘多少信息。它的输入是 h t − 1 h_{t-1} ht1 x t x_t xt,输出是一个数值都在 0~1 之间的向量(向量长度和 c t − 1 c_{t-1} ct1 一样),表示让 c t − 1 c_{t-1} ct1的各部分信息通过的比重,0 表示不让任何信息通过,1 表示让所有信息通过。

假设一个语言模型试图基于前面所有的词预测下一个单词,在这种情况下,每个 cell 状态都应该包含了当前主语的性别(保留信息),这样接下来我们才能正确使用代词。但是当我们又开始描述一个新的主语时,就应该把旧主语的性别给忘了才对(忘记信息)。

3.2 输入门

输入门 i t i_t it控制当前时刻的候选状态 c ~ \widetilde{c} c 有多少信息需要保存。实现这个需要包括两个步骤:首先,一个叫做 input gate layer 的 sigmoid 层决定哪些信息需要更新。另一个 t a n h tanh tanh层创建一个新的候选状态向量 c ~ \widetilde{c} c 。最后,我们把这两个部分联合起来对 cell 状态进行更新。

在我们的语言模型的例子中,我们想把新的主语性别信息添加到 cell 状态中,替换掉老的状态信息。有了上述的结构,我们就能够更新 cell 状态了,即把 c t − 1 c_{t-1} ct1更新为 c t c_t ct。从结构图中应该能一目了然,首先我们把旧的状态 c t − 1 c_{t-1} ct1 f t f_t ft相乘,把一些不想保留的信息忘掉,然后加上 i t ∗ c ~ t i_t*\widetilde{c}_t itc t。这部分信息就是我们要添加的新内容。

3.3 输出门

输出门 o t o_t ot控制当前时刻的内部状态 c t c_t ct有多少信息需要输出给外部状态 h t h_t ht。这个输出主要是依赖于 cell 状态 C t C_t Ct,但是是经过筛选的版本。首先,经过一个 sigmoid 层,它决定$ C_t $中的哪些部分将会被输出。接着,我们把 $C_t 通 过 一 个 通过一个 tanh 层 ( 把 数 值 归 一 化 到 − 1 和 1 之 间 ) , 然 后 把 层(把数值归一化到 - 1 和 1 之间),然后把 11 tanh $层的输出和 simoid 层计算出来的权重相乘,这样就得到了最后的输出结果。

在语言模型例子中,假设我们的模型刚刚接触了一个代词,接下来可能要输出一个动词,这个输出可能就和代词的信息有关了。比如说,这个动词应该采用单数形式还是复数形式,那么我们就得把刚学到的和代词相关的信息都加入到 cell 状态中来,才能够进行正确的预测。


📒tips:一般在深度网络参数学习时,参数初始化的值一般都比较小.但是在训练 LSTM 网络时,过小的值会使得遗忘门的值比较小.这意味着前一时刻的信息大部分都丢失了,这样网络很难捕捉到长距离的依赖信息.并且相邻时间间隔的梯度会非常小,这会导致梯度弥散问题.因此遗忘的参数初始值一般都设得比较大,其偏置向量 𝒄 𝑔 设为 1 或 2 。


推荐阅读:
1.神经网络与深度学习
2.Understanding LSTM Networks

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值