当前位置: 首页 > news >正文

LSTM三个门控机制详解

LSTM三个门控机制详解

1-LSTM的3个门的理解

长短期记忆网络(LSTM)通过三个关键门控机制(遗忘门、输入门、输出门)和细胞状态(Cell State)解决了传统RNN的长期依赖问题。以下是三个门的核心理解:


1. 遗忘门(Forget Gate)

  • 作用:决定细胞状态中哪些信息需要被遗忘或保留。
  • 实现
    ( f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) ) (f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ) (ft=σ(Wf[ht1,xt]+bf))
    通过 Sigmoid 函数输出 0~1 之间的值:
    • 0:完全丢弃该部分信息
    • 1:完全保留该部分信息
  • 应用场景
    例如,在语言模型中遇到新主语时,遗忘门可丢弃旧主语的无关信息。

2. 输入门(Input Gate)

  • 作用:决定当前输入中哪些新信息需要添加到细胞状态。
  • 实现
    • 筛选 ( i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) ) (i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) ) (it=σ(Wi[ht1,xt]+bi))
    • 候选值 ( C ~ t = tanh ⁡ ( W C ⋅ [ h t − 1 , x t ] + b C ) ) (\tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) ) (C~t=tanh(WC[ht1,xt]+bC))
      将筛选结果( ( i t ) (i_t) (it))与候选值( ( C ~ t ) (\tilde{C}_t) (C~t))相乘,更新细胞状态:
      ( C t = f t ⋅ C t − 1 + i t ⋅ C ~ t ) (C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t ) (Ct=ftCt1+itC~t)
  • 意义
    选择性学习新特征(如新增的形容词或动词)。

3. 输出门(Output Gate)

  • 作用:基于当前输入和细胞状态,决定当前时刻的输出(隐藏状态)。
  • 实现
    • 筛选 ( o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) ) (o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ) (ot=σ(Wo[ht1,xt]+bo))
    • 输出 ( h t = o t ⋅ tanh ⁡ ( C t ) ) (h_t = o_t \cdot \tanh(C_t) ) (ht=ottanh(Ct))
  • 关键点
    隐藏状态 ( h t ) (h_t) (ht)作为当前时刻的输出,并传递至下一时间步。

协同工作流程

  1. 遗忘门:过滤旧细胞状态 ( C t − 1 ) (C_{t-1}) (Ct1)中的冗余信息。
  2. 输入门:将新信息(如当前输入的上下文)融合到更新后的细胞状态 ( C t ) (C_t) (Ct)
  3. 输出门:基于 ( C t ) (C_t) (Ct)生成当前输出 ( h t ) (h_t) (ht),影响后续时间步的计算。

核心优势

  • 细胞状态(C):作为“传送带”,长期保留关键信息(如段落主题)。
  • 门控机制:通过可学习的参数动态调节信息流,避免梯度消失/爆炸。

类比示例

假设用LSTM分析句子:

“The cat, which ate all the fish, was sleeping.”

  • 遗忘门:在读到“was sleeping”时,丢弃“fish”的细节。
  • 输入门:在遇到“cat”时记住主语,遇到“sleeping”时记录动作。
  • 输出门:根据当前状态输出动词的正确形式(如“was sleeping”而非“were”)。

通过这三个门的协作,LSTM能够灵活控制信息的保留、更新和输出,从而高效建模长序列依赖关系。

2-数字运算来复现这三个门的计算-1

好的!我们通过一个 极简的数字示例 复现 LSTM 的三个门计算,假设所有向量和参数均为标量(单个数值),以便直观理解计算流程。


示例设定

  • 输入:当前时刻输入 ( x t = 0.5 ) (x_t = 0.5 ) (xt=0.5)
  • 上一时刻隐藏状态 ( h t − 1 = 0.2 ) (h_{t-1} = 0.2 ) (ht1=0.2)
  • 上一时刻细胞状态 ( C t − 1 = 0.8 ) (C_{t-1} = 0.8 ) (Ct1=0.8)
  • 参数(人为设定,实际中通过训练得到):
    • 遗忘门权重 ( W f = 0.6 ) (W_f = 0.6 ) (Wf=0.6) ,偏置 ( b f = 0.1 ) (b_f = 0.1 ) (bf=0.1)
    • 输入门权重 ( W i = 0.3 ) (W_i = 0.3 ) (Wi=0.3) ,偏置 ( b i = 0.2 ) (b_i = 0.2 ) (bi=0.2)
    • 候选值权重 ( W C = 0.4 ) (W_C = 0.4 ) (WC=0.4) ,偏置 ( b C = 0.05 ) (b_C = 0.05 ) (bC=0.05)
    • 输出门权重 ( W o = 0.5 ) (W_o = 0.5 ) (Wo=0.5) ,偏置 ( b o = 0.1 ) (b_o = 0.1 ) (bo=0.1)

