《神经网络》—— 长短期记忆网络(Long Short-Term Memory,LSTM)

news2024/11/17 18:23:11

文章目录

  • 一、LSTM的简单介绍
  • 二、 LSTM的核心组件
  • 三、 LSTM的优势
  • 四、 应用场景

一、LSTM的简单介绍

  • 传统RNN循环神经网络的局限

    • 示例:当出现“我的职业是程序员。。。。。。我最擅长的是电脑”。当需要预测最后的词“电脑”。当前的信息建议下一个词可能是一种技能,但是如果我们需要弄清楚是什么技能,需要先前提到的离当前位置很远的“职业是程序员”的上下文。这说明相关信息和当前预测位置之间的间隔就变得相当的大。
    • 在理论上,RNN绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN则没法太好的学习到这些知识
    • 原因是:梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。​
  • 长短期记忆网络(Long Short-Term Memory,LSTM)是一种特殊的循环神经网络(Recurrent Neural Network, RNN),主要设计用来解决传统RNN在处理长序列数据时存在的梯度消失梯度爆炸问题。LSTM通过引入门(Gate)机制,使得网络能够记住长期依赖的信息,同时忽略不重要的信息。

  • 下面链接中是对RNN网络的介绍:

    • https://blog.csdn.net/weixin_73504499/article/details/142770470?spm=1001.2014.3001.5501
  • 以下为LSTM的内部结构图:
    在这里插入图片描述

  • LSTM相当于在RNN的隐藏层的内部结构中进行了上图中进一步的改进,并循环的向后输出数据,如下图所示:
    在这里插入图片描述

二、 LSTM的核心组件

LSTM的核心在于其细胞状态(Cell State)和三个“门”机制:遗忘门(Forget Gate)、输入门(Input Gate)和输出门(Output Gate)。

  1. 细胞状态(Cell State)

    • 细胞状态是LSTM中的“记忆”线,它沿着整个链一直传递下去,只有一些少量的线性操作作用于其上,因此信息可以很容易地流过而不改变。
    • 如下图所示:
      在这里插入图片描述
  2. 遗忘门(Forget Gate)

    • 遗忘门决定了上一细胞状态中的哪些信息需要被丢弃。它通过查看前一个隐藏状态 h t − 1 h_{t-1} ht1 和当前输入 x t x_t xt,然后由sigmoid函数输出一个0到1之间的数,这个数表示细胞状态中信息的保留程度(1表示完全保留,0表示完全丢弃)。
    • 如下图为遗忘门结构和计算公式
      在这里插入图片描述
  3. 输入门(Input Gate)

    • 输入门决定了当前输入 x t x_t xt 中哪些信息需要被加入到细胞状态中。它首先通过sigmoid层决定哪些值需要更新,然后tanh层创建一个新的候选值向量 C ~ t \tilde{C}_t C~t,这个向量可能会被加入到细胞状态中。
    • 如下图为输入门结构和计算公式
      在这里插入图片描述
  4. 细胞状态更新

    • 旧的细胞状态 C t − 1 C_{t-1} Ct1 通过遗忘门和输入门的作用,更新为新的细胞状态 C t C_t Ct
    • 下图为更新结构图和计算公式
      在这里插入图片描述
  5. 输出门(Output Gate)

    • 输出门决定了基于细胞状态的当前输出是什么。首先,一个sigmoid层决定细胞状态的哪些部分需要输出。然后,细胞状态通过tanh处理(将其值规范化到-1到1之间),再与sigmoid层的输出相乘,最终得到当前时间步的输出 h t h_t ht
    • 下图为输出门的结构图和计算公式
      在这里插入图片描述

三、 LSTM的优势

  • 长期依赖:LSTM能够捕获序列数据中的长期依赖关系,这是传统RNN难以做到的。
  • 梯度问题:通过引入门机制,LSTM有效地缓解了RNN在处理长序列时容易出现的梯度消失或梯度爆炸问题。

四、 应用场景

LSTM在多种序列预测任务中表现出色,包括但不限于:

  • 自然语言处理:如机器翻译、文本生成、情感分析等。
  • 时间序列预测:如股票价格预测、天气预测等。
  • 语音识别:将语音信号转换为文本。
  • 推荐系统:基于用户历史行为预测未来兴趣。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2200710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iOS Object-C 将数组倒置(倒叙)

使用NSArray自带的对象方法:reverseObjectEnumerator 代码如下: NSArray * tempArray [[NSArray alloc]initWithObjects:"a","b","c","d", nil]; //将tempArray转换成["d","c","b","a"]; …

PasteForm最佳CRUD实践,实际案例PasteTemplate详解之3000问(四)

无论100个表还是30个表,在使用PasteForm模式的时候,管理端的页面是一样的,大概4个页面, 利用不同操作模式下的不同dto数据模型,通过后端修改对应的dto可以做到控制前端的UI,在没有特别特殊的需求下可以做到…

【光追模组】雷神之锤4光追mod,调色并修改光影,并且支持光追效果,游戏画质大提升

大家好,今天小编我给大家继续引入一款游戏mod,这次这个模组主要是针对雷神之锤4进行修改,如果你觉得游戏本身光影有缺陷,觉得游戏色彩有点失真的话,或者说你想让雷神之锤4这款游戏增加对光线追踪的支持的话&#xff0c…

在docker中安装并运行mysql8.0.31

第一步:命令行拉取mysql镜像 docker pull mysql:8.0.31查看是否拉取成功 docker images mysql:latest第二步:运行mysql镜像,启动mysql实例 docker run -p 3307:3307 -e MYSQL_ROOT_PASSWORD"123456" -d mysql:8.0.313307:3307前…

FMCW 雷达芯片关键技术学习

