LSTM

递归冰川
• 阅读 3785

LSTM即Long Short Term Memory networks,是一种特殊的RNN网络,可以学习长周期的依赖。一个包含单tanh层的标准RNN网络如下:

LSTM

LSTM也有一个类似结构的链条,但却有四层

LSTM

LSTM

LSTM核心理念

LSTMs的关键是cell state,即下图中的水平线。

LSTM

信息可以很方便地不做改变地在这条线上流动,当然也可以在这些旁路作用下改变状态。门是一种选择性地让信息通过的方法,由一个sigmoid层和一个点乘操作组成。

LSTM

sigmoid层输出的是一个0到1的数字,表示的是每个内容通过的概率。0即所有都不通过,1即所有都通过。

LSTM逐步讲解

C1
LSTM的第一步就是决定从cell state中抛出什么信息,这个决定由一个叫forget gate layer的sigmoid层做出,它根据 ht-1xt 为cell state Ct-1 中的每个数输出一个介于0到1的数。1代表全通过,0代表全不通过。

以根据前面的词语判断下一个词为例。在这个问题中,cell state可能包含当前对象的性别,所以正确的代词才能够被使用(he, she之类的)。当我们见到一个新对象时,老对象就应该被忘记。

LSTM

第二步是决定我们想在cell state中存储什么新信息。这包含两个方面,一是称为input gate layer的sigmoid层决定了我们要更新哪些值。二是tanh层产生了一个候选值向量LSTM,它被添加到state中。下一步中,我们将结合这两方面,向state中写入更新。

在这个语言模型例子中,我们想向cell state中添加新对象的性别,以替换我们想忘记的老对象的性别。

LSTM

现在是时候把老的cell state Ct-1 更新成新的cell state Ct ,之前的步骤已经决定了要做什么,我们只需要去实行。

ft 去乘老状态,忽略掉我们之前决定忽略的东西。然后加上 it * LSTM。这就是新的候选值,按我们想要更新状态值的意愿大小去缩放。

在这个语言模型中,这里就是我们要扔掉旧对象性别信息,添加新信息的地方。

LSTM

最后,我们要决定打算输出什么信息。这个输出要基于我们的cell state,但是会是一个过滤后的版本。首先,我们要运行一个决定输出哪部分cell state的sigmoid层。然后,我们让cell state通过tanh层(让值变为-1和1之间),并且让它与sigmoid门相乘。这样我们就可以输出我们想输出的那部分。

对于这个语言模型,既然它看见了一个对象,它或许想要输出关于动词的信息。以防那就是接下来的东西。例如,它或许要输出这个对象是单数还是复数。

LSTM

Long Short Term Memory的变异

以上描述的都是一个正常的LSTM,但并不是所有LSTMs都是像上面那样的。事实上,看起来几乎所有包含LSTMs的论文都用的是略有不同的版本。差异很小,但还是有必要提几个。

一个流行的LSTM异型添加了peephole connections,这意味着sigmoid门输入考虑到了cell state。

LSTM

上图对所有门添加了窥视孔(peephole),但很多论文只是添加了一部分。

另一个异型使用了耦合遗忘和输入门。不同于独立地决定去遗忘什么、添加什么,我们同时做 这些决定。只在打算输入信息时遗忘,只在遗忘老信息时向状态中输入新信息。

LSTM

另一个戏剧性的LSTM异型是GRU(Gated Recurrent Unit)。它将遗忘和输入门合并称为一个单独的update gate。它也合并了cell state和hidden state,并且做了一些其他的改变,创造了比标准LSTM更简单的模型,正在变得越来越流行。

LSTM

这只是一部分,其实还有很多。Greff, et al. (2015)对流行的异型做了比较,发现基本都差不多。Jozefowicz, et al. (2015)测试了超过一万种RNN网络,发现在特定任务上有些做的更好。

附录

tanh

双曲函数中的一个,tanh()为双曲正切。定义域:R,值域:(-1,1)。y=tanh x是一个奇函数,其函数图像为过原点并且穿越Ⅰ、Ⅲ象限的严格单调递增曲线,其图像被限制在两水平渐近线y=1和y=-1之间。

LSTM


翻译自:http://colah.github.io/posts/...

