LSTM Networks

长短期记忆网络(通常称为“ LSTM”)是一种特殊的RNN,能够学习长期依赖关系。 它们是由Hochreiter&Schmidhuber(1997)引入的,并在随后的工作中被许多人提炼和推广。1它们在处理各种各样的问题上表现出色,现已被广泛使用。

LSTM被明确设计为避免长期依赖问题。 长时间记住信息实际上是他们的默认行为,而不是他们努力学习的东西!

所有的递归神经网络都具有神经网络的重复模块链的形式。 在标准RNN中,此重复模块将具有非常简单的结构,例如单个tanh层。

在这里插入图片描述

LSTM也具有这种链状结构,但是重复模块具有不同的结构。 而不是只有一个神经网络层,而是有四个以非常特殊的方式进行交互的层。

在这里插入图片描述

不必担心发生的事情的细节。 稍后,我们将逐步介绍LSTM图。 现在,让我们先尝试一下将要使用的符号。

在这里插入图片描述

在上图中,每条线都承载着整个矢量,从一个节点的输出到另一节点的输入。 粉色圆圈表示逐点操作,例如矢量加法,而黄色框表示学习的神经网络层。 合并的行表示串联,而分叉的行表示要复制的内容,并且副本将到达不同的位置。

LSTM背后的核心思想

LSTMs的关键是单元状态,即贯穿图表顶部的水平线。

在这里插入图片描述

单元的状态有点像传送带。它沿着整个链向下延伸,只有一些小的线性相互作用。很容易让信息不加改变地沿着它流动。

LSTM确实有能力删除或添加信息到cell状态,由称为门的结构仔细地调节。

门是一种选择性地让信息通过的方式。它们由一个sigmoid型神经网络层和一个点态乘法运算组成。

在这里插入图片描述

sigmoid层输出0到1之间的数字,描述有多少组件应该通过。值为零意味着“不让任何东西通过”,值为1意味着“让所有东西通过”。

一个LSTM有三个这样的门,以保护和控制单元的状态。

**

Step-by-Step LSTM Walk Through

**
在我们的LSTM中,第一步是决定从单元状态中丢弃哪些信息。 这是由一个 叫做“forget gate layer.”的sigmoid layer 决定的
在这里插入图片描述
下一步是决定在单元格状态中存储什么新信息
在这里插入图片描述
首先,一个称为“输入门层”的sigmoid层决定我们将更新哪些值。
接下来,一个tanh层创建一个新的候选值的向量 Ct。
然后将结合这两者来创建对状态的更新。
这一步其实是用来替换上一步丢弃的内容的。

在这里插入图片描述
Ct是新的信息,代替Ct-1

最后,我们需要决定输出什么
在这里插入图片描述
首先,我们运行一个sigmoid层,它决定我们将输出单元状态的哪些部分。让单元格状态通过tanh层(-1,1),然后和sigmoid层结果相乘,这样就可以得到我们想要输出的信息ht

Variants on Long Short Term Memory

到目前为止,我所描述的是一个非常普通的LSTM。但并非所有的lstm都与上面的相同。实际上,似乎几乎所有涉及LSTMs的论文都使用了略微不同的版本。差别很小,但有一些值得一提。
在这里插入图片描述

上面的图给所有的门都增加了窥视孔,但是很多论文只给出了一些窥视孔而没有给出其他的。

在这里插入图片描述
耦合遗忘,大致是只有在遗忘了旧值的时候才添加新的状态。

在这里插入图片描述
遗忘和输入组合。隐藏输出与单元状态合并。

Conclusion

前面,我提到了人们使用RNNs所取得的显著成果。实际上,所有这些都是使用LSTMs实现的。它们在大多数任务上都做得更好!
将LSTMs写成一组方程,看起来相当吓人。希望在本文中一步一步地了解它们能让它们变得更容易理解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值