简单RNN在处理长距离依赖方面存在困难,部分原因在于它们缺乏明确控制内存的机制。多步之前的信息可能消失或使网络过载。长短期记忆(LSTM)网络引入了特殊组成部分,称为门,用于管理网络内存中存储的信息,其称为细胞状态 ($C$)。我们首先查看的门是遗忘门。它的作用直接但重要:它决定细胞状态中的哪些信息应该被丢弃或保留。将细胞状态视为LSTM的长期记忆。当新输入到来时,遗忘门会查看先前的状态和新输入,以判断现有长期记忆的哪些部分不再有意义。遗忘门如何运作遗忘门通过将先前的隐藏状态 ($h_{t-1}$) 和当前输入 ($x_t$) 传入一个S型激活函数 ($\sigma$) 来运作。S型函数在此处很合适,因为它输出0到1之间的值。digraph G { rankdir=LR; node [shape=box, style=rounded, fontname="helvetica", fontsize=10]; edge [fontname="helvetica", fontsize=10]; subgraph cluster_input { label = "输入"; style=dashed; color="#adb5bd"; // 灰色 ht_1 [label="h(t-1)\n(先前隐藏状态)", shape=ellipse, style=filled, fillcolor="#a5d8ff"]; // 蓝色 xt [label="x(t)\n(当前输入)", shape=ellipse, style=filled, fillcolor="#b2f2bb"]; // 绿色 } subgraph cluster_gate { label = "遗忘门"; style=dashed; color="#adb5bd"; // 灰色 sigmoid [label="\u03c3\n(S型层)", shape=invhouse, style=filled, fillcolor="#ffec99"]; // 黄色 } subgraph cluster_output { label = "输出"; style=dashed; color="#adb5bd"; // 灰色 ft [label="f(t)\n(遗忘向量)", shape=ellipse, style=filled, fillcolor="#ffd8a8"]; // 橙色 } ht_1 -> sigmoid [label=" Wf ", taillabel="组合"]; xt -> sigmoid [label=" Wf ", headlabel="组合"]; sigmoid -> ft; // Invisible nodes for alignment if needed // inv1 [style=invis]; // inv2 [style=invis]; // ht_1 -> inv1 [style=invis]; // xt -> inv2 [style=invis]; // 注意:“组合”表示在S型函数之前进行拼接和与 Wf 的矩阵乘法 + 偏置 (bf) }输入 ($h_{t-1}$ 和 $x_t$) 由遗忘门的S型层处理,以生成遗忘向量 $f_t$。数学上,计算方法是:$$ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) $$我们来分析一下:$[h_{t-1}, x_t]$:这表示将先前的隐藏状态向量 $h_{t-1}$ 和当前输入向量 $x_t$ 拼接起来。如果 $h_{t-1}$ 的维度是 $N_h$,而 $x_t$ 的维度是 $N_x$,那么拼接后的向量维度是 $N_h + N_x$。$W_f$:这是与遗忘门关联的权重矩阵。它是训练过程中调整的可学习参数。其维度通常是 $(N_h + N_x) \times N_h$,其中 $N_h$ 是细胞状态(和隐藏状态)的维度。$b_f$:这是遗忘门的偏置向量,也是一个可学习参数,维度为 $N_h$。$\sigma$:S型函数逐元素应用于矩阵乘法和加法的结果。解释输出 ($f_t$)输出 $f_t$ 是一个向量,其维度与细胞状态 $C_{t-1}$ 相同。 $f_t$ 中的每个元素都是一个介于0和1之间的数字,对应于细胞状态 $C_{t-1}$ 中的一个元素。$f_t$ 中接近 0 的值表示“遗忘”或“丢弃” $C_{t-1}$ 中的对应信息。$f_t$ 中接近 1 的值表示“保留”或“记住” $C_{t-1}$ 中的对应信息。0到1之间的值表示部分保留。这个向量 $f_t$ 就像一个过滤器。它将与先前的细胞状态 $C_{t-1}$ 进行逐元素相乘,以决定多少旧记忆应该传递到下一步。我们将在本章后面讨论更新细胞状态时看到这种乘法运算。根据当前输入和过去上下文(通过 $h_{t-1}$)选择性遗忘不相关信息的能力是LSTM相较于简单RNN能够长时间保留有用信息的一个主要原因。这避免了细胞状态被过时或不必要的细节所累积。