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

这篇具有很好参考价值的文章主要介绍了双向 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,我们可以获得更全面的序列信息,有助于提高模型在序列任务中的性能。文章来源地址https://www.toymoban.com/news/detail-701174.html

到了这里,关于双向 LSTM(Bidirectional LSTM)与普通 LSTM 公式过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):BERT的结构

    分类目录:《深入理解深度学习》总目录 相关文章: · BERT(Bidirectional Encoder Representations from Transformers):基础知识 · BERT(Bidirectional Encoder Representations from Transformers):BERT的结构 · BERT(Bidirectional Encoder Representations from Transformers):MLM(Masked Language Model) · BERT(Bidirect

    2024年02月11日
    浏览(49)
  • 深入理解深度学习——BERT派生模型:BART(Bidirectional and Auto-Regressive Transformers)

    分类目录:《深入理解深度学习》总目录 UniLM和XLNet都尝试在一定程度上融合BERT的双向编码思想,以及GPT的单向编码思想,同时兼具自编码的语义理解能力和自回归的文本生成能力。由脸书公司提出的BART(Bidirectional and Auto-Regressive Transformers)也是如此,它是一个兼顾上下文

    2024年02月11日
    浏览(42)
  • 人工智能_机器学习065_SVM支持向量机KKT条件_深度理解KKT条件下的损失函数求解过程_公式详细推导_---人工智能工作笔记0105

    之前我们已经说了KKT条件,其实就是用来解决 如何实现对,不等式条件下的,目标函数的求解问题,之前我们说的拉格朗日乘数法,是用来对 等式条件下的目标函数进行求解. KKT条件是这样做的,添加了一个阿尔法平方对吧,这个阿尔法平方肯定是大于0的,那么 可以结合下面的文章去

    2024年02月04日
    浏览(40)
  • 深度学习之详解常见梯度算法(概念、公式、原理、算法实现过程)

    目录 前言 一、如何实现梯度下降? 二、梯度计算 三、常见的梯度公式及梯度算法 常见的梯度公式: 1.标量对向量的梯度: 2. 标量对矩阵的梯度: 3. 向量对标量的梯度: 常见梯度算法: 四、常见梯度算法实现  1、批量梯度下降算法实现函数 2、随机梯度下降算法实现函数

    2024年04月15日
    浏览(42)
  • 机器人寻路算法双向A*(Bidirectional A*)算法的实现C++、Python、Matlab语言

    最近好久没更新,在搞华为的软件挑战赛(软挑),好卷只能说。去年还能混进32强,今年就比较迷糊了,这东西对我来说主要还是看运气,毕竟没有实力哈哈哈。 但是,好歹自己吭哧吭哧搞了两周,也和大家分享一下自己的收获吧,希望能为后来有需要的同学提供一些帮助

    2024年04月13日
    浏览(42)
  • 28. 深度学习进阶 - LSTM

    Hi, 你好。我是茶桁。 我们上一节课,用了一个示例来展示了一下我们为什么要用RNN神经网络,它和全连接的神经网络具体有什么区别。 这节课,我们就着上一节课的内容继续往后讲,没看过上节课的,建议回头去好好看看,特别是对代码的进程顺序好好的弄清楚。 全连接的

    2024年02月04日
    浏览(45)
  • 【深度学习】——LSTM参数设置

    LSTM的批大小可以根据训练数据集的大小和计算资源的限制来确定。一般而言,批大小 越大 ,训练速度越快,但可能会 导致过拟合 和 内存限制 。批大小 越小 ,训练速度越慢,但对于 较大的数据集和内存限制较严格的情况下会更加稳定 。 在实践中,可以通过尝试不同的批

    2024年02月02日
    浏览(35)
  • 深度学习——LSTM解决分类问题

    循环神经网络(Recurrent Neural Network,RNN)是一种深度学习模型,主要用于处理序列数据,如文本、语音、时间序列等具有时序关系的数据。 RNN的关键思想是引入了循环结构,允许信息在网络内部进行传递。与传统的前馈神经网络(Feedforward Neural Network)不同,RNN在处理序列数

    2024年02月16日
    浏览(46)
  • 深度学习 | DRNN、BRNN、LSTM、GRU

    1.1、基本思想          能捕捉数据中更复杂模式并更好地处理长期依赖关系。         深度分层模型比浅层模型更有效率。         Deep RNN比传统RNN表征能力更强。         那么该如何引入深层结构呢? 传统的RNN在每个时间步的迭代都可以分为三个部分:   

    2024年02月03日
    浏览(43)
  • 【深度学习】动手学深度学习(PyTorch版)李沐 2.4.3 梯度【公式推导】

      我们可以连接一个多元函数对其所有变量的偏导数,以得到该函数的 梯度 (gradient)向量。 具体而言,设函数 f : R n → R f:mathbb{R}^{n}tomathbb{R} f : R n → R 的输入是一个 n n n 维向量 x ⃗ = [ x 1 x 2 ⋅ ⋅ ⋅ x n ] vec x=begin{bmatrix} x_1\\\\x_2\\\\···\\\\x_nend{bmatrix} x = ​ x 1 ​ x 2 ​

    2024年01月17日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包