非监督特征学习与深度学习(十五)--------长短记忆(Long Short Term Memory,LSTM)

注:本文转载自https://github.com/exacity/simplified-deeplearning/blob/master/%E5%BE%AA%E7%8E%AF%E9%80%92%E5%BD%92%E7%BD%91%E7%BB%9C/LSTM.md
因为github上的makedown格式显示的不够完全,看的非常不方便,因此放到CSDN上比较好查阅学习。

LSTM

LSTM概述

  长短记忆(Long Short Term Memory,LSTM)是一种 RNN 特殊的类型,可以学习长期依赖信息,它引入了自循环的巧妙构思,以产生梯度长时间持续流动的路径,解决RNN梯度消失或爆炸的问题。在手写识别、机器翻译、语音识别等应用上,LSTM 都取得相当巨大的成功,并得到了广泛的使用。

  LSTM循环网络除了外部的RNN循环外,还具有内部的“LSTM细胞”自循环,和RNN相比LSTM每个单元有相同的输入和输出参数,但也有更多的参数和控制信息流流动的门控单元系统,门控单元包括输入门、输出门、遗忘门。模型图如下:
rnn
  如上图所示,查看 Xt X t 时刻的细胞状态,细胞彼此循环连接,代替一般循环网络中的普通的隐藏单元。这里使用人工的神经元计算输入特征,如果sigmoid输入门允许,它的值可以累加到状态。状态单元具有线性自循环,其权重由遗忘门控制。细胞的输出可以被输出门关闭。所有的门控单元都具有sigmoid非线性,而输入单元具有任意的压缩非线性。状态单元也可以作为门空单元的额外输入。

LSTM核心思想

LSTM的主要思想是采用一个叫做“细胞状态(state)”的通道来贯穿整个时间序列。

rnn

  通过精心设计“门”的结构来去除或增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。它们包含一个 sigmoid 神经网络层和一个逐元乘法操作。

                   rnn

  Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”。LSTM 拥有三个门,来保护和控制细胞状态。下面详细介绍LSTM三个门控。

遗忘门

  • “遗忘门”决定之前状态中的信息有多少应该舍弃。它会读取 ht1 h t − 1 xt x t 的内容, σ σ 符号代表Sigmoid函数,它会输出一个0到1之间的值。其中0代表舍弃之前细胞状态 Ct1 C t − 1 中的内容,1代表完全保留之前细胞状态 Ct1 C t − 1 中的内容。0、1之间的值代表部分保留之前细胞状态 Ct1 C t − 1 中的内容。

rnn

在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取 ht1 h t − 1 xt x t ,输出一个在 0 到 1 之间的数值给每个在细胞状态 Ct1 C t − 1 中的数字。1 表示“完全保留”,0 表示“完全舍弃”。

输入门

  • “输入门”决定什么样的信息保留在细胞状态 Ct C t 中,它会读取 ht1 h t − 1 xt x t 的内容, σ σ 符号代表Sigmoid函数,它会输出一个0到1之间的值。
  • 和“输入门”配合的还有另外一部分,即下图中计算tanh层的部分,这部分输入也是 ht1 h t − 1 xt x t ,不过采用tanh激活函数,将这部分标记为 c~(t) c ~ ( t ) ,称作为“候选状态”。
    rnn

细胞状态更新

  • Ct1 C t − 1 计算得到 Ct C t
  • 旧“细胞状态” Ct1 C t − 1 和“遗忘门”的结果进行计算,决定旧的“细胞状态”保留多少,忘记多少。接着“输入门” i(t) i ( t ) 和候选状态 c~(t) c ~ ( t ) 进行计算,将所得到的结果加入到“细胞状态”中,这表示新的输入信息有多少加入到“细胞状态中”。
    rnn

输出门

  • 和其他门计算一样,它会读取 ht1 h t − 1 xt x t 的内容,然后计算Sigmoid函数,得到“输出门”的值。接着把“细胞状态”通过tanh进行处理(得到一个在-1到1之间的值),并将它和输出门的结果相乘,最终得到确定输出的部分。
    rnn

参考

Understanding LSTM Networks

The Unreasonable Effectiveness of Recurrent Neural Networks

Sequence prediction using recurrent neural networks(LSTM) with TensorFlow

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值