• 双向 LSTM(Bidirectional LSTM)与普通 LSTM 公式过程


    双向 LSTM(Bidirectional LSTM)与普通 LSTM 有类似的公式过程,但有一些细微的差别。LSTM 是一种循环神经网络(RNN),用于处理序列数据。它具有一个门控机制,可以捕捉长期依赖关系。

    双向 LSTM 结构中有两个 LSTM 层,一个从前向后处理序列,另一个从后向前处理序列。这样,模型可以同时利用前面和后面的上下文信息。在处理序列时,每个时间步的输入会被分别传递给两个 LSTM 层,然后它们的输出会被合并。

    具体而言,双向 LSTM 的公式过程如下:

    • 前向 LSTM:

      • 输入门(input gate): i t = σ ( W i x x t + W i h h t − 1 + b i ) i_t = \sigma(W_{ix}x_t + W_{ih}h_{t-1} + b_i) it=σ(Wixxt+Wihht1+bi)
      • 遗忘门(forget gate): f t = σ ( W f x x t + W f h h t − 1 + b f ) f_t = \sigma(W_{fx}x_t + W_{fh}h_{t-1} + b_f) ft=σ(Wfxxt+Wfhht1+bf)
      • 细胞状态(cell state)更新: C ~ t = tanh ( W c x x t + W c h h t − 1 + b c ) \tilde{C}_t = \text{tanh}(W_{cx}x_t + W_{ch}h_{t-1} + b_c) C~t=tanh(Wcxxt+Wchht1+bc)
      • 细胞状态(cell state): C t = f t ⊙ C t − 1 + i t ⊙ C ~ t C_t = f_t \odot C_{t-1} + i_t \odot \tilde{C}_t Ct=ftCt1+itC~t
      • 输出门(output gate): o t = σ ( W o x x t + W o h h t − 1 + b o ) o_t = \sigma(W_{ox}x_t + W_{oh}h_{t-1} + b_o) ot=σ(Woxxt+Wohht1+bo)
      • 隐状态(hidden state): h t = o t ⊙ tanh ( C t ) h_t = o_t \odot \text{tanh}(C_t) ht=ottanh(Ct)
    • 后向 LSTM:

      • 输入门(input gate): i t ′ = σ ( W i x ′ x t + W i h ′ h t + 1 ′ + b i ′ ) i'_t = \sigma(W'_{ix}x_t + W'_{ih}h'_{t+1} + b'_i) it=σ(Wixxt+Wihht+1+bi)
      • 遗忘门(forget gate): f t ′ = σ ( W f x ′ x t + W f h ′ h t + 1 ′ + b f ′ ) f'_t = \sigma(W'_{fx}x_t + W'_{fh}h'_{t+1} + b'_f) ft=σ(Wfxxt+Wfhht+1+bf)
      • 细胞状态(cell state)更新: C ~ t ′ = tanh ( W c x ′ x t + W c h ′ h t + 1 ′ + b c ′ ) \tilde{C}'_t = \text{tanh}(W'_{cx}x_t + W'_{ch}h'_{t+1} + b'_c) C~t=tanh(Wcxxt+Wchht+1+bc)
      • 细胞状态(cell state): C t ′ = f t ′ ⊙ C t + 1 ′ + i t ′ ⊙ C ~ t ′ C'_t = f'_t \odot C'_{t+1} + i'_t \odot \tilde{C}'_t Ct=ftCt+1+itC~t
      • 输出门(output gate): o t ′ = σ ( W o x ′ x t + W o h ′ h t + 1 ′ + b o ′ ) o'_t = \sigma(W'_{ox}x_t + W'_{oh}h'_{t+1} + b'_o) ot=σ(Woxxt+Wohht+1+bo)
      • 隐状态(hidden state): h t ′ = o t ′ ⊙ tanh ( C t ′ ) h'_t = o'_t \odot \text{tanh}(C'_t) ht=ottanh(Ct)

    其中, x t x_t xt 是输入序列的第 t t t 个时间步的向量表示, h t h_t ht 是前向 LSTM 在第 t t t 个时间步的隐状态, h t + 1 ′ h'_{t+1} ht+1 是后向 LSTM 在第 t t t 个时间步的隐状态, C t C_t Ct 是前向 LSTM 在第 t t t 个时间步的细胞状态, C t + 1 ′ C'_{t+1} Ct+1 是后向 LSTM 在第 t t t 个时间步的细胞状态。 W W W b b b 是模型的参数, σ \sigma σ 是 sigmoid 函数, ⊙ \odot 表示逐元素相乘。

    通过双向 LSTM,我们可以获得更全面的序列信息,有助于提高模型在序列任务中的性能。

  • 相关阅读:
    LeetCode 1582. 二进制矩阵中的特殊位置
    软考网络工程师笔记-分值分布
    分享5款2023年不容错过的宝藏软件
    JS中内置的日期类Date,显示系统时间、停止系统时间
    52. N皇后 II(难度:困难)
    当你敲完Hello World后的第一步——C
    安达发|富士康科技集团利用自动排程APS软件打造智慧工厂
    keil5显示内存和存储占用百分比进度条工具
    阿里云国际站云服务器数据备份方法有哪些?
    YouTube深度学习视频推荐系统
  • 原文地址:https://blog.csdn.net/weixin_44790306/article/details/132612405