LSTM(Long short-Term Memory)长短期记忆网

本文是看了[译] 理解 LSTM(Long Short-Term Memory, LSTM) 网络之后写的笔记。

1.Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息。

LSTM 通过刻意的设计来避免长期依赖问题。记住长期的信息在实践中是 LSTM 的默认行为,而非需要付出很大代价才能获得的能力!

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


LSTM 同样是这样的结构,但是重复的模块拥有一个不同的结构。不同于 单一神经网络层,这里是有四个,以一种非常特殊的方式进行交互。


2.LSTM 的核心思想

LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。

细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。

细胞状态流转

控结构

LSTM 使用“门” 的结构来 去除或者增加信息 细胞状态 的能力。门是一种让信息选择式通过的方法
包含 sigmoid 神经网络层 和一个 pointwise 乘法 操作 [0,1]
Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!
LSTM 拥有三个门,来保护和控制细胞 状态:输入门、输出门、遗忘门
3. 逐步理解 LSTM
(1)遗忘 门(忘记门)
在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为忘记门层完成。该门会读取h_{t-1}x_t,输出一个在 0 到 1 之间的数值给每个在细胞状态C_{t-1}中的数字。1 表示“完全保留”,0 表示“完全舍弃”。

(2) 输入门
确定什么样的新信息被存放在细胞状态中。这里包含两个部分
Ø 第一 sigmoid 称“输入门层” 决定什么值我们将要更新
Ø 第二, tanh 创建 一个新的候选值向量, \tilde{C}_t ,会被加入到状态中
以语言模型为例, 我们希望 增加新的 代词 细胞状态中,来替代 旧忘记 代词

(3)更新细胞状态

现在是更新旧细胞状态的时间了,C_{t-1}更新为C_t。前面的步骤已经决定了将会做什么,我们现在就是实际去完成。
我们把旧状态与f_t相乘,丢弃掉我们确定需要丢弃的信息。接着加上i_t * \tilde{C}_t。这就是新的候选值,根据我们决定更新每个状态的程度进行变化。

具体操作:把 旧状态与 f_t 相乘,丢弃掉我们确定需要丢弃的 信息;接着加上 新的 候选信息,即 i_t * \tilde{C}_ t

在语言模型的例子中,这就是我们实际根据前面确定的目标,丢弃旧代词的性别信息并添加新的信息的地方。



(4)更新细胞状态,输出门

最终,我们需要确定输出什么值。这个输出将会基于我们的细胞状态,但是也是一个过滤后的版本。

输出信息:输出“过滤后”的细胞状态。 首先,我们运行一个 sigmoid 层( 输出门 )来 确定细胞状态的哪个部分将输出出去。接着,我们把细胞状态通过 tanh 进行 处理(得到一个在 - 1 1 之间 的值)并将它 sigmoid 的输出相乘 得到 输出信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值