1

循环神经网络(RNN)

要理解LTSM,首先要理解RNN。

类似人类的思考,人从来都不会从头思考,而是从已有的知识上再做深入的思考。

而传统的神经网络并不能够完成这一点,所以循环神经网络很好的解决了这个问题。

循环神经网络(RNN)是一种循环的网络,他可以是信息持久存在。

RNN已经广泛使用到如:语音识别,语言建模,翻译,图像字幕等众多的领域,而取得这些成就的关键就是LTSM网络模型,它的出现使许多任务都比标准模型要好很多。

长期依赖问题

RNN的一个特点就是能够使用前面的信息。但是有时候,我们的所需信息和相关信息之间的差距很小,这样就不需要上下文的帮助。而相反,有时候所需信息又会与相关信息之间差距很大,这样就需要很多上下文的辅助。

理论上,RNN是可以完成这样的长期依赖问题,但是实际上,RNN完全不能学习他们。而LTSM完全没有问题。

长短期记忆网络(LTSM)

LTSM是一种特殊的RNN模型,它可以学习长期依赖问题。

所有的递归神经网络都具有神经网络的重复模块链的形式。在标准RNN中,此重复模块将具有非常简单的结构,例如单个tanh层。

image.png

LSTM也具有这种链状结构,但是重复模块具有不同的结构。而不是只有一个神经网络层,而是有四个以非常特殊的方式进行交互。

image.png

LSTMs的关键是单元状态,即贯穿图顶部的水平线。单元状态有点像传送带。它沿着整个链条直行,只有一些微小的线性相互作用。信息很容易就这样一成不变地流动。

image.png

LSTM确实有能力移除或向细胞状态添加信息,这些信息由称为的结构仔细调节。是一种选择性地让信息通过的方式。它们由一个sigmoid神经网络层和一个逐点乘法运算组成。

image.png

LTSM步骤

1.确定要从单元状态中丢弃的信息

2.确定要在单元状态下存储哪些新信息

首先,一个称为“输入门层”的S形层决定了我们将更新哪些值。接下来,tanh层创建一个新候选值的向量。可以将其添加到状态中。在下一步中,我们将两者结合起来以创建状态更新。

image.png

3.该更新旧单元格状态了

image.png

4.决定要输出的内容

此输出将基于我们的单元状态,但将是过滤后的版本。

image.png

对于语言模型示例,由于它只是看到一个主语,因此可能要输出与动词相关的信息,以防万一。例如,它可能输出主语是单数还是复数,以便我们知道如果接下来是动词,则应将动词以哪种形式共轭。


相关参考:

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


喵先生的进阶之路
348 声望21 粉丝