Advertisement

Long-Short-Term-Memories(LSTM)

阅读量:

1.传统RNN存在的问题

本文围绕循环神经网络展开讨论,在其具体实现中对前向传播与后向传播的过程进行了详细阐述。回顾上述内容时会发现, 传统RNN往往面临梯度消失与爆炸等挑战

可能公式会显得有点抽象,这里举一个例子:

那么,LSTM是如何解决这个问题的呢?

2.RNN && LSTM

如图1所示,这就是一个传统的RNN模型,激活函数用的是tanh

图1

图2与图1在结构上具有一致性,其区别在于内部体系更为复杂,具体包括输入门、遗忘门以及输出门

图2

下面,我们来看看LSTM每一个门具体是如何运转的

3.初识LSTM

在讲解LSTM各门之间的运作方式时,请先了解LSTM网络中的图形符号代表什么含义?如图3所示:

图3

LSTM借助巧妙设计成称为"门"的结构来筛选或注入信息到细胞状态中去的能力。这种门能够有选择地传递信息。它们由一个sigmoid函数和一个点态乘法操作构成。

图4

下面,依据图2从左到右依次介绍:

忘记门(forget gate),利用sigmoid函数将数据转换到[0,1]区间,从而实现“忘记”。

图5

输入门(input gate)

图6

更新细胞(cell)状态

图7

输出门(output gate)

图8

至此,也完成了LSTM前向传播的介绍过程

4.LSTM变体

(1)Gers & Schmidhuber (2000)添加了"peephole connections"。从而使得门层单元也能接收细胞状态的信息。

图9

(2)采用结合遗忘机制与输入门的策略。与以往不同的是,在这里同时决定遗忘哪些信息以及如何注入新数据。仅在即将输入到当前位置时才去除旧信息,并将新的数值注入那些已弃用旧数据的状态中。

图10

(3)Gated Recurrent Unit (GRU),源自Cho, et al. (2014)的研究成果。该架构整合了遗忘机制与输入机制为统一更新机制,并同时融合了细胞态与隐含态,并进行了若干改进。相比标准LSTM架构(仅减少了单个门结构),GRU设计更为简洁且广受欢迎

图10

5.换个角度看LSTM、GRU

下面把LSTM、GRU的核心部分分解开来看:

LSTM:

图11

其中:

GRU:

图12

其中:

6.前向传播、反向传播推导

下面的推导公式来自于参考文献2

定义:
-

the weight representing the connection between units i and j

- activation of unit j at time t is

- The subscripts

,

and

  • The subscripts c are used as indices for one of the C memory cells in this block.
  • The peephole weights from cell c to each of the input, forget, and output gates are typically represented by.
  • The subscripts c are associated with one specific memory cell within this block's structure.

,

and

respectively
-

表示细胞c在时间t的状态(即线性细胞单元的激活状态)。
其中,
f代表了门控机制的激活函数,
而g和h分别代表细胞输入端和输出端的激活函数。
设I为输入的数量,
K为输出的数量,
H则表示隐藏层中的单元数量。

前向传播:

后向传播:

提供两份优秀的RNN(LSTM)代码包:其中第一个是rnn从零实现^{[1]}仓库地址为\texttt{https://github.com/pangolulu/rnn-from-scratch};第二个是基于学习者的LSTM实现^{[2]}的GitHub链接为\texttt{https://github.com/nicodjimenez/lstm}

参考文献:
(1)提供了关于LSTM方法论的深入解析http://colah.github.io/posts/2015-08-Understanding-LSTMs/
(2)A. Graves 的《Supervised Sequence Labelling with Recurrent Neural Networks》是教材类书籍(Textbook),属于《Studies in Computational Intelligence》系列的一部分,在Springer出版社于2012年出版。
(3)基于深度学习的自然语言处理https://cs224d.stanford.edu/lecture_notes/notes4.pdf

全部评论 (0)

还没有任何评论哟~