第R2周:LSTM-火灾温度预测:一文搞懂LSTM(长短期记忆网络)

一文搞懂LSTM(长短期记忆网络)

一句话介绍LSTM,它是RNN的进阶版,如果说RNN的最大限度是理解一句话,那么LSTM的最大限度则是理解一段话,详细介绍如下:
LSTM,全称为长短期记忆网络(Long Short Term Memory networks),是一种特殊的RNN,能够学习到长期依赖关系。LSTM由Hochreiter & Schmidhuber (1997)提出,许多研究者进行了一系列的工作对其改进并使之发扬光大。LSTM在许多问题上效果非常好,现在被广泛使用。
本文将从LSTM的本质、LSTM的原理两个方面,带你一文搞懂LSTM。
在这里插入图片描述

一、LSTM的本质

RNN 面临问题:RNN(递归神经网络)在处理长序列时面临的主要问题:短时记忆和梯度消失/梯度爆炸。

梯度更新规则:
在这里插入图片描述

  1. RNN面临的问题1
    1)短时记忆
    ●问题描述:RNN在处理长序列时,由于信息的传递是通过隐藏状态进行的,随着时间的推移,较早时间步的信息可能会在传递到后面的时间步时逐渐消失或被覆盖。
    ●影响:这导致RNN难以捕捉和利用序列中的长期依赖关系,从而限制了其在处理复杂任务时的性能。
    2)梯度消失/梯度爆炸
    ●问题描述:在RNN的反向传播过程中,梯度会随着时间步的推移而逐渐消失(变得非常小)或爆炸(变得非常大)。
    ●影响:梯度消失使得RNN在训练时难以学习到长期依赖关系,因为较早时间步的梯度信息在反向传播到初始层时几乎为零。梯度爆炸则可能导致训练过程不稳定,权重更新过大,甚至导致数值溢出。

  2. LSTM的提出
    LSTM是一种循环神经网络(RNN)的变体,它解决了传统RNN在处理长序列数据时的问题,特别是在面对长时间滞后关系时容易出现的梯度消失或梯度爆炸问题。
    具体来说,LSTM通过引入称为“门”的结构,包括输入门、遗忘门和输出门,以及细胞状态(cell state),解决了以下问题:

  1. 长期依赖问题: 在传统的RNN中,当序列非常长时,网络往往会遇到梯度消失或梯度爆炸的问题,导致难以捕捉到序列中长距离的依赖关系。LSTM通过细胞状态来传递信息,避免了梯度消失或爆炸,从而更好地捕捉长期依赖关系。

  2. 遗忘和记忆: LSTM的门控结构允许网络选择性地忘记或记住某些信息,这使得网络可以更好地处理序列中的噪声或不重要的信息,同时保留重要的长期依赖关系。

  3. 梯度传播: LSTM通过门控结构,使得梯度可以在时间上更好地传播,从而使得网络的训练更加稳定和高效。

因此,LSTM通过引入门控结构和细胞状态,有效地解决了传统RNN在处理长序列数据时遇到的梯度消失、长期依赖等问题,使得其在语言建模、时间序列预测、机器翻译等任务中取得了显著的进展。

二、LSTM的原理

  1. RNN 工作原理
    第一个词被转换成了机器可读的向量,然后 RNN 逐个处理向量序列。

逐一处理矢量序列:
在这里插入图片描述
1)隐藏状态的传递

●过程描述:在处理序列数据时,RNN将前一时间步的隐藏状态传递给下一个时间步。
●作用:隐藏状态充当了神经网络的“记忆”,它包含了网络之前所见过的数据的相关信息。
●重要性:这种传递机制使得RNN能够捕捉序列中的时序依赖关系。

将隐藏状态传递给下一个时间步:在这里插入图片描述

2)隐藏状态的计算

●细胞结构:RNN的一个细胞接收当前时间步的输入和前一时间步的隐藏状态。
●组合方式:当前输入和先前隐藏状态被组合成一个向量,这个向量融合了当前和先前的信息。
●激活函数:组合后的向量经过一个tanh激活函数的处理,输出新的隐藏状态。这个新的隐藏状态既包含了当前输入的信息,也包含了之前所有输入的历史信息。合后的向量经过一个tanh激活函数的处理,输出新的隐藏状态。这个新的隐藏状态既包含了当前输入的信息,也包含了之前所有输入的历史信息。