点赞
收藏
评论区
推荐文章
序列数据和文本的深度学习
序列数据和文本的深度学习用于构建深度学习模型的不同文本数据表示法:理解递归神经网络及其不同实现,例如长短期记忆网络(LSTM)和门控循环单元(GatedRecurrentUnit,GRU),它们为大多数深度学习模型提供文本和序列化数据;为序列化数据使用一维卷积。可以使用RNN构建的一些应用程序如下所示。文档分类器:识别推文或评论的情感,对新闻文章
Easter79 Easter79
3年前
tensorflow 之循环神经网络
应用场景:应用于语音识别语音翻译机器翻译RNNRNN(RecurrentNeuralNetworks,循环神经网络)不仅会学习当前时刻的信息,也会依赖之前的序列信息。由于其特殊的网络模型结构解决了信息保存的问题。所以RNN对处理时间序列和语言文本序列问题有独特的优势。递归神经网络都具有一连串重复神经网络模
深度学习与图神经网络学习分享:Transformer 整体结构
在过去的几年中,神经网络的兴起与应用成功推动了模式识别和数据挖掘的研究。许多曾经严重依赖于手工提取特征的机器学习任务(如目标检测、机器翻译和语音识别),如今都已被各种端到端的深度学习范式(例如卷积神经网络(CNN)、长短期记忆(LSTM)和自动编码器)彻底改变了。曾有学者将本次人工智能浪潮的兴起归因于三个条件,分别是:·计算资源的快速发展(如GPU)·大
Easter79 Easter79
3年前
Tensorflow应用之LSTM
学习RNN时原理理解起来不难,但是用TensorFlow去实现时被它各种数据的shape弄得晕头转向。现在就结合一个情感分析的案例来了解一下LSTM的操作流程。一、深度学习在自然语言处理中的应用自然语言处理是教会机器如何去处理或者读懂人类语言的系统,主要应用领域:对话系统聊天机器人(小冰)情感分析对一段文本进
Wesley13 Wesley13
3年前
60分钟视频带你掌握NLP BERT理论与实战
向AI转型的程序员都关注了这个号👇👇👇机器学习AI算法工程 公众号:datayx本课程会介绍最近NLP领域取得突破性进展的BERT模型。首先会介绍一些背景知识,包括WordEmbedding、RNN/LSTM/GRU、Seq2Seq模型和Attention机制等。然后介绍BERT的基础Transformer模
京东云开发者|提高IT运维效率,深度解读京东云AIOps落地实践
基于深度学习对运维时序指标进行异常检测,快速发现线上业务问题时间序列的异常检测是实际应用中的一个关键问题,尤其是在IT行业。我们没有采用传统的基于阈值的方法来实现异常检测,而是通过深度学习提出了一种无阈值方法:基于LSTM网络的基线(一
京东云开发者 京东云开发者
3个月前
提高IT运维效率,深度解读京东云AIOps落地实践(异常检测篇)
作者:京东科技张静基于深度学习对运维时序指标进行异常检测,快速发现线上业务问题时间序列的异常检测是实际应用中的一个关键问题,尤其是在IT行业。我们没有采用传统的基于阈值的方法来实现异常检测,而是通过深度学习提出了一种无阈值方法:基于LSTM网络的基线(一个
人工智能人才培养
No.1第一天一、机器学习简介与经典机器学习算法介绍什么是机器学习?机器学习框架与基本组成机器学习的训练步骤机器学习问题的分类经典机器学习算法介绍章节目标:机器学习是人工智能的重要技术之一,详细了解机器学习的原理、机制和方法,为学习深度学习与迁移学习打下坚实的基础。二、深度学习简介与经典网络结构介绍神经网络简介神经网络组件简介神经网络训练方法卷积神经网络介
递归神经网络(RNN)
递归神经网络(RNN)RNN是最强大的模型之一,它使我们能够开发如分类、序列数据标注、生成文本序列(例如预测下一输入词的SwiftKeykeyboard应用程序),以及将一个序列转换为另一个序列(比如从法语翻译成英语的语言翻译)等应用程序。大多数模型架构(如前馈神经网络)都没有利用数据的序列特性。例如,我们需要数据呈现出向量中每个样例的特征,如表示句子、段
文本的深度学习
序列数据和文本的深度学习用于构建深度学习模型的不同文本数据表示法:理解递归神经网络及其不同实现,例如长短期记忆网络(LSTM)和门控循环单元(GatedRecurrentUnit,GRU),它们为大多数深度学习模型提供文本和序列化数据;为序列化数据使用一维卷积。可以使用RNN构建的一些应用程序如下所示。文档分类器:识别推文或评论的情感,对新闻文章
递归神经网络(RNN)
递归神经网络(RNN)RNN是最强大的模型之一,它使我们能够开发如分类、序列数据标注、生成文本序列(例如预测下一输入词的SwiftKeykeyboard应用程序),以及将一个序列转换为另一个序列(比如从法语翻译成英语的语言翻译)等应用程序。大多数模型架构(如前馈神经网络)都没有利用数据的序列特性。例如,我们需要数据呈现出向量中每个样例的特征,如表示句子、段
递归冰川
递归冰川
Lv1
习惯了孤独之后,一个人就是全世界。
文章
5
粉丝
0
获赞
0