深度学习面试题37:LSTM Networks原理(Long Short Term Memory networks)
Posted itmorn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深度学习面试题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网络架构 |
LSTM的核心思想 |
LSTMs的关键是单元状态,即贯穿图表顶部的水平线。细胞的状态有点像传送带。它沿着整个链向下延伸,只有一些小的线性相互作用。很容易让信息不加改变地流动。
LSTM确实有能力删除或添加信息到细胞状态,由称为门的结构仔细地调节。门是一种选择性地让信息通过的方式。一个LSTM有三个门,以保护和控制单元的状态。
遗忘门(Forget gate) |
遗忘门会输出一个0到1之间的数,然后与记忆细胞C做Pointwize的乘法,可以理解为模型正在忘记一些东西。
输入门(Input gate) |
有的资料也叫更新门
输入门有两条分支,左侧输出一个0到1之间的数,表示要当前轮多少百分比的信息更新到记忆细胞C上去;右侧表示当前轮提出来的信息。
经过遗忘门和输入门之后,记忆细胞便有了一定的变化。
注意LSTM中的记忆细胞只经过遗忘门和输入门,它是不直接经过输出门的。
输出门(Output gate) |
输出门需要接受来自三个方向的输入信息,然后产生两个方向的输出。
三个方向输入的信息分别是:当前时间步的信息、上一个时间步的输出和当前记忆细胞的信息。
两个方向输出的信息分别是:产生当前轮的预测和作为下一个时间步的输入。
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如图所示,就是让三个门能利用好记忆细胞里的信息,从而让模型更强。
下图为对应李宏毅老师的结构,是完全一样的。
多层LSTM |
和简单的RNN一样,可以叠多层,也可以双向。
参考资料 |
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)的主要内容,如果未能解决你的问题,请参考以下文章
LSTM Fully Convolutional Networks for Time Series Classification 学习记录