tanh激活函数(区间-1~1):
在这里插入图片描述

●输出:新的隐藏状态被输出,并被传递给下一个时间步,继续参与序列的处理过程。

RNN的细胞结构和运算:
在这里插入图片描述

  1. LSTM工作原理:
    原始RNN的隐藏层只有一个状态,即 h,它对于短期的输入非常敏感。那么如果我们再增加一个门(gate)机制用于控制特征的流通和损失,即 c,让它来保存长期的状态,这就是长短时记忆网络(Long Short Term Memory,LSTM)。

在这里插入图片描述

新增加的状态 c,称为单元状态。我们把LSTM按照时间维度展开:
在这里插入图片描述

在这里插入图片描述

2.1. 遗忘门
在这里插入图片描述

遗忘门(sigmoid激活函数):
在这里插入图片描述
●作用:决定哪些旧信息应该从记忆单元中遗忘或移除。
●组成:遗忘门仅由一个sigmoid激活函数组成。

sigmoid激活函数(区间0~1):
在这里插入图片描述

2.2. 输入门
●作用:决定哪些新信息应该被添加到记忆单元中。
●组成:输入门由一个sigmoid激活函数和一个tanh激活函数组成。sigmoid函数决定哪些信息是重要的,而tanh函数则生成新的候选信息。
●运算:输入门的输出与候选信息相乘,得到的结果将在记忆单元更新时被考虑。

输入门(sigmoid激活函数 + tanh激活函数):
在这里插入图片描述

2.3. 输出门
在这里插入图片描述

输出门(sigmoid激活函数 + tanh激活函数):
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python-鼠标绘画线条程序

闲来无聊简单编写了一个绘图小程序。 主要思路 主要是基于Python中的内置模块turtle编写的,简单扩展了一下,通过绑定事件能够达到鼠标绘制、删除、存储已经绘制图案的线条这几个功能。 路径结构 -draw- define.py- main.py- myturtle.py使用 点住鼠…

Element学习(入门)(1)

1、Element官网:https://element.eleme.cn/#/zh-CN 2、来源与用处 3、Element的快速入门 (1) (2)在入口文件(main.js)中引入 (3) 4、快捷键ctrlc,在当前的项目…

zsh 配置 docker 自动补全

zsh 配置 docker 自动补全 在终端中使用 docker 的命令的时候必须要全部手敲,没有提示,于是就在找是否有自动补全的脚本,搜索了一圈踩了一些坑总结了一下具体的步骤。 首先执行如下命令: mkdir -p ~/.zsh/completion curl -L h…

JavaEE: 查看线程信息

示例用代码 public class Main {static class MyThread extends Thread {Overridepublic void run() {while (true) {System.out.println("hello thread");try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}}}}public st…

Python 用户输入和while循环

1、input()函数的工作原理(用户输入) input()函数让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其赋给变量,以其使用。 在input()函数接受一个参数,既要向用户显示的提示,为了…

Linux 利用 ftrace 分析内核调用

目录 一、概述二、ftrace 的使用1、常用信息2、指定 ftrace 跟踪器3、设置要跟踪的函数4、ftrace 的开关5、function 跟踪程序6、function_graph 跟踪程序7、函数过滤器8、跟踪事件 三、trace-cmd 的使用1、常见命令2、常用选项2.1 列出可用的追踪器2.2 跟踪特定进程的函数调用…

计算机毕业设计选题推荐-课程教学平台-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

ceph

ceph是一个开源的,用c语言编写的分布式的存储系统。存储文件数据。 /dev/sdb fdisk /dev/sdb gdisk /dev/sdb lvm 逻辑卷 可以扩容 raid 磁盘 高可用 基于物理意义上的单机的存储系统。 分布式由多台物理磁盘组成一个集群,在这个基础之上实现高可…

激光导航AGV叉车那么多,究竟该怎么选?一篇文章讲明白~

AGV叉车 随着经济的快速发展,大部分企业的物料搬运开始脱离人工劳作,取而代之的是以叉车为主的机械化搬运。AGV叉车是工业搬运车辆,是指对成件托盘货物进行装卸、堆垛和短距离运输作业的各种轮式搬运车辆,主要应用于货场、工厂车间…

