深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

目录

  LSTMs网络架构

  LSTM的核心思想

  遗忘门(Forget gate)

  输入门(Input gate)

  输出门(Output gate)

  LSTMs是如何解决长程依赖问题的?

  Peephole是啥

  多层LSTM

  参考资料


长短期记忆网络通常称为LSTMs,是一种特殊的RNN,能够学习长期依赖关系。他们是由Hochreiter 等人在1997年提出的,在之后的工作中又被很多人精炼和推广。它们对各种各样的问题都非常有效,现在被广泛使用。LSTMs被明确设计为避免长期依赖问题。长时间记忆信息实际上是他们的默认行为,而不是他们努力学习的东西。

LSTMs网络架构

 深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

 返回目录

 

LSTM的核心思想

LSTMs的关键是单元状态,即贯穿图表顶部的水平线。细胞的状态有点像传送带。它沿着整个链向下延伸,只有一些小的线性相互作用。很容易让信息不加改变地流动。

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

LSTM确实有能力删除或添加信息到细胞状态,由称为门的结构仔细地调节。门是一种选择性地让信息通过的方式。一个LSTM有三个门,以保护和控制单元的状态。

 返回目录

 

遗忘门(Forget gate)

 深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

遗忘门会输出一个0到1之间的数,然后与记忆细胞C做Pointwize的乘法,可以理解为模型正在忘记一些东西。

 返回目录

 

输入门(Input gate)

有的资料也叫更新门

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

输入门有两条分支,左侧输出一个0到1之间的数,表示要当前轮多少百分比的信息更新到记忆细胞C上去;右侧表示当前轮提出来的信息。

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

经过遗忘门和输入门之后,记忆细胞便有了一定的变化。

注意LSTM中的记忆细胞只经过遗忘门和输入门,它是不直接经过输出门的。

 返回目录

 

输出门(Output gate)

 深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

输出门需要接受来自三个方向的输入信息,然后产生两个方向的输出。

三个方向输入的信息分别是:当前时间步的信息、上一个时间步的输出和当前记忆细胞的信息。

两个方向输出的信息分别是:产生当前轮的预测和作为下一个时间步的输入。

 返回目录

 

LSTMs是如何解决长程依赖问题的?

与简单的RNN网络模型比,LSTMs不是仅仅依靠快速变化的hidden state的信息去产生预测,而是还去考虑记忆细胞C中的信息。

比如有一个有长程依赖的待预测数据:

I grew up in France… I speak fluent ().

当LSTMs读到France后,就把France的信息存在记忆细胞特定的位置上,再经过后面的时间步时,这个France的信息会因为遗忘门的乘法而冲淡,但是要注意,这个冲淡的效果很弱,如果冲刷记忆的效果太强那就和简单的RNN类似了(可能有人要问,要把这个冲刷的强度置为多少呢?答:这是LSTMs自己学出来的),当LSTMs读到fluent时,结合记忆细胞中France的信息,就预测出French的答案。

 返回目录

 

Peephole是啥

2000年学者Gers & Schmidhuber对LSTMs做了一些变体,peephole如图所示,就是让三个门能利用好记忆细胞里的信息,从而让模型更强。

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

下图为对应李宏毅老师的结构,是完全一样的。

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

 返回目录

 

多层LSTM

和简单的RNN一样,可以叠多层,也可以双向。

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

 返回目录

 

参考资料

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

https://www.bilibili.com/video/BV1JE411g7XF?p=20

 返回目录

 

深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)

上一篇:02 Commonjs规范基础使用详解


下一篇:Web 应用程序技术