LSTM的理解

概述

LSTM(Long Short-Term Memory)是长短期记忆网络,是一种特殊类型的RNN(Recurrent Neural Network)

下图是RNN的简单示意:
01
与RNN不同的是,LSTM在时间流向上有2个输入和输出,其重复的模块也并非一个单一神经网络层(tanh 层),而是由四个神经网络层以一种非常特殊的方式进行交互,如下图示意:
02
LSTM 有通过精心设计的“门”结构(gate)来去除或者增加信息到cell状态的能力。门是一种让信息选择式通过的方法,它们包含一个 sigmoid 神经网络层和一个 elementwise product 操作。Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!

接下来梳理一下这些结构(主要是三个门结构)和公式整理

整体公式一览

遗忘门

03
对应公式(1):
forget gate 会读取 ,输出一个在 0 到 1 之间的数值给每个在cell状态中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
这个门决定丢弃信息。

输入门

04
对应公式(2)和(3):

input gate 中,sigmoid层(输出为0到1的数值)将决定那些值将被更新,之后,一个 tanh 层创建一个新的候选值向量,将会被加到状态中
新的状态由遗忘信息和需要更新的信息叠加而成,对应公式(4):

06
此时更新为
输入门对cell的状态进行更新

输出门

05
对应公式(5):

这里运行一个 sigmoid 层来确定当前输入的哪些信息将被输出,与当前cell状态的tanh结果做elementwise product后将得到最终需要输出的部分,即公式(6):

输出门可以输出信息,具有学习词形的能力

总结

LSTM在算法中加入了一个判断信息有用与否的“处理器”,在反向传播过程中由于公式(4),也解决了传统RNN算法的梯度消失的问题(因为RNN在时间维度不断的对同一个权重矩阵进行更新且为乘积形式更新,而公式(4)为加法)

关于LSTM也可以通过下图理解
08

LSTM还有一些变体,后面有时间深入研究的话再行整理

最后更新: 2019年05月06日 10:33

原始链接: https://ice-melt.github.io/2018/11/13/LSTM/

× 您的支持是我原创的动力
打赏二维码