pytorch学习——LSTM和GRU

这篇具有很好参考价值的文章主要介绍了pytorch学习——LSTM和GRU。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考书籍:https://zh-v2.d2l.ai/chapter_recurrent-modern/lstm.html

参考论文: https://colah.github.io/posts/2015-08-Understanding-LSTMs/

简介:

        LSTM(长短期记忆网络)和GRU(门控循环单元)是两种常用的改进型循环神经网络(RNN),用于解决传统RNN中的长期依赖性和梯度消失/梯度爆炸等问题。

        LSTM和GRU都通过引入门控机制和记忆单元来增强RNN的建模能力,并有效地捕捉长期依赖性。它们具有类似的结构,但在门控机制的设计和计算复杂度上有所不同。

一.LSTM长短期记忆网络(long short-term memory)

        LSTM(Long Short-Term Memory)是一种常用的循环神经网络(RNN)变体,旨在解决传统RNN在处理长期依赖性时容易出现的梯度消失或梯度爆炸问题。LSTM通过引入门控机制,有效地捕捉和记忆时间序列数据中的长期依赖关系。

pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

 pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

 pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

 pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

        LSTM的核心思想是使用称为"门"的结构来控制信息的流动和记忆的更新。下面是LSTM的主要组成部分   

  1. 输入门(Input Gate):输入门决定哪些信息将被传递到细胞状态(Cell State)。它使用一个Sigmoid激活函数来控制输入的权重,以及一个tanh激活函数来处理输入的值。输入门的计算公式如下:
    i_t = sigmoid(W_i * x_t + U_i * h_(t-1) + b_i)
    ```
    ````
    g_t = tanh(W_g * x_t + U_g * h_(t-1) + b_g)
    ````
  2. 遗忘门(Forget Gate):遗忘门决定元状态中哪些信息应该被遗忘。它通过一个Sigmoid激活函数来控制元状态中的旧信息的权重。遗忘门的计算公式如下:

    f_t = sigmoid(W_f * x_t + U_f * h_(t-1) + b_f)
    
  3. 元状态更新(Cell State Update):元状态通过将输入门和遗忘门的结果相乘,并添加新的候选值(由tanh激活函数计算得到)来更新。元状态更新的计算公式如下:

    C_t = f_t * C_(t-1) + i_t * g_t
    
  4. 输出门(Output Gate):输出门决定从元状态中输出的值。它使用一个Sigmoid激活函数来控制输出的权重,并使用tanh激活函数处理元状态。输出门的计算公式如下:

    o_t = sigmoid(W_o * x_t + U_o * h_(t-1) + b_o)
    
    h_t = o_t * tanh(C_t)
    

        在上述公式中,x_t表示当前时间步骤的输入,h_(t-1)表示上一个时间步骤的隐藏状态,i_t、f_t、o_t分别表示输入门、遗忘门和输出门的输出,g_t表示候选值,C_t表示元状态,h_t表示当前时间步骤的隐藏状态。

        通过使用输入门、遗忘门和输出门,LSTM能够控制信息流动和记忆的更新,有效地捕捉和处理时间序列数据中的长期依赖关系。这使得LSTM在许多任务中表现出色,如语言模型、机器翻译、语音识别等。

二.GRU(Gate Recurrent Unit)门控循环单元

参考链接:人人都能看懂的GRU - 知乎

        GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种。和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。

GRU和LSTM在很多情况下实际表现上相差无几,那么为什么我们要使用新人GRU(2014年提出)而不是相对经受了更多考验的LSTM(1997提出)呢。

下图1-1引用论文中的一段话来说明GRU的优势所在。

      pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

简单译文:我们在我们的实验中选择GRU是因为它的实验效果与LSTM相似,但是更易于计算。

 

相比LSTM,使用GRU能够达到相当的效果,并且相比之下更容易进行训练,能够很大程度上提高训练效率,因此很多时候会更倾向于使用GRU。

OK,那么为什么说GRU更容易进行训练呢,下面开始介绍一下GRU的内部结构。

2.1GRU的输入和输出结构

pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

 pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

2.2GRU的内部结构

        pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm 

 pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

 pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm

pytorch学习——LSTM和GRU,pytorch,深度学习,pytorch,学习,lstm 文章来源地址https://www.toymoban.com/news/detail-702012.html

到了这里,关于pytorch学习——LSTM和GRU的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 深度学习RNN,GRU,LSTM文本生成解码器的训练损失讲解(附代码)

    以下以GRU为例讲解RNN作为解码器时如何根据用户、商品特征信息 hidden 生成评价。 解码器部分代码如下: 在训练时,解码器会有两个输入:一是编码器提取的用户、商品特征,二是用户对商品的评价。 评价是文字,在训练开始前已经转换成了Token ID, 比如 I love this item , 每个

    2024年04月12日
    浏览(28)
  • PyTorch训练RNN, GRU, LSTM:手写数字识别

    数据集:MNIST 该数据集的内容是手写数字识别,其分为两部分,分别含有60000张训练图片和10000张测试图片 图片来源:https://tensornews.cn/mnist_intro/ 神经网络:RNN, GRU, LSTM 【1】https://www.youtube.com/watch?v=Gl2WXLIMvKAlist=PLhhyoLH6IjfxeoooqP9rhU3HJIAVAJ3Vzindex=5

    2024年02月15日
    浏览(29)
  • 大数据深度学习长短时记忆网络(LSTM):从理论到PyTorch实战演示

    本文深入探讨了长短时记忆网络(LSTM)的核心概念、结构与数学原理,对LSTM与GRU的差异进行了对比,并通过逻辑分析阐述了LSTM的工作原理。文章还详细演示了如何使用PyTorch构建和训练LSTM模型,并突出了LSTM在实际应用中的优势。 人工神经网络(ANN)的设计灵感来源于人类大

    2024年01月25日
    浏览(35)
  • LSTM 与 GRU

    RNN无法处理长距离依赖问题,通俗点就是不能处理一些较长的序列数据,那么今天就来介绍一下两个能处理长距离依赖问题地RNN变种结构,LSTM和GRU。 上左图是普通RNN结构图,上右图是LSTM结构图。 从图中我们可以看出,普通的RNN在隐藏层中只传递一个状态值h,而LSTM不仅传递

    2024年02月08日
    浏览(28)
  • 一步一步详解LSTM网络【从RNN到LSTM到GRU等,直至attention】

    本文主要译至Understanding LSTM Networks并加上了部分笔者的见解,对于全面理解LSTM有一定的帮助。 人类不会每一秒都从头开始思考。 当你阅读这篇文章时,你会根据你对前面单词的理解来理解每个单词。 你不会扔掉所有东西,重新开始思考。 你的思想有坚持。Your thoughts have

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

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

    2024年02月02日
    浏览(29)
  • 28. 深度学习进阶 - LSTM

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

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

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

    2024年02月16日
    浏览(37)
  • 循环神经网络的变体模型-LSTM、GRU

    长短时记忆网络(Long Short-Term Memory,LSTM)是一种深度学习模型,属于循环神经网络(Recurrent Neural Network,RNN)的一种变体。LSTM的设计旨在解决传统RNN中遇到的长序列依赖问题,以更好地捕捉和处理序列数据中的长期依赖关系。 下面是LSTM的内部结构图 LSTM为了改善梯度消失,

    2024年01月21日
    浏览(23)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包