HslCommunicationDemo各品牌Plc通信测试软件工具

目录 1、HslCommunicationDemo程序包 2、ModbusTCP举例说明 (0)概述 (1)线圈写操作 (2)寄存器写操作 3、C#工程中DLL库文件使用 (1)创建Winform程序工程 (2)写寄存器 1、HslC…

基于内地城市生活垃圾收运场景的路线规划算法

基于混合遗传算法和模拟退火算法的优化垃圾收集路线规划 摘要 本文提出了一种基于混合遗传算法(GA)和模拟退火算法(SA)的创新路线规划方法,旨在优化内地城市的生活垃圾收集效率。算法结合了遗传算法的全局搜索能力和…

MySQL第1讲--详细安装教程和启动方法

文章目录 安装教程打开或关闭方式方式1:方式2: 客户端连接方式客户端连接方式1:客户端连接方式2:MySQL环境变量的配置 安装教程 1、mysql官网下载最新的符合本系统的版本 2、点击.msi文件进入安装页面 选择默认的选项开发者安…

15.DMDIS 工具优化

文章目录 前言一、安装部署安装数据源转换作业监控 二、性能优化问题 1 :DMETL 卡顿问题问题 2 :DM -> HIVE 的迁移速度慢问题 3 :ORACLE -> DM 的迁移速度慢问题 4 :GP -> DM 的迁移速度慢问题 5 :DM -> …

[ERR] 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘(已解决)

今天在使用navicate Premium运行sql文件时出现如下错误: 错误:1273 - Unknown collation: utf8mb4_0900_ai_ci 报错原因: 生成转储文件(也就是sql文件)的数据库版本为8.0,而要运行sql文件的数据库版本为5.6,因为是高版…

Android进阶之路 - 字体加粗,定制化字体粗度

在客户端中不论是PC端,还是移动端主要价值之一就体现在用户交互方面,也就是用户体验了,接下来讲的是很常见的字体加粗问题 UI大找茬 深入浅出字体、字体库TextView文本渐变字体阴影、文字阴影字体加粗 - 定制化字体粗度 在开发中经常会遇到…

DFS之搜索顺序与剪枝

搜索顺序: 1.https://www.acwing.com/problem/content/1119/ 首先,我们考虑一个贪心: 假如说A的倒数K个字符恰好与B的前K个字符重合,那么我们就连接。 也就是说我们一旦匹配就直接相连而不是继续找更长的重合的一段子串。 因…

【学习方法】高效学习因素 ② ( 学习动机 | 内在学习动机 | 外在学习动机 | 外在学习动机的调整方向 | 保护学习兴趣 | 高考竞争分析 )

文章目录 一、高效学习的其它因素 - 学习动机1、学习动机2、内在学习动机3、外在学习动机4、外在学习动机的问题所在5、外在学习动机的调整方向6、保护学习兴趣7、高考竞争分析 上一篇博客 【学习方法】高效学习因素 ① ( 开始学习 | 高效学习因素五大因素 | 高效学习公式 - 学…

unplugin-vue-components 插件配置 忽略 部分目录下的组件自动导入

背景 vue3 项目 为了省略 第三方库ui 组件 全局组件的注册代码,使用了 unplugin-vue-components 插件 原理 组件识别 在编译阶段,unplugin-vue-components 会扫描 Vue 单文件组件(.vue 文件)的模板部分,识别出所有使…

day31

3.9 信号量集 1> 原理图 信号量集主要完成多个进程之间同步问题 2> 信号量集的API函数接口 1、创建用于生成消息队列的钥匙#include <sys/types.h>#include <sys/ipc.h>key_t ftok(const char *pathname, int proj_id);功能&#xff1a;通过给定的文件路径…

你也觉得FOTA升级难吗?这份详细教程让你自信升级!

前言&#xff1a; 我经常在各个讨论群里看到有合宙Air780EP的用户说&#xff1a; FOTA远程升级有点难呀~一步错后面就得重新来了&#xff0c;有没有大佬给个教程啊&#xff1f; 用户提需求了&#xff0c;那我们肯定要满足啊&#xff0c;就连夜赶了一篇 在整理这篇文章之前&…