LSTM论文翻译-《Understanding LSTM Networks》
1. 循环神经网络(RNNs)
人们并不是每一秒都重新开始新的思考的,就像你读这篇论文,你基于以前对词句的认知来理解每一个词,而不是丢掉以前所有的知识,重新开始构思新的想法。人们的思维是持续的。
传统的神经网络是不会持续思考的,这是它的主要短板,例如,想象你要区分一部电影在每个时间段发生那种事件,传统的神经网络(以下称NN)怎样合理的将电影前面发生的事件传递给后面的事件呢?这是不明的。
RNN的网络内部有很多环,可以让信息持续下去。
上面的框图中,神经网络A,其输入是xt,输出是ht,环可以让信息从一步通向网络的下一步。
只看上面的框图,环容易让人迷惑,但是往深处想想,其实,RNN和一般的NN并没有多大的不同。一个RNN可以看做是多个相同NN单元的拷贝连接,每个拷贝都传递一个信息给下一个拷贝。看看把环展开会发生什么:
这个链式的自然展开让RNN很容易变成了NN的序列和链表。它就是NN对每个daa的处理。
将前一个节点的信息传递给下一个的做法是很有效的,最近几年,RNN在不同的领域上都取得了可喜的效果:语音识别、语言模型、机器翻译、图像字幕…。可以看看Andrej Karpathy讨论RNN令人惊喜的成果的博文《The Unresonable Effectiveness of Recurrent Neural Network》。
取得这些成果的重点是,他们都用了LSTM,一种特殊的RNN,在很多应用上,它的效果都比标准的RNN好很多。这篇文章的重点也是将LSTM的。
2. 长序依赖问题
RNN被选择的一个重要原因是它可以连接前面的信息为当前节点所用,就像视频前面的帧可以输入到当前环节来预测或者理解当前帧。如果RNN能真正做到这样,那人它的确非常有用了,但是它真的能吗?实际上,这要视情况而定。
有时,我们只需要就近的一些信息就可以完成当前任务。例如,一个语言模型想要根据前面的词预测最后一个词,如要预测“the clouds are in the sky.”的最后一个词,我们不需要更多的上下文语境就能知道最后一个词是sky。在这个例子中,要用到的语境很简单,RNN可以很好的里面句子前面的词信息得到正确的答案。
但是,也有很多句子需要更多语境,如“I grew up in France. … I speak fluent French.”从临近的语境中可以知道,最后一个词应该是一种语言,但是要知道是哪种语言,必须要前面的“France”,要再往前推。需要的信息和当前点可能隔很远。
不幸的是,随着距离的增加,RNN并不能学习到有用的信息。
理论上,RNNs完全可以掌控“长句依赖”,我们可以人为的选择好的参数嘛。但实践证明,RNN基本不可能学习很长的句子。Hochreiter和Begnio对此有很深的研究,并且找到了根本原因。
而幸运的是,这个问题LSTM不会有。
3. LSTM 网络
LSTM是一种特殊的RNN,可以解决长句依赖问题。它是由Hochreiter和Schnidhuber最先提出的,后来很多人用它解决了很多问题,现在被广泛的应用。
LSTM被明确的设计出来解决长句依赖问题的。记住长周期有用信息是它的基本功能。
标准的RNNs如下:
LSTM也是这种链式的结构,只是重复单元的内部结构不一样,它不是单独的NN层,而是4个NN,这4个相互影响。
其中,
上面框图中,每一行将一个节点的整个向量输出传递到下一个结点做输入。
4. LSTM的核心
LSTM的重点是cell state,下面水平这条线从架构的最上面走,cell state就是传送带,整个系统就像一条长直链,只有一些线性关系,信息往下传而不会改变。
LSTM能删去或者增加信息,依靠的而是门结构。门是信息选择性通过的一种手段,门由sigmoid神经层和一个点乘单元组成。
Sigmoid层的输出介于0和1之间,输出为0表示信息完全不通过,输出为1表示信息全部通过。一个LSTM有3个这样的二门来控制和保护cell state。
5. 一步一步看LSTM的工作原理
LSTM的第一步是决定哪些信息丢掉,这个动作是由包含sigmoid层的“forget gate layer”来做的。和输入门中,输出一个介于0和1的值,作用于(前一个cell state),1表示完全保留,0表示完全丢掉。
回到基于前面的词预测最后一个词的语言模型中,如果这个cell state包含有前一个话题的特征,那么正确的代词会被用到(?),如果从一个新的话题开始,那么旧话题的特征将被遗忘掉。
下一步决定哪些新的信息将被加入cell state。这由两部分构成,一是由sigmoid层构成的输入门,它用来决定哪些值要更新。另一个是tanh层构成的新候选值的向量生成器,可能会被输入到cell state里面。
例如,语言模型中,想要把新话题加入到cell state中替换旧话题。
接下来,前一个cellstate(输入到当前cell state)中,前面已经决定了要做什么,这里只需要一次完成就好。
乘(前面讲到的forget gate的输出),然后加上,旧状态加新的候选信息,组成当前cellstate.
在语言模型中,旧话题的某些特征丢掉,加入新话题的一些特征就组成了当前的话题。
最后决定要输出什么。这个输出基于cell state,但会有一个滤波过程。首先,一个sigmoid层决定哪些cell state输出,同时将cell state输入到tanh层,乘sigmoid门的输出,得到最后的输出。
对于语言模型,通过输出信息去关联一个词,这个词就是句子的最后一个词。例如,这个输出指向单话题,还是复合话题,以此来决定下一个词是否成对出现(?)。
6. LSTM的变体
上面描述的是最常见的标准LSTM,但是不是所有LSTM都是这样子的。事实上,每篇致力于LSTMs的paper所用的版本都有微小的差别,这些差别真的很小,但是其中一些是值得一提的。
其中一种流行的变体由Gers和Schmidhuber提出,加入了“peepholeconnections”。这意味着,cell state也输入到门中来判别哪些丢,哪些加。
上面的框图把所有的门中都加入cell state,但有很多paper只部分加入。
另一种变体用一对互斥的forget和input门,而不是独立决定丢和加。丢和加倍同时决定,也就是丢弃的值用新的输入信息替代。
还有一种更有趣的变体是GRU(GatedRecurrent Unit),由cho提出,它结合forget和input门为一个“update”门。并将cell state和hidden state合并,整个模型比LSTM简单,它也正慢慢流行起来。
以上只是一小部分的LSTM变体,还有很多其他可用的,如Depth Gated RNNs,还有一些完全不同的消除长句依赖的,如koutaik提出的cl
LSTM论文翻译-《Understanding LSTM Networks》相关推荐
- 理解LSTM神经网络 ---- 翻译 Understanding LSTM Networks
理解LSTM神经网络 -- 翻译 Understanding LSTM Networks 这篇文章是Understanding LSTM Networks博客的翻译,仅用于学习和理解.因为个人水平有限 ...
- LSTM:《Understanding LSTM Networks》的翻译并解读
LSTM:<Understanding LSTM Networks>的翻译并解读 目录 Understanding LSTM Networks Recurrent Neural Netwo ...
- (译)理解 LSTM 网络 (Understanding LSTM Networks by colah)
前言:其实之前就已经用过 LSTM 了,是在深度学习框架 keras 上直接用的,但是到现在对LSTM详细的网络结构还是不了解,心里牵挂着难受呀!今天看了 tensorflow 文档上面推荐的这篇博文 ...
- 【论文翻译】Squeeze-and-Attention Networks for Semantic Segmentation
– SAnet 摘要 一.引言 二.相关工作 多尺度上下文 通道注意力 像素组注意力 三.框架 1.SE module 2.SA module 3.SA network 四.实验结果 1.实施 2. ...
- 【论文翻译】SlowFast Networks for Video Recognition
目录 其它参考资料 Abstract 1,Introduction 2,Related Work 3. SlowFast Networks 3.1. Slow pathway 3.2. Fast pa ...
- 论文翻译——Feature Pyramid Networks for Object Detection
摘要: 特征金字塔是识别系统中检测不同尺度目标的基本组成部分.但最近的深度学习对象检测器已经避免了金字塔表示,部分原因是它们需要大量的计算和内存.本文利用深度卷积网络固有的多尺度金字塔层次结构,以额外 ...
- 论文翻译:Neural Networks With Few Multiplications
目录 Abstract 1. Introduction 2.Related Work 3.Binary And Ternary Connect 3.1 BINARY CONNECT REVISITED ...
- 【论文笔记】SlowFast Networks for Video Recognition
目录 1,摘要 2,介绍 3. SlowFast 网络 3.1 Slow路径 3.2 Fast 路径 3.3 横向连接 3.4 网络实现 参考文献 参考 1,摘要 本论文提出了用于视频识别的SlowF ...
- 【深度学习论文翻译】基于LSTM深度神经网络的时间序列预测(Time Series Prediction Using LSTM Deep Neural Networks)
目录 一.前言 二.摘要 三.什么是LSTM神经元? 四.简单正弦波示例 五. 不那么简单的股票市场 六.多维LSTM预测 七.结论 一.前言 最近需要用到时间序列,在网上也找到了一篇相关的文章及源代 ...
最新文章
- c#chart背景透明_C# 二
- zcmu1550(字符串最小表示法)
- 七步从AngularJS菜鸟到专家(7):Routing
- 一些实用但不为人知的Unix命令
- 贵州全国计算机二级报名官网入口,2019年3月贵州全国计算机二级考试报名入口已开通...
- webstorm界面主题
- WS2812B全彩LED驱动
- class 文件比较
- java根据excel中的手机号查询归属地并添加到excel
- Activiti结合Modeler 可视化操作界面
- 没想到你们是这样的女生……
- [NOIP2011] 观光公交解题报告
- matlab画微分方程的矢量场图_一维波动方程数值解 Matlab 教程(从入门到出图)——3数值计算的Matlab实现...
- 异步电机三相电流滞环矢量控制
- pumping lemma 泵引理
- 了解软件工程与计算机科学的联系与区别
- 斯坦福CS231n李飞飞计算机视觉之线性分类上
- 磨金石教育摄影技能干货分享:学会这些视频构图法手机也能拍大片
- 根据url导出pdf文件
- pytest文档57-计算单元测试代码覆盖率(pytest-cov)
热门文章
- impala理论篇之三:impala介绍
- impala 基础知识及使用
- SQLServer数据库出现“无法访问数据库XXX(object问题修复
- java简单搭建分布式架构
- Javamail使用IMAP同步QQ自定义文件夹问题
- 【结构体】C语言结构体使用教程
- Spring-Messaging远程代码执行漏洞复现(CVE-2018-1270)
- 鸡啄米VS2010/MFC编程入门教程——学习1初次接触
- 中国程序化购买广告解析:RTB/DSP/Ad Exchange/SSP/DMP,思维导图
- POJ 3696 神TM数论