循环神经(LSTM)网络学习总结
摘要:
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后向传播公式:

(译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
3.算法特性及优缺点
优点:可以拟合序列数据,通过遗忘门和输出门忘记部分信息来解决梯度消失的问题。
缺点:
4.注意事项
5.实现和具体例子
《TensorFlow实战》实现BiLSTM处理Mnist数据
tensorflow-char-rnn_model处理莎士比亚诗集
6.适用场合
循环神经(LSTM)网络学习总结的更多相关文章
- [深度学习]理解RNN, GRU, LSTM 网络
Recurrent Neural Networks(RNN) 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有的对先前所见词的理解来推断当前词的真实含义 ...
- 循环神经网络与LSTM网络
循环神经网络与LSTM网络 循环神经网络RNN 循环神经网络广泛地应用在序列数据上面,如自然语言,语音和其他的序列数据上.序列数据是有很强的次序关系,比如自然语言.通过深度学习关于序列数据的算法要比两 ...
- 深度学习|基于LSTM网络的黄金期货价格预测--转载
深度学习|基于LSTM网络的黄金期货价格预测 前些天看到一位大佬的深度学习的推文,内容很适用于实战,争得原作者转载同意后,转发给大家.之后会介绍LSTM的理论知识. 我把code先放在我github上 ...
- 深度学习 循环神经网络 LSTM 示例
最近在网上找到了一个使用LSTM 网络解决 世界银行中各国 GDP预测的一个问题,感觉比较实用,毕竟这是找到的唯一一个可以正确运行的程序. #encoding:UTF-8 import pandas ...
- 吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:使用TensorFlow和Keras开发高级自然语言处理系统——LSTM网络原理以及使用LSTM实现人机问答系统
!mkdir '/content/gdrive/My Drive/conversation' ''' 将文本句子分解成单词,并构建词库 ''' path = '/content/gdrive/My D ...
- [译] 理解 LSTM 网络
原文链接:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 吴恩达版:http://www.ai-start.com/dl2017/h ...
- [译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络
本文译自 Christopher Olah 的博文 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他们的思考.在你阅读这篇文章时候,你都是基于自己已经拥有 ...
- (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
@翻译:huangyongye 原文链接: Understanding LSTM Networks 前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LST ...
- [转] 理解 LSTM 网络
[译] 理解 LSTM 网络 http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他 ...
随机推荐
- Jmeter4.0版本实现背景色切换
今天下载了Jmeter4.0新版本,看着这高大上的黑曜石般的界面,着实不适应. 尤其是在右击,希望enable和disable一个线程组时候,老眼昏花,不太看得清楚哪一个是灰色的不能点击 花了时间看了 ...
- add-apt-repository出Exception问题
参考:http://blog.sina.com.cn/s/blog_5388923c0100nu8h.html 症状: xxxx@xxxxx:~$ sudo add-apt-repository pp ...
- 子RelativeLayout与layout_alignParentBottom属性会撑大视图
如title所示,在一个子RelativeLayout中的某个元素如果设置了layout_alignParentBottom属性会导致这个RelativeLaytou的height wrap_cont ...
- Using SSH and SFTP in Mac OS X
http://answers.stat.ucla.edu/groups/answers/wiki/7a848/ SH and SFTP are command line applications av ...
- 干货!从Tomcat执行流程了解jsp是如何被解析的,错误提示是哪里生成的。
一.关于Tomcat组成 先上张图: Tomcat组成: 1. Server:代表整个 servlet 容器,如Tomcat,JBoss之类的. 2. Service:它由一个或者多 ...
- RDC去省赛玩前の日常训练 Chapter 1
4/3 技能点 A. 生成树的计数 论文:周冬<生成树的计数及其应用>(看不懂 pending) 一个栗子:Codeforces 719D 两个做法 Matrix-Tree + 高斯消元, ...
- [Python学习之路] 猜大小游戏
# coding =utf-8 import random def roll_dice(number=3, points=None): if points == None: points = [] w ...
- Java(四、类和对象)
Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态.继承.封装.抽象.类.对象.实例.方法.重载 对象 对象是类的一个实例(对象不是找个女朋友),有状态和行为.例如,一条狗是一 ...
- Hibernate Session总结
现在我们可以在 IDEA 下新建一个 Hibernate 项目,接着上次内容这次主要总结一下 Hibernate 的 Session,及其核心方法. Session 概述 Session 接口是 Hi ...
- Python_替换当前目录下文件类型
''' 将当前目录的所有扩展名为html的文件重命名为扩展名为htm的文件 方法一 ''' import os file_list=os.listdir('.') for filename in fi ...