大白话理解LSTM神经网络(附实例讲解)

article/2025/9/22 13:18:04

前言

本文章为个人学习笔记整理,所学习的内容来自b站up主@老弓的学习日记,附有实例讲解。

 

归类

长短期记忆神经网络(LSTM)是一种特殊的循环神经网络(RNN)。原始的RNN在训练中,随着训练时间的加长以及网络层数的增多,容易出现梯度爆炸或梯度消失的问题,导致无法处理较长序列数据,从而无法获取长距离数据的信息。为解决该问题,提出了它的改进方案,即LSTM神经网络。

 


设计思路
RNN神经网络:记住所有信息,无论是有用的还是无用的。
LSTM神经网络:选择一个记忆细胞,对信息有选择性地记忆。

LSTM的前向传播

其中, t为时刻,C_{t}为记忆细胞,h_{t}为状态,x_{t}为输入,f_{t}为遗忘门,i_{t}为更新门,o_{t}为输出门。

运算过程如下所示:

(注:公式中的g_{t}与图中tanh上方的c_{t}一致) 

实例讲解 

以上内容看不懂没关系,这里会用简单的例子来讲解,让我们回到这个图:

假设现在是期末考试周且你的脑容量有限,昨天你考完了高等数学,后天将考线性代数,你的线性代数老师也为你贴心地划好了考试重点。上文已经提到过,RNN会记住所有的信息,无论是有用信息还是无用信息,即你复习了整本线性代数的书本,并将其内容与上一门高等数学的内容全部记忆了下来。而对于LSTM来说,你将遗忘大部分高等数学的内容,而只保留基础数学运算等通用内容,并且只复习记忆线性代数书本中老师划出的重点。

图中的C_{t-1}\bigotimes f _{t}会生成一系列0-1之间的数,如[0,1,0.7,0,0.3,1],对其赋权重后,进行选择性遗忘。对应刚才的例子,此处C_{t-1}为刚考完的高等数学,C_{t-1}\bigotimes f _{t}的处理结果为:遗忘大部分高等数学的知识,记忆能够用到线代考试中的基础数学运算等知识。

那么如何理解更新门i_{t}呢?老师所划出的重点并不会全部出现在试卷上,你可以在复习的过程中根据自己的理解,判断哪些内容可能考,哪些内容肯定不考,由此再进行筛选过滤。这就是更新门的作用。

在LSTM的每个时间步里,都有一个记忆cell,给予LSTM选择记忆的功能。

LSTM的反向传播(能够解决梯度消失问题的原因) 

通过调节w_{hf}w_{hi}w_{hg} ,可以灵活控制\frac{\partial C_{t}}{\partial C _{t-1}}的值,当要从n时刻长期记忆某个东西直到m时刻时,该路径上的\prod_{t=n}^{m}\frac{\partial C_{t}}{\partial C_{t-1}}\approx 1\times 1\times 1\cdot \cdot \cdot \times 1,从而大大缓解了梯度消失。

(原up有这部分的具体公式推导,感兴趣的小伙伴可以去看一下)

 

 

 

 


http://chatgpt.dhexx.cn/article/YFawi29B.shtml

相关文章

Idea如何导入一个SpringBoot项目

最近公司要求开发工具要用Idea,作为一个eclipse的老员工,记录一下Idea中遇到的坑 刚开始用Idea从Git上导入一个项目时,遇到了很多坑,网上有很多方法,我不多做介绍。只说明一下我使用的方法。 1.本地新建一个文件夹&a…

idea导入项目框架的方法

学习时,使用IDEA的时候,经常需要导入项目框架,下面操作介绍如何导入项目框架。 打开需要导入的项目 打开方式: 打开 idea ,选择 Import Project 也可以进入idea后,选择 Flie --> New --> Project …

IDEA导入Eclipse项目

背景:用习惯了idea再去用eclipse实在用的不习惯,于是将老的eclipse项目导入到eclipse,网上有很多教程,看了很多博客都不行,一直报错,各种报错,现在终于好了,我们一起来看看怎么将ecl…

关于新版idea如何导入项目

现今有很多同学都发现idea怎么找不到import project这个按钮了,我也遇到了这个问题,经过研究发现,之前使用import project最关键还是在于project form Existing Sources。 而就在打开项目后,File-->New-->Project form Exi…

idea导入项目后没有被识别为maven项目的解决办法

开发中遇到了idea导入项目后没有被识别为maven项目,使用下面方法即可 1、首先点击工具栏最左边的 Help 再点击 Find Action ;或者使用快捷键 CtrlShiftA 2、接着在输入框中输入 maven projects ,会弹出一个 Add Maven Projects 选项&#xf…

IDEA导入web项目并启动

