LSTM的巅峰理解笔记

Recurrent Neural Networks

目录

Recurrent Neural Networks

一.The Problem of Long-Term Dependencies

二. LSTM Networks

三. The Core Idea Behind LSTMs

四. Step-by-Step LSTM Walk Through

五. Variants on Long Short Term Memory

六. Conclusion


RNN展开:

RNN的实现很多任务的上限指标都是使用LSTM实现的;

 

一.The Problem of Long-Term Dependencies

RNN的特点就是在处理当前单元时能够利用到前面的历史信息;

例子1:The clouds are in the sky!

当要预测sky时,上面的句子只需要较短的历史信息就能完成; RNN就足够完成这个预测任务

 

例子2:I grew up in France… I speak fluent French

但在例子2中如果要预测French,由于根据较短的历史信息只能知道要填一种语言名称,只有根据较长的历史信息才能发现到French;此时RNN无法完成预测任务,bengio有文章仔细证明过这个问题;

http://people.idsia.ch/~juergen/SeppHochreiter1991ThesisAdvisorSchmidhuber.pdf

http://www-dsi.ing.unifi.it/~paolo/ps/tnn-94-gradient.pdf

 

二. LSTM Networks

lstm是一种特殊的RNN,能够捕捉到长距离的历史信息依赖;

lstm在设计时能记住长时间的信息就是其一个基础特性;

所有的RNN都具有神经网络的重复模块链形式;在标志的 RNN种,此重复模块是一个非常简单的结构,例如单个tanh层;

如下rnn的重复结构:

 

如下lstm的重复结构:

 

不是进行一个简单tanh的重复,重复的模块包含四个部分

 

三. The Core Idea Behind LSTMs

 

lstm关键的cell state,贯穿图的顶部;整个过程只有线性作用,信息不加改变的流动非常容易;

lstm确实能够进行信息的删除或添加,通过门机制;如下图:

门机制是通sigmoid层和点乘运算组成,sigmoid是输出(0~1之间的值)过滤信息,lstm有三个门保护和控制cell state信息;如下:

 

四. Step-by-Step LSTM Walk Through

Forget gate layer(遗忘门)

LSTM的第一步是确定要从单元状态中丢弃的信息。

它查看ht-1和xt,并在cell state  Ct-1中为每个数值输出0-1之间的数字; 1表示保留,0表示完全丢弃;如下图:

 

LSTM下一个步骤是决定哪些信息将存储进cell state;包含2部分,第一部分是“input gate layer”决定哪些信息将会更新;第二部分是一个tanh层创造一个将加入cell state的新候选向量C't;接下来就是将这个候选向量通过输入更新门后 的信息加入到cell state中;如下图:

 

lstm的第三步就是更新Ct-1到Ct;  前面两步已经把Ct-1要遗忘部分和 需要新加进来的部分准备好了;只需要实现即可 如下图:

 

lstm的第四步是决定将要输出什么;

当前部分的ht输出是基于cell state, 首先将当前单元的新Ct 经过一个tanh过滤;然后根据当前单元的输入和ht-1的历史信息继续构造一个sigmoid门机制,决定  经过 tanh后的部分 输出多少。如下图:

 

五. Variants on Long Short Term Memory

变体1:

让正常的lstm计算门机制时,同时考虑Ct-1里的信息;

ftp://ftp.idsia.ch/pub/juergen/TimeCount-IJCNN2000.pdf

如下图:

变体2:

另一个变化是使用耦合的忘记门和输入门。 我们可以共同做出这些决定,而不是分别决定要忘记什么以及应该向其中添加新信息。 我们只是忘记了何时要在其位置输入某些内容。 我们只会在忘记较旧的内容时才向状态输入新值。

如下图:

变体3:GRU

在LSTM上,由Cho等人介绍的门控循环单元或GRU稍显着变化。 (2014)。 它将忘记和输入门合并为一个“更新门”。 它还合并了单元状态和隐藏状态,并进行了其他一些更改。 生成的模型比标准LSTM模型更简单,并且变得越来越流行。

如下图:

 

其他变体:

Depth Gated RNNs : http://arxiv.org/pdf/1508.03790v2.pdf

Clockwork RNNs : http://arxiv.org/pdf/1402.3511v1.pdf

RNN变体的比较: http://arxiv.org/pdf/1503.04069.pdf

测试1w种RNN结构: http://jmlr.org/proceedings/papers/v37/jozefowicz15.pdf

 

六. Conclusion

RNN取得好的效果几乎都是用LSTM做出来的,

 

lstm论文:

http://www.bioinf.jku.at/publications/older/2604.pdf

blog链接:

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

 

猜你喜欢

转载自blog.csdn.net/qq_36533552/article/details/115682752
今日推荐