CLOCK GENERATION 借助外部晶体产生的 50 MHz 时钟,时钟生成模块为 RF 子系统生成 76 至 81 GHz 时钟信号。时钟生成模块包含内置振荡器电路、参考 PLL、FMCW PLL 和 X4 乘法器。内置振荡器电路与外部晶体一起为参考 PLL 生成 50 MHz 时钟。参考 PLL 为 FMCW PLL 和…

腾讯云SDK项目管理

音视频终端 SDK(腾讯云视立方)控制台提供项目管理功能,您可参照以下步骤为您的应用快速添加音视频通话能力和多人音视频互动能力。 若需正式开发并上线音视频应用,请在完成创建后,参照 集成指南 进行开发包下载、集成…

fastadmin 列表页表格实现动态列

记录:fastadmin 列表页表格实现动态列 后端代码 /*** 商品库存余额表*/public function kucunbalance(){$houseList (new House)->where([shop_id>SHOP_ID])->order(id desc)->field(name,id)->select();//设置过滤方法$this->request->filte…

Java速成之反射,轻松搞定反射

Hello,大家好,我是Feri,一枚十多年的程序员,同时也是一名在读研究生,关注我,且看一个平凡的程序员如何在自我成长,只为各位小伙伴提供编程相关干货知识,希望在自我蜕变的路上&#x…

记录一次搭建Nacos集群的问题

Java环境:jdk1.8.0_231 Nacos版本:nacos-server-2.2.0.zip 虽然官方推荐的是3个节点,我们还是使用的是2个节点,首先解压创建nacos_config库,导入nacos/conf目录下的mysql-schema.sql SQL文件,如下表&…

ubuntu双系统分区划分

EFI系统分区(Windows):自Windows 8起,UEFI模式下的BIOS使用该分区。简单来说,它用于存储已安装系统的EFI引导程序。此分区在资源管理器中无法查看,因为它没有驱动器号,但它必须存在,…

【ISAC】通感算一体化

北京邮电大学冯志勇:面向智能交通的通感算一体化网络技术 香港中文大学(深圳)许杰:面向通感算融合的无线资源优化 三者逻辑 感知增强: 多个视角的通信,感知其他视角看不到的通信增强:以前做信道估计都是盲的…

ctfshow-web 萌新题

给她 spring漏洞 pyload: 1.dirsearch扫描&#xff0c;发现git 2. GitHack工具得到.git文件 <?php $passsprintf("and pass%s",addslashes($_GET[pass])); $sqlsprintf("select * from user where name%s $pass",addslashes($_GET[name])); ?>…

01 Solidity--

第一个 Solidity 程序 Solidity 是一种用于编写以太坊虚拟机&#xff08;EVM&#xff09;智能合约的编程语言。 掌握 Solidity 是参与链上项目的必备技能 在 Remix 中&#xff0c;左侧菜单有三个按钮&#xff0c;分别对应文件&#xff08;编写代码&#xff09;、编译&#x…

CUDA编程基础概念

1. CPU和GPU 其中绿色的是计算单元&#xff0c;橙红色的是存储单元&#xff0c;橙黄色的是控制单元。 2. 什么样的任务适合GPU&#xff1f; 计算密集型的程序。易于并行的程序。GPU其实是一种SIMD(Single Instruction Multiple Data)架构。 3. 内存模型以及硬件 Device对应…

QD1-P9 HTML常用标签:超链接(1)

本节学习&#xff1a;HTML 超链接标签&#xff0c;也就是 a 标签。 在前端开发中&#xff0c;<a>​ 标签是超链接&#xff08;anchor&#xff09;标签&#xff0c;用于创建指向其他网页、文件、位置等的链接。 本节视频 www.bilibili.com/video/BV1n64y1U7oj?p9 简单示…

【模板进阶】std::function

一、 s t d : : f u n c t i o n std::function std::function的介绍 s t d : : f u n c t i o n std::function std::function是 C 11 C11 C11引入的一个可调用对象包装器&#xff0c;它可以通过指定模板参数&#xff0c;统一来处理各自可调用对象。 二、实现类似 s t d : …

食家巷小程序:品味平凉美食,领略甘肃风情

甘肃平凉犹如一颗璀璨的明珠&#xff0c;散发着独特的魅力。这里不仅有壮丽的自然风光&#xff0c;更有令人垂涎欲滴的美食。而食家巷小程序&#xff0c;就如同一个神奇的美食宝库&#xff0c;将平凉的美味呈现在你的指尖。 &#x1f4a5;平凉&#xff0c;美食的天堂。 平凉红…

erlang学习:Linux命令学习11

crontab命令 crontab命令是用于管理定时任务的命令行工具。它提供了多种选项和参数&#xff0c;可以用来创建、编辑、查看和删除用户的定时任务。 常用命令 以下是一些常用的crontab命令&#xff1a; crontab -e&#xff1a;编辑当前用户的定时任务列表。该命令会在默认编辑…

高产胜母猪,带你上线我的新项目!

大家好&#xff0c;我是程序员鱼皮。9月&#xff0c;我处于极度爆肝状态&#xff0c;成功完结了最新带大家做的项目 面试刷题平台 。 当我们做完一个项目后&#xff0c;一定要记得把项目上线&#xff0c;这样才算是完成了学习的 “闭环”&#xff0c;写到简历上也才有竞争力。 …

鲁班到家上门安装维修系统源码开发之结构功能解析

随着物联网和智能家居的普及&#xff0c;消费者对便捷、高效的生活方式需求日益增加。鲁班到家作为一款专注于家居安装维修服务的平台&#xff0c;凭借其多渠道预约、智能派单、在线支付与费用明细透明等优势&#xff0c;在市场上赢得了广泛认可。本文将详细解析鲁班到家上门安…