logo

LSTM

王哲峰 / 2022-07-15


目录

LSTM 简介

Long Short Term Memory networks,LSTM - 让 RNN 具备更好的记忆机制

RNN 问题

梯度爆炸和梯度消失对 RNN 的影响非常大,当 RNN 加深时, 因为梯度消失的问题使得前层的网络权重得不到更新,RNN 的记忆性就很难生效

在传统的 RNN 基础上,研究人员给出了一些著名的改进方案,即 RNN 变种网络, 比较著名的是 GRU(循环门控单元)和 LSTM(长短期记忆网络)。 GRU 和 LSTM 二者的结构基本一致,但有些许不同

LSTM 简介

LSTM,是一种特殊的 RNN 网络,能够学习序列数据中的信息的长期依赖关系。 LSTM 由 Hochreiter&Schmidhuber(1997) 提出, 并在随后的工作中被许多人进行提炼和推广

LSTM 在传统的 RNN 结构上做了相对复杂的改进,这些改进使得 LSTM 相对于经典的 RNN 能够很好地解决梯度爆炸和梯度消失的问题, 让 RNN 具备更好的记忆性能,这也是 LSTM 的价值所在。LSTM 在各种各样的序列处理问题上都表现出色,现在已被广泛使用

LSTM 的设计明确避免了长期依赖的问题,长时间记住信息实际上是它们的默认行为,而不是它们努力学习的东西

LSTM 网络架构

RNN 重复模块链结构

RNN 网络是由一系列重复的单元结构组成的神经网络重复模块链的形式

RNN 单元结构:

img

RNN 神经网络重复模块链:

img

在标准的 RNN 中,此重复模块具有非常简单的结构,例如单个 tanh 层:

img

RNN 单元结构的具体形式:

img

LSTM 重复模块链结构

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

img

img

LSTM 单元结构的具体形式:

img

LSTML 网络架构详解

记忆细胞

记忆细胞,remember cell,cell state

LSTM 最关键的部分是 LSTM 单元的最上层有一条水平贯穿的关于记忆细胞(remember cell, cell state),即 $c_{t-1}$$c_{t}$ 的箭头直线 cell state,这个单元状态有点像传送带,它在整个链中一直沿直线运行,只有一些较小的线性相互作用, 信息很容易不加改动地流动,这样贯穿的直线表现记忆信息在网络各层之间保持下去很容易:

img

LSTM 确实具有删除信息或将信息添加到记忆细胞的能力,这些信息由称为 gate(门) 的结构调节, gate(门) 是一种选择性地让信息通过的方式,它们由 Sigmoid 神经网络层和逐点乘法运算组成:

img

Sigmoid 层的输出数值结果是在 $[0, 1]$ 之间的数,描述了每个组件应该允许通过多少信息, 值为 0 表示 “不让任何信息通过”,值为 1 表示 “让所有信息通过”

LSTM 有三种 gate(门),用来生成和控制记忆细胞

遗忘门

遗忘门,forget gate

遗忘门就是要决定从记忆细胞中是否丢弃某些信息,通过一个 Sigmoid 函数进行处理, 可以看到,遗忘门接受来自输入 $x_{t}$ 和上一层隐状态 $h_{t-1}$ 的值进行加权计算处理.

img

更新门或输入门

更新门或输入门,update/input gate

更新门确定什么信息能存入记忆细胞状态中,除了计算更新门之外, 还需要通过 $tanh$ 计算记忆细胞的候选值 $\tilde{C}_{t}$. 然后,LSTM 结合遗忘门 $f_{t}$、更新门 $i_{t} * \tilde{C}_{t}$、 上一层记忆细胞值和记忆细胞候选值 $C_{t-1}$ 来共同决定和更新当前细胞状态 $C_{t}$

img img

输出门

output gate

LSTM 提供了单独的输出门

img

LSTM 变形

LSTM + peephole connections

img

LSTM + coupled & input gates

img

GRU

Gated Recurrent Unit,GRU

img

LSTM 结构解析

LSTM 数学表示

$$\begin{align} i_{t}=\sigma\left(W_{i} x_{t}+U_{i} h_{t-1}+b_{i}\right) \tag{1} \\ f_{t}=\sigma\left(W_{f} x_{t}+U_{f} h_{t-1}+b_{f}\right) \tag{2} \\ o_{t}=\sigma\left(W_{o} x_{t}+U_{o} h_{t-1}+b_{o}\right) \tag{3} \\ \tilde{c}_{t}=\tanh \left(W_{c} x_{t}+U_{c} h_{t-1}+b_{c}\right) \tag{4} \\ c_{t}=f_{t} \odot c_{t-1}+i_{t} \odot \tilde{c}_{t} \tag{5} \\ h_{t}=o_{t} \odot \tanh \left(c_{t}\right) \tag{6} \end{align}$$

LSTM 解释

参考