深度学习模型:长短期记忆网络(LSTM)

2024-06-21 李腾 78 次阅读 0 次点赞

本文将详细介绍长短期记忆网络(LSTM)。这是一份力求清晰、全面的介绍,将从其诞生原因、核心思想、内部结构、变体到应用场景进行讲解。

----

1. 为什么需要LSTM?—— RNN的困境

要理解LSTM,首先要明白它要解决什么问题。LSTM是一种特殊的循环神经网络(RNN)

  • RNN的优势:与传统神经网络不同,RNN具有“记忆”功能,能够处理序列数据(如时间序列、语音、文本),其网络结构中的“循环”连接使得信息可以从一个步骤传递到下一个步骤。这非常适用于理解上下文相关的任务,比如预测句子的下一个词。
  • RNN的致命缺陷:梯度消失/爆炸问题
  • 在训练RNN时,我们使用反向传播算法。这个算法通过链式法则,从网络的输出层一直计算梯度到输入层。
  • 对于长序列,这个链式法则会变得非常长。梯度(可以理解为指导模型调整参数的信号)在多层反向传播中会连乘很多次。
  • 如果这些乘数大部分是小于1的数,梯度会指数级衰减,直到变得无限小,这就是梯度消失。导致模型无法学习到远距离的依赖关系,早期步骤的信息对后期预测几乎没有影响。
  • 反之,如果乘数大部分大于1,梯度会指数级增长,导致梯度爆炸,模型参数变得巨大,训练不稳定。

简单来说,普通RNN的“记忆力”很差,只能记住短期的信息,对于长期依赖关系无能为力。

----

2. LSTM的核心思想

LSTM由 Sepp Hochreiter 和 Jürgen Schmidhuber 在1997年提出,其核心设计目标是解决长期依赖问题

它的解决方案是引入了一个巧妙的“记忆管理”系统,其核心是一个称为 “细胞状态” 的传送带。

  • 细胞状态:你可以把它想象成一条贯穿整个序列的“信息高速公路”。它几乎不受干扰地在整个链上运行,只有一些轻微的线性交互。信息可以很容易地在这条公路上不加改变地流动。
  • 门控机制:LSTM拥有三个精密的“门”来控制这条信息高速公路上的信息流。门是一种让信息选择式通过的结构,由一个Sigmoid神经网络层和一个逐点乘法操作组成。
  • Sigmoid层:输出0到1之间的值,描述每个部分有多少量可以通过。0代表“不许任何量通过”,1代表“允许所有量通过”。

----

3. LSTM的内部结构剖析(逐步拆解)

一个LSTM单元在每个时间步 t 会接收三个输入:

  • 当前时间的输入 x_t
  • 上一个时间步的隐藏状态 h_(t-1)
  • 上一个时间步的细胞状态 c_(t-1)

它会产生两个输出:

  • 当前时间的隐藏状态 h_t
  • 当前时间的细胞状态 c_t

其内部工作流程如下,主要由四个阶段组成:

阶段一:遗忘门 - “决定从细胞状态中丢弃什么信息”
  • 操作:查看 h_(t-1) 和 x_t,为细胞状态 C_(t-1) 中的每个数字输出一个0到1之间的数。
  • 公式: f_t = σ(W_f · [h_(t-1), x_t] + b_f)
  • 解释:1 表示“完全保留”,0 表示“完全遗忘”。例如,在语言模型中,当看到一个新的主语时,遗忘门可能会决定忘记旧主语的性别信息。
阶段二:输入门 - “决定在细胞状态中存储什么新信息”

这一步包含两个部分:

  1. (((

输入门层(决定更新哪些值)

  • 操作:一个Sigmoid层决定哪些新信息将被更新。
  • 公式: i_t = σ(W_i · [h_(t-1), x_t] + b_i)

)))

  1. (((

候选记忆细胞层(生成候选值)

  • 操作:一个tanh层创建一个新的候选值向量 ~~C_t,这些值可能会被加入到细胞状态中。
  • 公式: ~~C_t = tanh(W_C · [h_(t-1), x_t] + b_C)

)))

阶段三:更新细胞状态
  • 操作:将旧的细胞状态 C_(t-1) 更新为新的细胞状态 C_t。
  • 公式: C_t = f_t * C_(t-1) + i_t * ~~C_t
  • 解释
  • 我们把旧的状态与 f_t 相乘,忘记掉我们决定忘记的部分。
  • 然后加上 i_t * ~~C_t,这是新增的候选值,但会缩放我们决定更新的每个状态值的大小。
  • 这就完成了细胞状态的更新!
阶段四:输出门 - “决定输出什么”
  • 操作:基于更新后的细胞状态,决定最终的输出(即隐藏状态 h_t)。

*1. 运行一个Sigmoid层:决定我们将输出细胞状态的哪些部分。

*1*. o_t = σ(W_o · [h_(t-1), x_t] + b_o)

*1. 将细胞状态通过tanh(将值压到-1和1之间),然后与Sigm门的输出相乘。

*1*. h_t = o_t * tanh(C_t)

  • 解释:这样,隐藏状态 h_t 就是细胞状态 C_t 的一个过滤后的版本。它只会包含当前任务所需的信息。

----

4. LSTM的变体

  • 门控循环单元(GRU):LSTM的一个流行变体,在2014年提出。它将遗忘门和输入门合并为一个“更新门”,同时也混合了细胞状态和隐藏状态。结构比LSTM更简单,计算效率更高,并且在许多任务上表现相当,正变得越来越流行。

----

5. LSTM的优势与应用

优势

  • 有效解决梯度消失问题:通过门控机制和细胞状态的直通路径,梯度可以更稳定地流动,从而能够学习长期依赖关系。
  • 强大的序列建模能力:能够捕捉序列数据中复杂的时间动态特性。

经典应用领域

  1. 自然语言处理(NLP)

1*. 机器翻译(早期的Google翻译就使用了LSTM)

1*. 文本生成(写诗、写新闻)

1*. 情感分析

1*. 语音识别

  1. 时间序列预测

1*. 股票价格预测

1*. 天气预测

1*. 能耗预测

  1. 音乐生成:生成连贯的旋律。
  2. 视频分析:理解视频中的时序行为。

----

总结

特性普通RNNLSTM
记忆能力短期长期和短期
核心结构简单的Tanh层细胞状态 + 三个门(遗忘、输入、输出)
梯度问题严重,难以训练长序列有效缓解,能训练很长的序列
参数数量较少较多(因为门结构)
计算复杂度较低较高

总而言之,LSTM通过其精巧的门控机制细胞状态,成功地解决了普通RNN的长期依赖问题,成为了处理序列数据的里程碑式模型,并对深度学习的发展产生了深远影响。尽管如今Transformer架构(如BERT、GPT)在NLP的许多领域取得了领先,但LSTM因其有效性和相对较低的计算成本,在许多实际应用中仍然是一个非常强大和实用的工具。

本文由人工编写,AI优化,转载请注明原文地址: 深度学习模型:长短期记忆网络(LSTM)

评论 (0)

登录后发表评论

暂无评论,快来发表第一条评论吧!