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)长短期记忆网络的更多相关文章

  1. LSTM(Long Short Term Memory)

    长时依赖是这样的一个问题,当预测点与依赖的相关信息距离比较远的时候,就难以学到该相关信息.例如在句子”我出生在法国,……,我会说法语“中,若要预测末尾”法语“,我们需要用到上下文”法国“.理论上,递归 ...

  2. LSTM - 长短期记忆网络

    循环神经网络(RNN) 人们不是每一秒都从头开始思考,就像你阅读本文时,不会从头去重新学习一个文字,人类的思维是有持续性的.传统的卷积神经网络没有记忆,不能解决这一个问题,循环神经网络(Recurre ...

  3. 如何预测股票分析--长短期记忆网络(LSTM)

    在上一篇中,我们回顾了先知的方法,但是在这个案例中表现也不是特别突出,今天介绍的是著名的l s t m算法,在时间序列中解决了传统r n n算法梯度消失问题的的它这一次还会有令人杰出的表现吗? 长短期 ...

  4. 递归神经网络之理解长短期记忆网络(LSTM NetWorks)(转载)

    递归神经网络 人类并不是每时每刻都从头开始思考.正如你阅读这篇文章的时候,你是在理解前面词语的基础上来理解每个词.你不会丢弃所有已知的信息而从头开始思考.你的思想具有持续性. 传统的神经网络不能做到这 ...

  5. LSTM学习—Long Short Term Memory networks

    原文链接:https://colah.github.io/posts/2015-08-Understanding-LSTMs/ Understanding LSTM Networks Recurren ...

  6. 理解长短期记忆网络(LSTM NetWorks)

    转自:http://www.csdn.net/article/2015-11-25/2826323 原文链接:Understanding LSTM Networks(译者/刘翔宇 审校/赵屹华 责编/ ...

  7. LSTM长短期记忆网络

    Long Short Term Memory networks : http://colah.github.io/posts/2015-08-Understanding-LSTMs/

  8. LSTMs 长短期记忆网络系列

    RNN的长期依赖问题 什么是长期依赖? 长期依赖是指当前系统的状态,可能受很长时间之前系统状态的影响,是RNN中无法解决的一个问题. 如果从(1) “ 这块冰糖味道真?”来预测下一个词,是很容易得出“ ...

  9. LSTM(长短期记忆网络)及其tensorflow代码应用

     本文主要包括: 一.什么是LSTM 二.LSTM的曲线拟合 三.LSTM的分类问题 四.为什么LSTM有助于消除梯度消失 一.什么是LSTM Long Short Term 网络即为LSTM,是一种 ...

  10. Memory Networks02 记忆网络经典论文

    目录 1 Recurrent Entity Network Introduction 模型构建 Input Encoder Dynamic Memory Output Model 总结 2 hiera ...

随机推荐

  1. JS经典面试题

    自己总结了一些JS面试题 希望能够帮助正在找工作的程序猿(●´∀`●) 1.js 实现一个函数对javascript中json 对象进行克隆 var oldObject ="sdf" ...

  2. 【mysql】mac上基于tar.gz包安装mysql服务

    一.准备工作 (1)下载mysql-5.7.21-macos10.13-x86_64.tar.gz,并将该压缩包移动至/usr/local目录下 (2)解压压缩包 二.安装 (1)将解压的包重命名为m ...

  3. k8s helm 可视化UI 管理工具 monocular部署试用

    官方建议是用 helm 进行安装,但是helm 有点费事(各种原因...) 所以使用官方说的使用docker-compose 但是默认官方的compose 跑起来 还是真费事,经过调整,修改了一版支持 ...

  4. 转oracle 学习 - 表空间

    Oracle 数据库的表空间和 Oracle 数据库数据文件 关于 Oracle 数据库的表空间. 很多 Oracle 初学者弄不明白表空间的概念和意义,他们只知道给数据库建表的时候需要到表空间这个东 ...

  5. maven学习--进阶篇

    2016-01-06 02:34:24 继承与聚合 (八)maven移植 讲到maven移植,大家可能第一反应就是是指将一个java项目部署到不同的环境中去,实际上,在maven中,它认为当你参加一个 ...

  6. FastAdmin 离线安装 ueditor 出现 rule 错误

    使用的是 phpStudy 的 nginx + php5.6 离线安装 ueditor.zip 出现,安装其它的插件没有问题. Call to a member function rule() on ...

  7. putty SSH tunnel function

    github & dynamic

  8. 3种web会话管理方式:基于server端session方式、cookie-based方式、token-based方式

    出处:http://www.cnblogs.com/lyzg/p/6067766.html

  9. Spring3 MVC请求参数获取的几种方法[转载]

    http://www.cnblogs.com/leiOOlei/p/3658147.html 一.      通过@PathVariabl获取路径中的参数 @RequestMapping(value= ...

  10. antd在线换肤定制功能

    最近react项目,用的antd框架,然后看见他的antdPro例子里面有个定制功能很帅,老大说做,那就做吧,鼓捣了一晚终于实现了. 先看预览效果吧 css换肤 入行前端的时候经常看鱼哥(张鑫旭)的博 ...