例如,假设你希望对电影中的每个时间点的时间类型进行分类。传统的神经网络应该很难来处理这个问题——使用电影中先前的事件推断后续的事件。

RNN 解决了这个问题。RNN 是包含循环的网络,允许信息的持久化。
LSTM入门
RNN 包含循环
RNN 可以被看做是同一神经网络的多次赋值,每个神经网络模块会把消息传递给下一个。所以,如果我们将这个循环展开:
LSTM入门
展开的 RNN

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

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

LSTM 的核心思想
LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。细胞状态类似于传送带。直接在整个链上运行,只有一些少量的线性交互。信息在上面流传保持不变会很容易。
LSTM入门

LSTM 有通过精心设计的称作为“”的结构来去除或者增加信息到细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise(点乘) 乘法诸如向量的和)操作。
LSTM入门
Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”!
LSTM 拥有三个门,来保护和控制细胞状态。

逐步理解 LSTM
在我们 LSTM 中的第一步是决定我们会从细胞状态中丢弃什么信息。这个决定通过一个称为 忘记门层 (遗忘门)完成。该门会读取h_{t-1}和x_t,输出一个在 0 到 1 之间的数值给每个在细胞状态C_{t-1}中的数字。1 表示“完全保留”,0 表示“完全舍弃”。
LSTM入门
决定丢弃信息

下一步是确定什么样的新信息被存放在细胞状态中。这里包含两个部分。第一,sigmoid 层称 “输入门层”(输入门) 决定什么值我们将要更新。然后,一个 tanh 层创建一个新的候选值向量,C_t 会被加入到状态中。LSTM入门
确定更新的信息

现在是更新旧细胞状态的时间了,C_{t-1}更新为C_t。前面的步骤已经决定了将会做什么,我们现在就是实际去完成。
LSTM入门
更新细胞状态

最终,我们需要确定输出什么值(输出门)。
LSTM入门
输出信息

相关文章:

  • 2021-07-13
  • 2021-07-27
  • 2021-11-20
  • 2021-11-02
  • 2021-07-08
  • 2021-10-31
  • 2021-07-22
猜你喜欢
  • 2021-08-28
  • 2021-05-30
  • 2021-11-18
  • 2021-10-09
  • 2021-09-22
  • 2021-09-19
  • 2022-12-23
相关资源
相似解决方案