机器学习:深入理解LSTM网络 (二)
之前我们介绍了RNN 网络结构以及其所遇到的问题,RNN 结构对于关联度太长的时序问题可能无法处理,
简单来说,RNN对于太久远的信息不能有效地储存,为了解决这个问题,有人提出了LSTM的网络结构,LSTM 网络结构最早是由 Hochreiter & Schmidhuber 在1997 年提出的,随着后来研究者的不断改进,LSTM网络在很多问题上都有非常好的表现,并且得到广泛的关注与应用。
LSTM 网络
LSTM 结构的一个优势在于可以很好的解决 “long-term dependency” 的问题,”长期记忆”是LSTM结构与生俱来的特性,而不需要刻意地去学习。
所有的RNN结构都是有一个不断重复的模块,在标准的RNN结构中,这个不断重复的模块是一个单层的tanh , 如下图所示:
表达式简单来说就是: ht=tanh(Wh⋅[ht−1,Xt]+bh)
LSTM 网络也是有一个不断重复的模块,但是这个模块不是一个简单的tanh层,而是有复杂的四个网络层,用一种特殊的方式连接在一起,如下图所示:
LSTM 的核心思想
LSTM 网络的关键是 cell state,就是网络结构中最上面的那条水平线,如下图所示:
这条水平线贯穿整个网络,与一些线性组合相结合,可以将信息无改变的传递。
LSTM 网络具备的另外一种能力就是移除或者增加一些信息,这个过程是由一些称为传送门的结构来控制的,传送门可以让信息有选择的通过,这种门结构由sigmoid 层 与 点乘运算符组成。如下图所示:
其中,sigmoid 层输出 0-1 之间的数,控制信息传递的概率,1表示信息完全通过,0表示信息完全不能通过,一个典型的LSTM 网络有三个这样的传送门用来控制 cell state.
逐步深入LSTM
LSTM 网络的第一步就是决定哪些信息将从 cell state 中剔除掉,这一步是由一个sigmoid 层来负责的,sigmoid 层会根据输入的ht−1 和 xt输出一系列 0-1 之间的数,这些数表示了状态 Ct−1 中信息保存下来的概率,1 表示完全保存,而 0 表示完全剔除。结构及表达式如下图所示:
接下来的一步是要决定哪些新的信息需要存储在cell state 中,这一步有两部分,首先,一个称为 “input gate layer”的sigmoid 层会决定哪些信息要被更新,然后 一个 tanh 层会创建一个新的向量 C̃ t , 这个新的向量有可能被加入到 cell state 中,接下来的一步,我们会结合这两部分对cell state 创建一个更新,结构及表达式如下图所示:
现在,就是对网络的旧状态Ct−1 进行更新到新的状态 Ct , 前面两部已经做好了所有的准备的工作,我们只需要进行简单的线性组合运算即可,结构及表达式如下图所示:
ft 和 it 是两个控制门,Ct−1 是网络的旧状态,C̃ t 是网络更新的信息,ft 表示有多少旧信息会被剔除,而 it 表示会有多少新的信息加入进来。
最后,我们需要给出输出,我们同样需要一个sigmoid层来决定Ct 中哪些是需要被输出的,然后我们让 cell state 通过一个 tanh 层 将值映射到到 [-1, 1]之间,然后乘以sigmoid层的输出,这样最终输出的就是我们决定输出的。结构与表达式如下图所示:
总得来说,LSTM结构,利用了几个传送门来控制信息的删除与更新,通过一些设计好的连接方式,可以拥有“长期记忆”的能力。与标准的RNN结构最大的区别就在于,LSTM是利用模块层里的神经网络来控制信息,而RNN是利用模块本身的连接方式来处理信息。所以与RNN相比,LSTM处理时序信息的能力要更强。性能也更稳定。
这里介绍的只是最常见的一种LSTM结构,实际上还有很多LSTM的变种,更加详细的介绍,可以参考colah 的博客。
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
机器学习:深入理解LSTM网络 (二)的更多相关文章
- (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
@翻译:huangyongye 原文链接: Understanding LSTM Networks 前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LST ...
- [转] 理解 LSTM 网络
[译] 理解 LSTM 网络 http://www.jianshu.com/p/9dc9f41f0b29 Recurrent Neural Networks 人类并不是每时每刻都从一片空白的大脑开始他 ...
- 【翻译】理解 LSTM 网络
目录 理解 LSTM 网络 递归神经网络 长期依赖性问题 LSTM 网络 LSTM 的核心想法 逐步解析 LSTM 的流程 长短期记忆的变种 结论 鸣谢 本文翻译自 Christopher Olah ...
- [译] 理解 LSTM 网络
原文链接:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 吴恩达版:http://www.ai-start.com/dl2017/h ...
- 『cs231n』RNN之理解LSTM网络
概述 LSTM是RNN的增强版,1.RNN能完成的工作LSTM也都能胜任且有更好的效果:2.LSTM解决了RNN梯度消失或爆炸的问题,进而可以具有比RNN更为长时的记忆能力.LSTM网络比较复杂,而恰 ...
- 理解 LSTM 网络
递归神经网络 人类并不是每时每刻都从头开始思考.正如你阅读这篇文章的时候,你是在理解前面词语的基础上来理解每个词.你不会丢弃所有已知的信息而从头开始思考.你的思想具有持续性. 传统的神经网络不能做到这 ...
- Deep Learning基础--理解LSTM网络
循环神经网络(RNN) 人们的每次思考并不都是从零开始的.比如说你在阅读这篇文章时,你基于对前面的文字的理解来理解你目前阅读到的文字,而不是每读到一个文字时,都抛弃掉前面的思考,从头开始.你的记忆是有 ...
- 机器学习:深入理解 LSTM 网络 (一)
Recurrent Neural Network Long Short Term Memory Networks (LSTMs) 最近获得越来越多的关注,与传统的前向神经网络 (feedforward ...
- 理解LSTM网络--Understanding LSTM Networks(翻译一篇colah's blog)
colah的一篇讲解LSTM比较好的文章,翻译过来一起学习,原文地址:http://colah.github.io/posts/2015-08-Understanding-LSTMs/ ,Posted ...
随机推荐
- Java随机验证吗
<span style="font-size:18px;">package com.java.process.jsp; import java.awt.Color; i ...
- 如何在 Linux 中统计一个进程的线程数
编译自:http://ask.xmodulo.com/number-of-threads-process-linux.html作者: Dan Nanni原创:LCTT https://linux.cn ...
- [CSS] Target Positional Elements Using *-Of-Type CSS pseudo-classes
Learn how to target elements based on their position inside of a parent element in relation to its s ...
- 【Heritrix基础教程之3】Heritrix的基本架构 分类: H3_NUTCH 2014-06-01 16:56 1267人阅读 评论(0) 收藏
Heritrix可分为四大模块: 1.控制器CrawlController 2.待处理的uri列表 Frontier 3.线程池 ToeThread 4.各个步骤的处理器 (1)Pre-fetch ...
- gitlab+jenkins+pm2+rsync实现node的自动化部署
环境配置 jenkins java环境 yum install -y java 安装jenkins wget -O /etc/yum.repos.d/jenkins.repo http://pkg.j ...
- 小强的HTML5移动开发之路(33)—— jqMobi基础
一.什么是jqMobi jqMobi是由appMobi针对HTML5浏览器和移动设备开发的javascript框架,是个极快速的查询选择库,支持W3C查询. 版本 jqMobi源码最初在2012年1月 ...
- 通过getElementById来取得Form里的表单元素
<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>湖南易通 ...
- UIApplicationsharedApplication的详解
iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *a ...
- NOIP模拟 table - 矩阵链表
题目大意: 给一个n*m的矩阵,每次交换两个大小相同的不重叠的子矩阵,输出最后的矩阵 题目分析: 这题向我们展示了出神入化的链表是如何炼成的.思想都懂,实现是真的需要技术,%%% 用一副链表来表示该矩 ...
- Docker for Windows 安装
原文:Docker for Windows 安装 前言: 环境:windows10专业版 64位 正文: 官方下载地址:https://hub.docker.com/editions/communit ...