LSTM(Long Short-Term Memory)长短期记忆网络
1. 摘要
对于RNN解决了之前信息保存的问题,例如,对于阅读一篇文章,RNN网络可以借助前面提到的信息对当前的词进行判断和理解,这是传统的网络是不能做到的。但是,对于RNN网络存在长期依赖问题,比如看电影的时候,某些细节需要依赖很久以前的一些信息,而RNN网络并不能很好的保存很久之前的信息,随着时间间隔不断增大,RNN网络会丧失学习到很远的信息能力,也就是说记忆容量是有限的。例如,对于阅读一本书,从头到尾一字不漏的阅读,肯定是越远的东西忘得越多。所以引入了LSTM网络,对于LSTM来解决梯度消失梯度爆炸问题。
LSTM其实也是RNN的一种变体,大体结构几乎是一样的,但他们又有区别他的“记忆细胞”被改造过,该记忆的信息会一直传递下去,而不该记忆的东西会被“门”截断。
2. LSTM网络
对于RNN网络都是具有重复神经网络模块的链式形式,在一个标准RNN中这个重复的模块只要一个非常简单的结构,例如一个tanh层。

对于LSTM同样是这样的结构,但是重复的模块变得复杂了。

对于图中的一些细节,

在LSTM网络的图中,每一条黑线表示向量的传输,从一个节点的输出传入其它节点的输出。对于粉红色的圈代表着节点的操作,如向量的求和等。黄色的矩阵是学习到的网络层。Concatenate的线表示向量的连接,Copy的线表示内容复制,然后输出到不同的位置。
3. LSTM的关键点
对于LSTM的关键是细胞状态,细胞的状态类似于传送带,直接在整个链路上运行,只有一些少量的线性交互。

4. 细胞状态的控制
LSTM是通过“门”来控制细胞状态的,通过“门”来选择性通过,去除或者增加信息到细胞状态。它包含一个sigmoid网络层和一个pointwise乘法操作。Sigmoid层输入0到1之间的概率值,藐视每个部分有多少量可以通过,0代表不允许任何量通过,1代表允许任何量通过。LSTM是拥有三个门,来保护和控制细胞状态的。

5. LSTM几个关键“门”与操作
STEP 1:决定从“细胞状态”中丢弃什么信息即“忘记门”。比如一篇小说的推导,小说中可能有几个人物,在读小说时候我们都会记住,但有些是不重要的这时候我就选择忘掉,而把重要的东西记住。总之,如果要决定之前的记忆以多大的程度被忘掉或者需要被保留,我们需要通过sigmoid函数去参考上一次的结果与当前考到的内容。

ft是输出0到1的概率,表示已多大的程度忘记之前的信息。h表示上一次输出的结果,x表示当前输入的信息。
STEP 2:决定放什么信息到“细胞状态”中。从step 1中我们在传送带上忘记了一些东西,那我们应该补充点东西,对细胞转态进行更新。也就是说哪些东西要记住,这一步就是君顶放什么心信息到“细胞状态”中。

这里的Sigmoid层是决定什么值需要更新,也就是这一时刻我们新学到我们学到的东西哪些应该要记住,以多大的程度选择记住;Tanh层创建了一个新的候选值Ct,表示我们新学到的东西。
STEP 3:更新细胞状态。前面两步就是为细胞状态的更新做准备的,更新C(t-1)为Ct。也就是把旧状态与ft相乘,丢掉我们确定需要丢弃的信息,加上it*Ct。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。

从数学的角度来看,与RNN相比,在求偏导的时候RNN是进行链式相乘的,有一个效果不好,那么就会影响整个系统,效果影响到整个网络。而在LSTM中,从以上的公式可看出,做完Tanh后没在进行求和,所以再求偏导的时候,就算有一个效果不好也不会影响到整个网络,因为这里是进行加法运算的,所以很大程度上解决了梯度消失梯度爆炸问题。
STEP 4:基于“细胞状态”输出。首先运行一个Sigmoid层来确定细胞状态的哪个部分将输出,接着用Tanh来处理细胞状态,这是一个从-1到1的值。然后再讲它和Sigmoid门的输出相乘,输出我们确定输出的那个部分。比如我们可能需要单复数信息来确定输出“他”还是“他们”。最终输出我们想要输出的部分。

6. LSTM主要变体
变种1:通过使用coupled忘记和输出门,之前是分开确定需要忘记和添加的信息,这里是一同作出决定。

变种二:Gated Recurrent Unit (GRU),2014年提出的,他将忘记门和输出门合成一个单一的更新门,同样还混合了细胞状态和隐藏转态,和其他一起改动,与标准的LSTM简单。

