长短期记忆网络(LSTM)的原理与门控机制计算过程
题目描述
长短期记忆网络(LSTM)是一种特殊的循环神经网络(RNN),专门设计用来解决标准RNN在处理长序列数据时容易出现的梯度消失或梯度爆炸问题。LSTM通过引入精巧的“门控机制”(输入门、遗忘门、输出门)和“细胞状态”来有选择地记住或忘记信息,从而能够学习长期依赖关系。本题要求详细讲解LSTM单元的内部结构、各个门控机制的功能及其具体计算过程。
解题过程
-
LSTM的总体结构与核心思想
LSTM的核心是一个称为“细胞状态”(Cell State)的传送带,它贯穿整个时间序列,只在少量线性交互下传递信息,使得信息可以长时间流动而不发生大的变化。LSTM通过三个门控结构(遗忘门、输入门、输出门)来精确调控哪些信息应该被保留到细胞状态中,哪些信息应该从细胞状态中丢弃或输出。 -
LSTM单元的内部组件与计算步骤
我们以一个时间步t为例,详细拆解LSTM单元的内部计算。假设当前输入为x_t,上一时间步的隐藏状态(也称为输出)为h_{t-1},上一时间步的细胞状态为C_{t-1}。LSTM单元在本时间步t需要计算新的隐藏状态h_t和新的细胞状态C_t。计算过程涉及以下四个关键部分,按顺序进行:步骤一:计算遗忘门(Forget Gate)
- 功能:决定从上一个细胞状态
C_{t-1}中丢弃哪些信息。它查看当前输入x_t和上一个隐藏状态h_{t-1},并为C_{t-1}中的每个数值输出一个介于0(完全丢弃)和1(完全保留)之间的数。 - 计算公式:
f_t = σ(W_f · [h_{t-1}, x_t] + b_f) - 符号解释:
f_t:遗忘门的激活向量,值在(0,1)区间。σ:Sigmoid激活函数,将输入压缩到(0,1)区间。W_f:遗忘门的权重矩阵。[h_{t-1}, x_t]:将向量h_{t-1}和x_t拼接(concatenate)成一个更长的向量。b_f:遗忘门的偏置向量。
步骤二:计算输入门(Input Gate)和候选细胞状态(Candidate Cell State)
这个步骤分为两部分,共同决定要将哪些新信息存入细胞状态。-
a) 输入门(Input Gate)
- 功能:决定我们要更新细胞状态中的哪些值。它同样查看
h_{t-1}和x_t。 - 计算公式:
i_t = σ(W_i · [h_{t-1}, x_t] + b_i) - 符号解释:
i_t:输入门的激活向量,值在(0,1)区间,决定每个候选值的重要性。W_i,b_i:输入门的权重和偏置。
- 功能:决定我们要更新细胞状态中的哪些值。它同样查看
-
b) 候选细胞状态(Candidate Cell State / New Memory Content)
- 功能:生成一个包含当前输入新信息的候选向量,这些信息是可能被加入到细胞状态中的备选内容。
- 计算公式:
\tilde{C}_t = tanh(W_C · [h_{t-1}, x_t] + b_C) - 符号解释:
\tilde{C}_t:候选细胞状态向量,值在(-1,1)区间。tanh:双曲正切激活函数,将输入压缩到(-1,1)区间。W_C,b_C:候选细胞状态的权重和偏置。
步骤三:更新细胞状态(Updating the Cell State)
- 功能:这是LSTM最核心的一步。我们结合遗忘门和输入门的结果,来将旧的细胞状态
C_{t-1}更新为新的细胞状态C_t。 - 计算公式:
C_t = f_t * C_{t-1} + i_t * \tilde{C}_t - 计算过程详解:
f_t * C_{t-1}:遗忘门f_t点乘(逐元素相乘)旧的细胞状态C_{t-1}。这相当于有选择地“忘记”C_{t-1}中的一部分旧信息。i_t * \tilde{C}_t:输入门i_t点乘候选细胞状态\tilde{C}_t。这相当于决定将候选信息中的哪一部分“添加”到细胞状态中。- 将上述两步的结果相加,得到更新后的、包含了当前时间步新信息的细胞状态
C_t。
步骤四:计算输出门(Output Gate)和当前隐藏状态(Current Hidden State)
-
a) 输出门(Output Gate)
- 功能:基于当前的输入和新的细胞状态,决定我们要输出细胞状态中的哪些部分。
- 计算公式:
o_t = σ(W_o · [h_{t-1}, x_t] + b_o) - 符号解释:
o_t:输出门的激活向量,值在(0,1)区间。W_o,b_o:输出门的权重和偏置。
-
b) 当前隐藏状态(Hidden State / Output)
- 功能:这是LSTM单元在当前时间步的最终输出
h_t。它基于过滤后的细胞状态。 - 计算公式:
h_t = o_t * tanh(C_t) - 计算过程详解:
- 首先,将新的细胞状态
C_t通过tanh函数(将其值规范到-1到1之间)。 - 然后,用输出门
o_t点乘这个规范化后的细胞状态,从而有选择地输出细胞状态的一部分信息,作为本时间步的隐藏状态h_t。这个h_t会被传递到下一个时间步,并通常也作为当前时间步的预测输出。
- 首先,将新的细胞状态
- 功能:这是LSTM单元在当前时间步的最终输出
- 功能:决定从上一个细胞状态
-
过程总结
LSTM在每个时间步的计算可以总结为以下清晰的流程:- 根据
h_{t-1}和x_t,计算三个门(遗忘门f_t、输入门i_t、输出门o_t)和一个候选值(\tilde{C}_t)。 - 用遗忘门和输入门来更新细胞状态:
C_t = f_t * C_{t-1} + i_t * \tilde{C}_t。 - 用输出门和更新后的细胞状态来计算最终输出:
h_t = o_t * tanh(C_t)。
通过这套精密的门控系统,LSTM能够有效地捕捉时间序列中的长期依赖关系,成为处理序列数据(如文本、语音、时间序列预测)的强大工具。
- 根据