Step 1: 遗忘门(Forget Gate)

计算遗忘门输出 ( f t ) (f_t ) (ft) ,决定保留多少旧细胞状态:
[ f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) ] [ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ] [ft=σ(Wf[ht1,xt]+bf)]
具体计算

  1. 拼接 ( h t − 1 ) (h_{t-1} ) (ht1) ( x t ) (x_t ) (xt) ( [ 0.2 , 0.5 ] ) ([0.2, 0.5] ) ([0.2,0.5])
  2. 线性变换: ( 0.6 × ( 0.2 + 0.5 ) + 0.1 = 0.6 × 0.7 + 0.1 = 0.52 ) (0.6 \times (0.2 + 0.5) + 0.1 = 0.6 \times 0.7 + 0.1 = 0.52 ) (0.6×(0.2+0.5)+0.1=0.6×0.7+0.1=0.52)
  3. Sigmoid激活: ( σ ( 0.52 ) = 1 1 + e − 0.52 ≈ 0.627 ) (\sigma(0.52) = \frac{1}{1+e^{-0.52}} \approx 0.627 ) (σ(0.52)=1+e0.5210.627)

结果 ( f t ≈ 0.627 ) (f_t \approx 0.627 ) (ft0.627) (保留约 62.7% 的旧细胞状态)


Step 2: 输入门(Input Gate)

**(1) 输入门筛选值 ( i t ) (i_t ) (it) **:

[ i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) ] [ i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) ] [it=σ(Wi[ht1,xt]+bi)]
计算

  1. 线性变换: ( 0.3 × ( 0.2 + 0.5 ) + 0.2 = 0.3 × 0.7 + 0.2 = 0.41 ) (0.3 \times (0.2 + 0.5) + 0.2 = 0.3 \times 0.7 + 0.2 = 0.41 ) (0.3×(0.2+0.5)+0.2=0.3×0.7+0.2=0.41)
  2. Sigmoid激活: ( σ ( 0.41 ) ≈ 0.601 ) (\sigma(0.41) \approx 0.601 ) (σ(0.41)0.601)
**(2) 候选值 ( C ~ t ) (\tilde{C}_t ) (C~t) **:

[ C ~ t = tanh ⁡ ( W C ⋅ [ h t − 1 , x t ] + b C ) ] [ \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) ] [C~t=tanh(WC[ht1,xt]+bC)]
计算

  1. 线性变换: ( 0.4 × ( 0.2 + 0.5 ) + 0.05 = 0.4 × 0.7 + 0.05 = 0.33 ) (0.4 \times (0.2 + 0.5) + 0.05 = 0.4 \times 0.7 + 0.05 = 0.33 ) (0.4×(0.2+0.5)+0.05=0.4×0.7+0.05=0.33)
  2. Tanh激活: ( tanh ⁡ ( 0.33 ) ≈ 0.318 ) (\tanh(0.33) \approx 0.318 ) (tanh(0.33)0.318)
**(3) 更新细胞状态 ( C t ) (C_t ) (Ct) **:

[ C t = f t ⋅ C t − 1 + i t ⋅ C ~ t ] [ C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t ] [Ct=ftCt1+itC~t]
计算
[ C t = 0.627 × 0.8 + 0.601 × 0.318 ≈ 0.502 + 0.191 = 0.693 ] [ C_t = 0.627 \times 0.8 + 0.601 \times 0.318 \approx 0.502 + 0.191 = 0.693 ] [Ct=0.627×0.8+0.601×0.3180.502+0.191=0.693]


Step 3: 输出门(Output Gate)

**(1) 输出门筛选值 ( o t ) (o_t ) (ot) **:

[ o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) ] [ o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ] [ot=σ(Wo[ht1,xt]+bo)]
计算

  1. 线性变换: ( 0.5 × ( 0.2 + 0.5 ) + 0.1 = 0.5 × 0.7 + 0.1 = 0.45 ) (0.5 \times (0.2 + 0.5) + 0.1 = 0.5 \times 0.7 + 0.1 = 0.45 ) (0.5×(0.2+0.5)+0.1=0.5×0.7+0.1=0.45)
  2. Sigmoid激活: ( σ ( 0.45 ) ≈ 0.610 ) (\sigma(0.45) \approx 0.610 ) (σ(0.45)0.610)