参考文献
[1] http://colah.github.io/posts/2015-08-Understanding-LSTMs/.
[2] https://www.jianshu.com/p/9dc9f41f0b29.
LSTM(Long Short-Term Memory)长短期记忆网络的更多相关文章
- LSTM(Long Short Term Memory)
长时依赖是这样的一个问题,当预测点与依赖的相关信息距离比较远的时候,就难以学到该相关信息.例如在句子”我出生在法国,……,我会说法语“中,若要预测末尾”法语“,我们需要用到上下文”法国“.理论上,递归 ...
- LSTM - 长短期记忆网络
循环神经网络(RNN) 人们不是每一秒都从头开始思考,就像你阅读本文时,不会从头去重新学习一个文字,人类的思维是有持续性的.传统的卷积神经网络没有记忆,不能解决这一个问题,循环神经网络(Recurre ...
- 如何预测股票分析--长短期记忆网络(LSTM)
在上一篇中,我们回顾了先知的方法,但是在这个案例中表现也不是特别突出,今天介绍的是著名的l s t m算法,在时间序列中解决了传统r n n算法梯度消失问题的的它这一次还会有令人杰出的表现吗? 长短期 ...
- 递归神经网络之理解长短期记忆网络(LSTM NetWorks)(转载)
递归神经网络 人类并不是每时每刻都从头开始思考.正如你阅读这篇文章的时候,你是在理解前面词语的基础上来理解每个词.你不会丢弃所有已知的信息而从头开始思考.你的思想具有持续性. 传统的神经网络不能做到这 ...
- LSTM学习—Long Short Term Memory networks
原文链接:https://colah.github.io/posts/2015-08-Understanding-LSTMs/ Understanding LSTM Networks Recurren ...
- 理解长短期记忆网络(LSTM NetWorks)
转自:http://www.csdn.net/article/2015-11-25/2826323 原文链接:Understanding LSTM Networks(译者/刘翔宇 审校/赵屹华 责编/ ...
- LSTM长短期记忆网络
Long Short Term Memory networks : http://colah.github.io/posts/2015-08-Understanding-LSTMs/
- LSTMs 长短期记忆网络系列
RNN的长期依赖问题 什么是长期依赖? 长期依赖是指当前系统的状态,可能受很长时间之前系统状态的影响,是RNN中无法解决的一个问题. 如果从(1) “ 这块冰糖味道真?”来预测下一个词,是很容易得出“ ...
- LSTM(长短期记忆网络)及其tensorflow代码应用
本文主要包括: 一.什么是LSTM 二.LSTM的曲线拟合 三.LSTM的分类问题 四.为什么LSTM有助于消除梯度消失 一.什么是LSTM Long Short Term 网络即为LSTM,是一种 ...
- Memory Networks02 记忆网络经典论文
目录 1 Recurrent Entity Network Introduction 模型构建 Input Encoder Dynamic Memory Output Model 总结 2 hiera ...
随机推荐
- 0-1背包 codeforces 55 D
题目链接: http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29608#problem/D 我把它化成了0-1背包,应该可以直接用多重背包做 ...
- POJ 3254 Corn Fields状态压缩DP
下面有别人的题解报告,并且不止这一个状态压缩题的哦···· http://blog.csdn.net/accry/article/details/6607703 下面是我的代码,代码很挫,绝对有很大的 ...
- Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据
在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...
- JPQL详解
JPA在说jpql之前必须要说一下什么是JPA,否则在后续学习的时候,你会弄混的.JPA是一种规范,什么是规范呢,规范就是一个钥匙可以开这把锁.一般对于规范来说我们都是用接口,如果有人要我们则实现我们 ...
- hasura graphql server 集成gatsby
hasura graphql server 社区基于gatsby-source-graphql 开发了gatsby-postgres-graphql 插件, 可以快速的开发丰富的网站 基本使用 安装h ...
- 【VB.NET】——若水归海
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/successA/article/details/34496209 看完台湾微软特约资深讲师的VB.N ...
- linux挂载SD卡
(1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 MP805M板子插入SD卡后显示 SD30 slot is without WPmmc1: new high speed SD ...
- hosts,No web site is configured at this address.
解决办法: IIS管理器->右击网站->属性->网站——>IP地址一项->选择全部未分配-> 确定关闭 问题解决.
- WPF Demo2
<Window x:Class="Demo2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/ ...
- debian下配置keepalived ha
抄袭自http://blog.51yip.com/server/1417.html,做了一些修改 可以参考http://blog.linuxphp.org/archives/1615/ 备注:NAT模 ...