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 ...
随机推荐
- 放苹果问题 DP计数 m个苹果放在n个盘子里,苹果,盘子相同,盘子可为空
详细的解释放苹果问题的链接:苹果可相同可不同,盘子可相同可不同,盘子可空和不可空,都有详细的说明··· http://www.cnblogs.com/celia01/archive/2012/02/1 ...
- Hadoop学习笔记(1)(转)
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
- vim golang 插件
最好用的vim golang 插件 可自动缩进 git clone git@github.com:aimin/InstallvimGo.git
- GridColumn (Column Layout and Auto Width)
Namespace:DevExpress.XtraGrid.Columns Assembly:DevExpress.XtraGrid.v16.2.dll https://documentation.d ...
- FastAdmin 系统配置中添加选项卡
群里有小伙伴问怎么在系统配置中添加选卡,之前试过. 流程如下 刷新页面,然后就有了.
- AppBox下调用HighCharts画曲线
例子见本博文件下载. 注意 xAxis: { categories: [<%= xAxisCategories %>], ...
- Microsoft Dynamics CRM 2011 配置好的IFD环境 怎么制作证书?
一.CRM2011 IFD怎么制作证书? 配置好的IFD环境里面:打开开始—运行 1.输入: mmc(微软管理控制台) 出现: 2. 出现: 3.添加/删除管理单元,如图: 4.添加证书 5. 6. ...
- 百度地图JavaScript如何清除指定类型的覆盖物
由于一个地图中有很多种类型的覆盖物,由于某个覆盖物(一般是自定义)整个地图中只允许出现一次 那第一想到的就是,每次创建这个类型的覆盖物时先清除这一类型的覆盖物,比较简单判断覆盖物的类型 instanc ...
- Django Ajax登录 防止CSRF
什么是CSRF 维基百科: 跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CS ...
- Extjs下拉多选框
//------录入时间,下拉列表框------ var inputTimeRow = new Ext.data.Record.create([ { name : 'value' },{ name : ...