**(2) 生成当前隐藏状态 ( h t ) (h_t ) (ht) **:

[ h t = o t ⋅ tanh ⁡ ( C t ) ] [ h_t = o_t \cdot \tanh(C_t) ] [ht=ottanh(Ct)]
计算

  1. ( tanh ⁡ ( 0.693 ) ≈ 0.6 ) (\tanh(0.693) \approx 0.6 ) (tanh(0.693)0.6) (因为 ( tanh ⁡ ( 0.693 ) ≈ 0.6 ) (\tanh(0.693) \approx 0.6 ) (tanh(0.693)0.6)
  2. ( h t = 0.610 × 0.6 ≈ 0.366 ) (h_t = 0.610 \times 0.6 \approx 0.366 ) (ht=0.610×0.60.366)

最终结果

  • 新细胞状态 ( C t ≈ 0.693 ) (C_t \approx 0.693 ) (Ct0.693)
  • 新隐藏状态 ( h t ≈ 0.366 ) (h_t \approx 0.366 ) (ht0.366)

计算总结

  1. 遗忘门:保留约 62.7% 的旧细胞状态 ( C t − 1 ) (C_{t-1} ) (Ct1)
  2. 输入门:新增约 19.1% 的新信息到 ( C t ) (C_t ) (Ct)
  3. 输出门:基于更新后的 ( C t ) (C_t ) (Ct) ,生成当前时刻的输出 ( h t ) (h_t ) (ht)

关键点

  • Sigmoid:控制“保留比例”(输出 0~1)。
  • Tanh:压缩到 -1~1,稳定梯度。
  • 标量示例仅为简化:实际中所有变量和参数均为向量/矩阵,计算方式类似(按元素或矩阵乘法)。

3-数字运算来复现这三个门的计算-2

好的!我们换一组新的数据和参数,再次分步推演LSTM三个门的计算过程,通过纯数值计算直观展示门的协作逻辑。


新示例设定

  • 输入:当前时刻输入 ( x t = 1.2 ) (x_t = 1.2 ) (xt=1.2)
  • 上一时刻隐藏状态 ( h t − 1 = 0.6 ) (h_{t-1} = 0.6 ) (ht1=0.6)
  • 上一时刻细胞状态 ( C t − 1 = 2.1 ) (C_{t-1} = 2.1 ) (Ct1=2.1)
  • 参数(简化为标量):
    • 遗忘门权重 ( W f = 0.7 ) (W_f = 0.7 ) (Wf=0.7) ,偏置 ( b f = − 0.3 ) (b_f = -0.3 ) (bf=0.3)
    • 输入门权重 ( W i = 0.4 ) (W_i = 0.4 ) (Wi=0.4) ,偏置 ( b i = 0.1 ) (b_i = 0.1 ) (bi=0.1)
    • 候选值权重 ( W C = 0.5 ) (W_C = 0.5 ) (WC=0.5) ,偏置 ( b C = 0.2 ) (b_C = 0.2 ) (bC=0.2)
    • 输出门权重 ( W o = 0.6 ) (W_o = 0.6 ) (Wo=0.6) ,偏置 ( b o = − 0.2 ) (b_o = -0.2 ) (bo=0.2)

Step 1: 遗忘门(Forget Gate)

公式
[ f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) ] [ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ] [ft=σ(Wf[ht1,xt]+bf)]
计算过程

  1. 拼接 ( h t − 1 ) (h_{t-1} ) (ht1) ( x t ) (x_t ) (xt) :实际为 ( [ 0.6 , 1.2 ] ) ([0.6, 1.2] ) ([0.6,1.2]) ,但标量运算中简化为相加 ( 0.6 + 1.2 = 1.8 ) (0.6 + 1.2 = 1.8 ) (0.6+1.2=1.8)
  2. 线性变换: ( W f ⋅ ( h t − 1 + x t ) + b f = 0.7 × 1.8 + ( − 0.3 ) = 1.26 − 0.3 = 0.96 ) (W_f \cdot (h_{t-1} + x_t) + b_f = 0.7 \times 1.8 + (-0.3) = 1.26 - 0.3 = 0.96 ) (Wf(ht1+xt)+bf=0.7×1.8+(0.3)=1.260.3=0.96)
  3. Sigmoid激活: ( σ ( 0.96 ) = 1 1 + e − 0.96 ≈ 0.723 ) (\sigma(0.96) = \frac{1}{1 + e^{-0.96}} \approx 0.723 ) (σ(0.96)=1+e0.9610.723)