导入项目 依次点击idea左上角的File->Project Structure->project 修改SDK、Language level,选择自己电脑对应的jdk版本,为web的运行提供jdk的环境 第二步,依次点击Facts->Web 点击Artifacts->Web Application:Exploded->…

Java代码实例2,idea导入项目后,没有项目结构

目录 专栏导读一、idea导入项目后,没有项目结构二、解决方案1、点击file -> project structure -> Modules2、点击右上角加号 --> import Modules3、选择import modules from external model4、导入后,就可以显示项目的目录结构了。 专栏导读 &…

IntelliJ IDEA导入Maven项目

(1)项目导入, 点击intelliJ IDEA的Open按钮, 找到项目目录下pom的文件,然后点击ok (先admin, 在biz-admin, 再加dal) 由于之前导入过这个项目,所以现在要先删除再导入 导入后编译器的右侧就会出现Maven Projects的侧边…

新手小白如何用IDEA成功导入并运行项目(IDEA+gradle+mysql)

因为我也是最近刚开始使用 IntelliJ IDEA ,以下是我的一个成功在浏览器运行出项目界面的过程,主要分为5步走战略,仅供参考。 1、打开IDEA 选择 file–>Open–>找到自己所要导入项目–>选着项目文件里的build.gradle文件–>点击…

eclipse项目导入idea

目录 一、IDEA的导入 二、项目配置 三,在IntelliJ IDEA配置Tomcat 一、IDEA的导入 1、首先选择File->New->Project from Existing sources/Project form Version Control,如果项目在你的本地则选择 Project from Existing sources, 如果你想从SVN上直接导入…

idea导入项目全部爆红问题怎么解决

背景 今天导入Git上拉下来的项目,又双叒爆红了。就像代码来大姨妈一样,紧张地手足无措。让我们一起看下咋回事。 二. 走过的路 为数不多的曾经爆红的经验告诉我,这一定是maven大哥们出问题了! 于是我开始检查: IDEA…

IDEA导入一个本地项目并运行

IDEA导入一个本地项目并运行 操作如下: 至此,一直点击下一步即可导入项目成功 此时项目想要运行,还需要配置Artifacts,如下图: 由于时间原因,稍后会补充更多细节

eclipse导入idea项目

eclipse导入已存在的项目,之前是用的idea 1、使用idea打开项目 ctrlaltshifts 2、打开eclipse,选择import,再选择 Exsting Projects into Workspace 3、用eclipse打开后,再用idea右键新建一个类发现没有 java class 选项了&#…

IntelliJ IDEA导入本地SpringBoot项目最超详细教程

前言 废话不多说,可是换成idea开发又该怎样导入呢?整合最近我已需要学习别人的项目,希望把这个过程记录下来帮助大家学习.1.打开open,去寻找对应的位置文件 2.如何引入的问题 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8874d34b7be648138027d8d02dc88c2b…

在IDEA中导入本地项目

最近的软件构造实验需要把项目交到GitHub上,想要验证一下交上去的东西能不能运行,打算从GitHub上把提交的项目克隆下来,那克隆下来的项目怎么导入到IDEA中运行呢 第一步:从GitHub上clone代码-Download ZIP 第二步:下载…

IDEA使用教程—5、如何导入一个已有的项目

scala与此类似,只是需要的是sbt而不是maven. 今天刚开始学习使用intellij IDEA来进行后台开发,感觉这个软件跟之前用过的eclipse和myeclipse都不是很想同,然后学长给了《精通Spring4.x企业应用开发实战》这本书上相关的代码,今…

idea导入springboot项目运行教程

前置要求 ①具备Java环境,并且可以通过Maven进行安装项目依赖; ②具备IntelliJ IDEA工具,推荐专业版,社区版也不影响; ③具备Mysql5.7或以上版本数据库; ④具备Navicat数据库可视化管理工具&#xff1b…

如何在idea中导入web项目(超详细!)

在idea中导入web项目 以day08_jsp项目为例: 先把整个项目复制粘贴到idea的项目目录下 然后idea中会显示一个day08_jsp的module,此时它的图片会少一个蓝块 选择File–>Project Structure 选择Modules–>点 号 选择Import Module 选择对应需要导入的项目&…

idea怎么导入maven项目

idea怎么导入maven项目 方法一: 1、选择import project ,然后选择想要导入的项目,选择以maven的方式 import项目,如图 2、选项根据自己的需要配置即可,一直点的next完成以后,maven会自动下载依赖包 &…

IntelliJ IDEA如何导出和导入项目

导出项目 1,第一步打开IDEA,我们可以看见我们的项目 2,第二步点击文件,选择导出,选择Project to Zip File 3,第三步我们选择导出的位置为桌面,文件名为自己的项目名 4,第四步点击…