论文阅读【6】RRN:LSTM论文阅读报告(1)

news2025/5/15 12:10:28

在这里插入图片描述

lstm类似于Simple_RNN,但是又比他复杂很多.我是参考这个视频的老师讲解的,这个老师讲解的非常好.https://www.bilibili.com/video/BV1FP4y1Z7Fj?p=4&vd_source=0a7fa919fba05ffcb79b57040ef74756

在这里插入图片描述
lstm的最重要的设计就是那一条传输带,即为向量 C t C_t Ct,过去的信息通过他传送给下一个时刻,就是依靠传送带避免梯度消失.

遗忘门(forget Gate)

在这里插入图片描述

输入的是一个向量a,然后将a通过一个sigmoid函数,sigmoid函数将其归一化到0~1之间.比如下面这个矩阵,将其中的每个数字都归一化到了0-1之间,在归一化之后维度不发生改变.
在这里插入图片描述

然后将归一化的向量f与签一个输出的向量c做内积,只需要把Elementwise multiplication的中与f向量中相同维度的值相乘即可,例如将0.9*0.5=0.45,得到输出output.
在这里插入图片描述

遗忘门可以让c有选择的通过,如果f对应维度的值为0,则这个维度的c就不能通过.如果f中对应维度的值为1,则c这个维度的数据就可以全部通过,就是他本身.
在这里插入图片描述

其中 f t f_t ft是上一个状态的输入 h t − 1 h_{t-1} ht1与当前的输出 x t x_t xt做contact,然后乘以一个权重向量 W f W_f Wf,最后再做sigmoid得到向量 f t f_t ft,其中 f t f_t ft的每一个值都是介于0~1之间,权重参数 W f W_f Wf需要反向传播,学习得到.

输入门

在这里插入图片描述

输入门的 i t i_t it依赖于旧的状态的 h t − 1 h_{t-1} ht1和新的输入 x t x_t xt,很类似于遗忘门的计算过程,首先将 h t − 1 h_{t-1} ht1 x t x_t xt做contact,得到更高维的向量,然后与参数矩阵 W t W_t Wt做乘积计算,得到的结果通过一个sgmoid函数得到一个矩阵 i t i_t it,其中 i t i_t it中的每一个元素都是介于0~1之间,其中 W t W_t Wt是通过学习获得的.

更新输入信息(new value)

在这里插入图片描述

还需要计算一个值new value C ~ t \widetilde{C}_t C t,还是跟之前一样先将 h t − 1 h_{t-1} ht1 x t x_t xt做contact,然后乘以一个权重矩阵 W c W_c Wc,这时候使用的激活函数就与之间不同了,使用的是双曲正切函数,得到值是介于-1~1之间,其中 W c W_c Wc是通过学习获得的.

在这里插入图片描述

得到了 f t f_t ft, i t i_t it, C ~ t \widetilde{C}_t C t,然后将 f t f_t ft与上一个输入 C t − 1 C_{t-1} Ct1里面的每一个元素做内积,如果 f t f_t ft中有的信息为0 ,则是对传送带上一个信息的选择性的遗忘,然后再将 i t i_t it, C ~ t \widetilde{C}_t C t做内积,得到新的输入信息,因为他们的维度都是相同的,则将他们全部加到一起,最后输出的信息 C t C_t Ct将作为下一个信息的输入.

输出层

更新完信息 C t C_t Ct之后,就要计算输出信息,也就是状态向量 h t h_t ht,计算过程如下:
在这里插入图片描述

首先是计算输出门 O t O_t Ot,计算过程是这样的,先将 h t − 1 h_{t-1} ht1 x t x_t xt做contact,然后乘以一个权重矩阵 w o w_o wo,在将结果做sigmoid,得到 O t O_t Ot,其中每一个元素都是介于0~1之间.
在这里插入图片描述