结果 ( f t ≈ 0.723 ) (f_t \approx 0.723 ) (ft0.723) (保留约72.3%的旧细胞状态)


Step 2: 输入门(Input Gate)

**(1) 输入门筛选值 ( i t ) (i_t ) (it) **:

[ i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) ] [ i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) ] [it=σ(Wi[ht1,xt]+bi)]
计算

  1. 线性变换: ( 0.4 × 1.8 + 0.1 = 0.72 + 0.1 = 0.82 ) (0.4 \times 1.8 + 0.1 = 0.72 + 0.1 = 0.82 ) (0.4×1.8+0.1=0.72+0.1=0.82)
  2. Sigmoid激活: ( σ ( 0.82 ) ≈ 0.694 ) (\sigma(0.82) \approx 0.694 ) (σ(0.82)0.694)
**(2) 候选值 ( C ~ t ) (\tilde{C}_t ) (C~t) **:

[ C ~ t = tanh ⁡ ( W C ⋅ [ h t − 1 , x t ] + b C ) ] [ \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) ] [C~t=tanh(WC[ht1,xt]+bC)]
计算

  1. 线性变换: ( 0.5 × 1.8 + 0.2 = 0.9 + 0.2 = 1.1 ) (0.5 \times 1.8 + 0.2 = 0.9 + 0.2 = 1.1 ) (0.5×1.8+0.2=0.9+0.2=1.1)
  2. Tanh激活: ( tanh ⁡ ( 1.1 ) ≈ 0.800 ) (\tanh(1.1) \approx 0.800 ) (tanh(1.1)0.800) (因为 ( tanh ⁡ ( 1.1 ) ≈ e 1.1 − e − 1.1 e 1.1 + e − 1.1 ≈ 0.800 ) (\tanh(1.1) \approx \frac{e^{1.1} - e^{-1.1}}{e^{1.1} + e^{-1.1}} \approx 0.800) (tanh(1.1)e1.1+e1.1e1.1e1.10.800)
**(3) 更新细胞状态 ( C t ) (C_t ) (Ct) **:

[ C t = f t ⋅ C t − 1 + i t ⋅ C ~ t ] [ C_t = f_t \cdot C_{t-1} + i_t \cdot \tilde{C}_t ] [Ct=ftCt1+itC~t]
计算
[ C t = 0.723 × 2.1 + 0.694 × 0.800 ≈ 1.518 + 0.555 = 2.073 ] [ C_t = 0.723 \times 2.1 + 0.694 \times 0.800 \approx 1.518 + 0.555 = 2.073 ] [Ct=0.723×2.1+0.694×0.8001.518+0.555=2.073]


Step 3: 输出门(Output Gate)

**(1) 输出门筛选值 ( o t ) (o_t ) (ot) **:

[ o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) ] [ o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ] [ot=σ(Wo[ht1,xt]+bo)]
计算

  1. 线性变换: ( 0.6 × 1.8 + ( − 0.2 ) = 1.08 − 0.2 = 0.88 ) (0.6 \times 1.8 + (-0.2) = 1.08 - 0.2 = 0.88 ) (0.6×1.8+(0.2)=1.080.2=0.88)
  2. Sigmoid激活: ( σ ( 0.88 ) ≈ 0.707 ) (\sigma(0.88) \approx 0.707 ) (σ(0.88)0.707)
**(2) 生成当前隐藏状态 ( h t ) (h_t ) (ht) **:

[ h t = o t ⋅ tanh ⁡ ( C t ) ] [ h_t = o_t \cdot \tanh(C_t) ] [ht=ottanh(Ct)]
计算

  1. ( tanh ⁡ ( 2.073 ) ≈ 0.969 ) (\tanh(2.073) \approx 0.969 ) (tanh(2.073)0.969) (因为 ( tanh ⁡ ( 2 ) ≈ 0.964 ) (\tanh(2) \approx 0.964) (tanh(2)0.964) ,此处近似)
  2. ( h t = 0.707 × 0.969 ≈ 0.685 ) (h_t = 0.707 \times 0.969 \approx 0.685 ) (ht=0.707×0.9690.685)

最终结果

  • 新细胞状态 ( C t ≈ 2.073 ) (C_t \approx 2.073 ) (Ct2.073) (相比旧状态 ( C t − 1 = 2.1 ) (C_{t-1}=2.1 ) (Ct1=2.1) ,略微下降)
  • 新隐藏状态 ( h t ≈ 0.685 ) (h_t \approx 0.685 ) (ht0.685)

