摘要:

  1.算法概述

  2.算法要点与推导

  3.算法特性及优缺点

  4.注意事项

  5.实现和具体例子

  6.适用场合

内容:

  1.算法概述

  长短期记忆网络(Long Short Term Memory networks) 通常叫做 “LSTM”,由Hochreiter & Schmidhuber (1997)提出,一个LSTM Cell图示如下:

  

  现在,我们先来定义一下用到的符号:

  在网络结构图中,每条线都传递着一个向量。其中上面一条直线表示LSTM的状态向量的传递;下面一条直线表示由LSTM的上一层输出和这一层输入组成的合并向量的传递;

  粉红色的圆圈表示逐点操作,这里涉及到1.两个输入向量各个元素相加;2.两个输入向量各个元素相乘,即矩阵的哈达玛积(hadamard product)

  黄色的矩形框表示的是一个神经网络层(就是很多个神经节点);

  合并的线表示把两条线上所携带的向量进行合并;

  分开的线表示将线上传递的向量复制一份,传给两个地方。

  

  一个LSTM Cell是由3个门限结构和1个状态向量传输线组成的,门限分别是遗忘门,传入门,输出门;

  其中状态向量传输线负责长程记忆,因为它只做了一些简单的线性操作;3个门限负责短期记忆的选择,因为门限设置可以对输入向量做删除或者添加操作;

  1.1遗忘门:

  遗忘门是通过一个sigmoid 神经层来实现的。 0 表示“不让任何信息通过”, 1 表示“让所有信息通过”。它的作用是要决定让哪些信息继续通过这个 cell。

  

 

 1.2传入门:

  传入门实现需要两个步骤:首先,一个sigmoid 层决定哪些信息需要更新;一个 tanh 层生成一个备选的用来更新的内容;
  再下一步,我们把这两部分联合(向量点乘)起来,对 cell 的状态进行一个更新。它的作用是决定让多少新的信息加入到 cell 状态中来。

  

  1.3输出门

  输出门实现需要两个步骤:首先通过一个sigmoid层来决定哪部分信息会被输出;

接着,我们把状态向量通过一个 tanh 层,然后把 tanh 层的输出和 sigmoid 层计算出来的权重相乘,这样就得到了最后输出的结果。

  输出门的作用是决定输出什么值。

  

  1.4 LSTM cell状态更新:

   首先我们把旧的状态和遗忘门的输出相乘, 把一些不想保留的信息忘掉;然后加上输入门的输出,这部分信息就是我们要添加的新内容。

  

   

  2.算法要点与推导

    符号说明:这里的“*”代表矩阵的哈达玛积(hadamard product)

    2.1LSTM前向传播公式:

    

    其中设计到参数Wf,Wi,Wc,Wo,bf,bi,bc,bo

    2.2LSTM后向传播公式:

    

    

         RNN推导

    LSTM推导

    (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)

  3.算法特性及优缺点

    优点:可以拟合序列数据,通过遗忘门和输出门忘记部分信息来解决梯度消失的问题。

    缺点:

  4.注意事项

  5.实现和具体例子

    《TensorFlow实战》实现LSTM处理PTB数据

    《TensorFlow实战》实现BiLSTM处理Mnist数据

    tensorflow-char-rnn_model处理莎士比亚诗集

  6.适用场合

  

循环神经(LSTM)网络学习总结的更多相关文章

  1. [深度学习]理解RNN, GRU, LSTM 网络

    Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...

  2. 循环神经网络与LSTM网络

    循环神经网络与LSTM网络 循环神经网络RNN 循环神经网络广泛地应用在序列数据上面,如自然语言,语音和其他的序列数据上.序列数据是有很强的次序关系,比如自然语言.通过深度学习关于序列数据的算法要比两 ...

  3. 深度学习|基于LSTM网络的黄金期货价格预测--转载

    深度学习|基于LSTM网络的黄金期货价格预测 前些天看到一位大佬的深度学习的推文,内容很适用于实战,争得原作者转载同意后,转发给大家.之后会介绍LSTM的理论知识. 我把code先放在我github上 ...

  4. 深度学习 循环神经网络 LSTM 示例

    最近在网上找到了一个使用LSTM 网络解决  世界银行中各国 GDP预测的一个问题,感觉比较实用,毕竟这是找到的唯一一个可以正确运行的程序. #encoding:UTF-8 import pandas ...

  5. 吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用TensorFlow和Keras开发高级自然语言处理系统——LSTM网络原理以及使用LSTM实现人机问答系统

    !mkdir '/content/gdrive/My Drive/conversation' ''' 将文本句子分解成单词,并构建词库 ''' path = '/content/gdrive/My D ...

  6. [译] 理解 LSTM 网络

    原文链接:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 吴恩达版:http://www.ai-start.com/dl2017/h ...

  7. [译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络

    本文译自 Christopher Olah 的博文 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有 ...

  8. (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)

    @翻译:huangyongye 原文链接: Understanding LSTM Networks 前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LST ...

  9. [转] 理解 LSTM 网络

    [译] 理解 LSTM 网络 http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他 ...

随机推荐

  1. Retrofit 2.0 超能实践,完美支持Https传输

    http://blog.csdn.NET/sk719887916/article/details/51597816 前阵子看到圈子里Retrofit 2.0,RxJava(Android), OkHt ...

  2. SVD的概念以及应用

    第十四章 利用SVD简化数据 一.引言 SVD的全称是奇异值分解,SVD的作用是它能够将高维的数据空间映射到低维的数据空间,实现数据约减和去除噪声的功能. SVD的特点主要有以下几个方面: 1.它的优 ...

  3. JVM学习记录-垃圾回收算法

    简述 因为各个平台的虚拟机的垃圾收集器的实现各有不同,所以只介绍几个常见的垃圾收集算法. JVM中常见的垃圾收集算法有以下四种: 标记-清除算法(Mark-Sweep). 复制算法(Copying). ...

  4. windows + maven + eclipse

    一处教程:http://www.yiibai.com/maven/maven_overview.html     Maven中央仓库信息速查:http://maven.outofmemory.cn/ ...

  5. THINKPHP 调试------输出sql语句

    echo $model->getLastSql();//$model为实例化的模板类

  6. Vue.js——60分钟组件快速入门

    一.组件简介 组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树: 那么什么是组件呢?组件可以扩展HT ...

  7. jmeter接口测试报java.net.SocketException: Socket closed错误。

    如题,jmeter报出java.net.SocketException: Socket closed,我查询了下,服务器是正常的,可以返回数据,基本确定问题出在我这边jmeter.查询原因,看到有人说 ...

  8. Mybatis概述

    mybatis概述 1 mybatis产生的意义 传统的jdbc, 及其存在的问题 package cn.rodge.jdbc;import java.sql.Connection;import ja ...

  9. Elasticsearch结构化搜索_在案例中实战使用term filter来搜索数据

    1.根据用户ID.是否隐藏.帖子ID.发帖日期来搜索帖子 (1)插入一些测试帖子数据 POST /forum/article/_bulk { "index": { "_i ...

  10. Javascript继承,再谈

    说到Javascript的继承,相信只要是前端开发者都有所了解或应用,因为这是太基础的知识了.但不知各位有没有深入去理解其中的玄机与奥秘.今本人不才,但也想用自己的理解来说一说这其中的玄机和奥秘. 一 ...