对传送带的每一个 c t c_t ct都进行双曲正切tanth,将值压缩到-1~1之间,然后与输出门 o t o_t ot做内积得到新的状态向量 h t h_t ht. h t h_t ht有两份copy,其中一份成为下一个lstm的输入,另外一个作为lstm的输出信息.对于当前状态,可以说一共有t个状态输入,所有的信息都积累在状态 h t h_t ht里面.

在这里插入图片描述
lstm一共有四个门,遗忘门,输入门,new value,输出门,则对应的是四个权重参数矩阵w,其中每个权重参数的维度为:

  • 行:shape(h)
  • 列:shape(h)+shape(x)
    所以lstm的维度是:
    4 ∗ s h a p e ( h ) ∗ [ s h a p e ( h ) + s h a p e ( x ) ] 4*shape(h)*[shape(h)+shape(x)] 4shape(h)[shape(h)+shape(x)]

LSTM的应用

  • 情感分析
    在这里插入图片描述
    只需要将lstm的最后一个信息输出即可,然后放到sigmoid函数当中,最后得到了一个0-1之间的结果,代表正例和负例.

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

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

相关文章

跨程序共享数据:Android四大组件之内容提供器

跨程序共享数据:Android四大组件之内容提供器前言七、跨程序共享数据:Android四大组件之内容提供器7.1 内容提供器(Content Provider)简介7.2 运行时权限(软件不能为所欲为,想要什么权限,还得主…

【project 】软件使用

project软件使用 1.如何为某任务或资源创建日历 创建新日历 工具->更改工作时间->新建->定义日历名称,选择“新建基准日历”->根据各承建商的日历创建相应的日历 使用新日历 拷贝各承建商的各项任务到指定的项目计划中,然后&#xff…

基于特征选择的二元蜻蜓算法(Matlab代码实现)

🍒🍒🍒欢迎关注🌈🌈🌈 📝个人主页:我爱Matlab 👍点赞➕评论➕收藏 养成习惯(一键三连)🌻🌻🌻 🍌希…

C. String Equality(思维)

Problem - 1451C - Codeforces Ashish有两个字符串a和b,每个字符串的长度为n,还有一个整数k。 他想通过对a进行一些(可能是零)操作,将字符串a转换成字符串b。 在一次操作中,他可以 选择一个索引i&#x…

哪吒汽车的技术发布会都发布了什么?纯干货抢先看

11月21日,哪吒汽车发布了浩智超算、浩智电驱、浩智增程三大技术品牌,并推出三款技术产品,包括智能汽车中央超算平台、800V SiC高性能电驱系统、高效三合一增程器。去年年底,哪吒曾经发布过山海平台,据说是一个支持哪吒…

性能环境搭建(0-CentOS7 安装配置)

1.前言 根据现有的组件,准备动手搭建一套完整的监控环境。既然是练手,还是在虚拟机里自己先练习一下。出了问题也好恢复。所有就先从最基本的开始。那就是操作系统开始搭建玩起来。 2.环境 资源有效利用吧,公司的资源能自由使用的那最方便…

数据结构-复杂度(一)

目录 一、什么是复杂度? 算法效率: 复杂度: 二、复杂度分类 一、时间复杂度 二、空间复杂度(Space Complexity) 了解数据结构之前需要了解复杂度。 一、什么是复杂度? 在介绍复杂度之前我们现分享一…

CengBox靶机

0x01 信息收集 nmap -sV 10.0.2.6 22 ssh端口,弱口令爆破为主 80 web页面 目录遍历,备份文件查找等 dirsearch -u http://10.0.2.6 获取了目录,发现存在一个maseradmin目录,可能存在些东西,继续扫。 dirsearch -u …

C规范编辑笔记(四)

大家好,今天来给大家分享一下C规范编辑笔记第四篇,距离我们C规范编辑笔记第三篇也快过去了一个月,这次继续分享一波~ 1、以大写形式声明常量, 为避免误解,常量值必须根据其类型使用后缀。这不仅有助于代码阅读&#x…

CSO面对面丨如何通过“联合作战”,加强银行安全体系建设

随着数字化转型的深入,以银行为代表的金融机构不断加码金融科技建设。然而随着线上业务量不断上升,银行面临的安全风险暴露面也愈大、问题愈加复杂。本期腾讯安全《CSO面对面》栏目,邀请到某头部商业银行安全主管,以金融行业的安全…

【Lilishop商城】No1-1.业务了解+划分各模块逻辑

目录 A1.整体业务逻辑 B1.模块整理 C1.运营后台 C2.店铺后台 C3.买方平台 B2.重点模块梳理图 C1.订单模块 C2.退货/退款模块(即售后模块) C3.促销活动模块 A2.模块划分(自己思考的) A3.数据结构划分(自己思考…

算法设计与分析 SCAU11079 可以移动的石子合并(优先做)

11079 可以移动的石子合并(优先做) 时间限制:1000MS 代码长度限制:10KB 提交次数:25 通过次数:9 题型: 编程题 语言: G;GCC;VC;JAVA Description 有n堆石子形成一行(a1,a2,…,an,ai为第i堆石子个数),现要将石子合并成一堆&…

Android App开发手机阅读中贝塞尔曲线的原理讲解及实现波浪起伏动画实战(附源码和演示视频 可直接使用)

需要图片集和源码请点赞关注收藏后评论区留言~~~ 一、贝塞尔曲线的原理 贝塞尔曲线是一种用于二维图形的数学曲线。贝塞尔曲线由节点和线段构成,其中节点是可拖动的支点,而线段彷佛有弹性的牛皮筋。它除了起点和终点之外,不再描绘中间的折现…

嵌入式(驱动开发)(中断处理)

一、什么是中断 一种硬件上的通知机制,用来通知CPU发生了某种需要立即处理的事件 分为: 内部中断 CPU执行程序的过程中,发生的一些硬件出错、运算出错事件(如分母为0、溢出等等),不可屏蔽外部中断 外设发…

SpringBoot怎么整合第三方缓存技术/EhCache缓存技术使用以及Redis缓存技术使用怎么在SpringBoot中使用

写在前面: 继续记录自己的SpringBoot学习之旅,这次是SpringBoot应用相关知识学习记录。若看不懂则建议先看前几篇博客,详细代码可在我的Gitee仓库SpringBoot克隆下载学习使用! 3.5 整合第三方技术 3.5.1 缓存 3.5.1.1 介绍 缓…

2022/11/21[指针] 多维数组与指针的联系

1、指向数组元素的指针变量 #include<stdio.h> int main() {int* p;int a[3][4] { {1,2,3,4},{5,6,7,8},{9,10,11,12} };int i, j;//将第0行第0列的地址赋给pfor (p a[0]; p < a[0] 12; p)//注意是a[0]{if ((p - a[0]) % 4 0)printf("\n");printf("…

java--Lambda(2)表达式语法

文章目录0 写在前面1 Lambda 表达式的五种形式1.1 不包含参数&#xff1a;1.2 包含一个参数&#xff1a;1.3 有多个参数1.4 表达式主体是不是一个代码块1.5 不声明参数类型2 写在末尾0 写在前面 最基本的 Lambda 表达式&#xff0c;它由三部分组成具体格式是这样子的&#xff…

【Py】使用flask-apscheduler动态调整作业参数(附源码)

之前的项目常使用Apscheduler进行定时任务调度&#xff0c;但最近想通过接口对这些任务进行动态调整&#xff0c;比如调整任务启停、调整任务执行时间、间隔时间等等 flask-apscheduler这个基于flask的库能够满足上面的需求&#xff0c;而且由于基于flask&#xff0c;所以我常…

查题校园免费题库接口

查题校园免费题库接口 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 查题校园题库&#xff1a;查题校园题库后台&#xff08;点…

ButterKnife依赖注入框架源码解析

BuffterKnife 采用 注解 APT技术 APT&#xff1a;Annotation Processor tool 注解处理器&#xff0c;是javac的一个工具&#xff0c;每个处理器都是继承于AbstractProcessor 注解处理器是运行在自己的java虚拟机中 APT如何生成字节码文件&#xff1a; Annotation Processing 不…