对比分析

步骤原示例结果新示例结果变化原因
遗忘门 ( f t ) (f_t ) (ft)0.6270.723权重和偏置调整,保留更多旧信息
输入门 ( i t ) (i_t ) (it)0.6010.694输入数据更强( ( x t = 1.2 ) (x_t=1.2 ) (xt=1.2)
候选值 ( C ~ t ) (\tilde{C}_t ) (C~t)0.3180.800更大的输入和权重导致更活跃的候选值
细胞状态 ( C t ) (C_t ) (Ct)0.693 → 0.6932.1 → 2.073遗忘门保留大部分旧状态,输入门新增少量信息
隐藏状态 ( h t ) (h_t ) (ht)0.3660.685输出门激活更强,细胞状态更大

关键结论

  1. 遗忘门:参数 ( W f ) (W_f ) (Wf) ( b f ) (b_f ) (bf) 直接影响旧信息的保留比例。
  2. 输入门:输入值 ( x t ) (x_t ) (xt) 越大,候选值 ( C ~ t ) (\tilde{C}_t ) (C~t) 越显著。
  3. 输出门:最终输出 ( h t ) (h_t ) (ht) 同时依赖细胞状态 ( C t ) (C_t ) (Ct) 和门控的激活强度。
  4. 参数敏感性:权重和偏置的微小变化会显著影响门控行为和最终结果。

通过更换数据,可以清晰看到LSTM如何通过动态调整门控参数,灵活控制信息流。实际训练中,模型通过反向传播自动优化这些参数以适应任务需求。


4-分别从数学原理和逻辑架构上解释LSTM的三个门

LSTM(长短期记忆网络)是一种特殊的循环神经网络(RNN),通过引入遗忘门、输入门和输出门来解决传统RNN中的梯度消失和梯度爆炸问题。下面分别从数学原理和逻辑架构上解释LSTM的三个门及其记忆职责:

遗忘门(Forget Gate)

  • 数学原理
    [ f t = σ ( W f ⋅ [ h t − 1 , x t ] + b f ) ] [ f_t = \sigma(W_f \cdot [h_{t-1}, x_t] + b_f) ] [ft=σ(Wf[ht1,xt]+bf)]
    其中, ( f t ) (f_t) (ft) 是遗忘门的输出, ( h t − 1 ) (h_{t-1}) (ht1) 是上一时间步的隐藏状态, ( x t ) (x_t) (xt) 是当前时间步的输入, ( W f ) (W_f) (Wf) ( b f ) (b_f) (bf) 是遗忘门的权重和偏置, ( s i g m a ) (sigma) (sigma) 是 Sigmoid 激活函数。遗忘门的输出在 0 到 1 之间,表示对应位置的信息保留程度,0 表示完全遗忘,1 表示完全保留。
  • 记忆职责:遗忘门的作用是决定哪些信息需要被丢弃。它通过 Sigmoid 函数的输出值来控制上一时间步细胞状态 ( C t − 1 ) (C_{t-1}) (Ct1) 中的信息保留程度。如果遗忘门的值接近 0,则表示该部分信息将被遗忘;如果接近 1,则表示该部分信息将被保留。这种机制使得 LSTM 能够丢弃不再重要的信息,从而避免信息过载。

输入门(Input Gate)

  • 数学原理
    [ i t = σ ( W i ⋅ [ h t − 1 , x t ] + b i ) ] [ i_t = \sigma(W_i \cdot [h_{t-1}, x_t] + b_i) ] [it=σ(Wi[ht1,xt]+bi)]
    [ C ~ t = tanh ⁡ ( W C ⋅ [ h t − 1 , x t ] + b C ) ] [ \tilde{C}_t = \tanh(W_C \cdot [h_{t-1}, x_t] + b_C) ] [C~t=tanh(WC[ht1,xt]+bC)]
    其中, ( i t ) (i_t) (it) 是输入门的输出, ( t i l d e C t ) (tilde{C}_t) (tildeCt) 是当前时间步的候选记忆, ( W i ) (W_i) (Wi) ( W C ) (W_C) (WC) ( b i ) (b_i) (bi) ( b C ) (b_C) (bC) 分别是输入门和候选记忆的权重和偏置, ( s i g m a ) (sigma) (sigma) 是 Sigmoid 函数, ( t a n h ) (tanh) (tanh) 是双曲正切函数。输入门的输出在 0 到 1 之间,表示对应位置的信息更新程度。
  • 记忆职责:输入门的作用是决定哪些新信息需要被写入细胞状态。它由两部分组成:一部分是通过 Sigmoid 函数计算的输入门 ( i t ) (i_t) (it),表示当前时间步输入信息的重要性;另一部分是通过 ( t a n h ) (tanh) (tanh) 函数计算的候选记忆 ( t i l d e C t ) (tilde{C}_t) (tildeCt),表示当前时间步的新信息。输入门通过将这两部分相乘,决定哪些新信息需要被写入细胞状态。这种机制使得 LSTM 能够根据当前输入和上一时间步的隐藏状态,动态地更新细胞状态。

输出门(Output Gate)

  • 数学原理
    [ o t = σ ( W o ⋅ [ h t − 1 , x t ] + b o ) ] [ o_t = \sigma(W_o \cdot [h_{t-1}, x_t] + b_o) ] [ot=σ(Wo[ht1,xt]+bo)]
    [ h t = o t ⋅ tanh ⁡ ( C t ) ] [ h_t = o_t \cdot \tanh(C_t) ] [ht=ottanh(Ct)]
    其中, ( o t ) (o_t) (ot) 是输出门的输出, ( h t ) (h_t) (ht) 是当前时间步的隐藏状态, ( C t ) (C_t) (Ct) 是当前时间步的细胞状态, ( W o ) (W_o) (Wo) ( b o ) (b_o) (bo) 是输出门的权重和偏置, ( s i g m a ) (sigma) (sigma) 是 Sigmoid 函数, ( t a n h ) (tanh) (tanh) 是双曲正切函数。输出门的输出在 0 到 1 之间,表示对应隐藏状态的输出程度。
  • 记忆职责:输出门的作用是决定哪些信息需要被输出。它通过 Sigmoid 函数的输出值来控制当前时间步细胞状态 ( C t ) (C_t) (Ct) 中的信息输出程度。如果输出门的值接近 1,则表示该部分信息将被输出;如果接近 0,则表示该部分信息将被保留。这种机制使得 LSTM 能够根据当前输入和上一时间步的隐藏状态,动态地输出隐藏状态。

为什么可以这样实现

LSTM 的三个门通过不同的激活函数和权重矩阵,对信息进行加权和筛选,从而实现对长期依赖关系的建模。遗忘门通过 Sigmoid 函数决定哪些信息需要被丢弃,输入门通过 Sigmoid 函数和 ( t a n h ) (tanh) (tanh) 函数决定哪些新信息需要被写入细胞状态,输出门通过 Sigmoid 函数决定哪些信息需要被输出。这种门控机制使得 LSTM 能够动态地调整信息的保留和更新,从而有效地解决梯度消失和梯度爆炸问题。


http://www.xdnf.cn/news/647353.html

相关文章:

  • 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测
  • 对Spring IOC与AOP的理解
  • 深度学习在图像识别中的创新应用及其挑战
  • Innodb底层原理与Mysql日志机制深入刨析
  • 如何利用 Spring Data MongoDB 进行地理位置相关的查询?
  • vue+cesium示例:3Dtiles三维模型高度调整(附源码下载)
  • [IMX] 08.RTC 时钟
  • BGP笔记的基本概要
  • Linux进程通信之管道机制全面解析
  • Python基于Django的主观题自动阅卷系统【附源码、文档说明】
  • ​《分布式年夜》
  • export、export default和module.exports有什么区别
  • RocketMQ 深度解析:消息中间件核心原理与实践指南
  • 【Linux】进程 信号的产生
  • Vue修饰符全解析
  • ISO 26262-5 区分失效模式
  • OWASP Juice-Shop靶场(⭐⭐)
  • (1-6-2)Java泛型
  • 基于 PARE-YOLO 的多尺度注意力融合小目标检测模型
  • SRS流媒体服务器(7)源码分析之拉流篇
  • JavaScript数据类型及内置函数详解目录
  • 【数据集】2020年150m分辨率全球城市建筑高度数据集
  • 阿里云OSS Api工具类不使用sdk
  • Javase 基础加强 —— 08 IO流
  • 林曦词典|创造力
  • 第3章 Java的基本成设计结构
  • Python 程序如何高效地调试
  • 使用Python从GHCN-Daily数据库下载和处理历史天气数据:完整指南
  • 单调栈(c++)
  • 布谷鸟过滤器 (Cuckoo Filter)