NLP学习笔记六-lstm模型

news2024/11/30 4:54:34

NLP学习笔记六-lstm模型

上一篇我们讲的是simple RNN模型,那么其实lstm模型更像是simple RNN模型的改进或者变种。

对于lstm模型,我们先看下面一张图:

在这里插入图片描述

其实lstm模型的思想是建立在simple RNN模型上的,但是要更加贴近于显示,lstm模型认为,对于这种序列型的数据虽然simple RNN模型可以进行这种“信息记忆”,即simple RNN模型可以通过每次将上一个单元的输出利用起来,即当前单元的输出会考虑之前的输出。但是,他认为之前的有些信息是不需要的,所以加入了遗忘门,同时也认为当前输入x与上一个状态 h t h_t ht经过参数矩阵提取之后有些信息也是不需要的,所以又加入了输入门。

这里大家看一下上面的公式 f t f_t ft就是遗忘向量,它乘以上一个状态的输出就是对上一个状态的输出进行遗忘,有些信息就不要了,有些信息保存下来,所以 f t f_t ft在得到之前得到了一个sigmoid函数的处理,使得 f t f_t ft的值都在0-1之间,0-1即使 c t − 1 c_{t-1} ct1的遗忘程度。
那么 i t i_t it就是输入向量, c t / c^{/}_t ct/就是当前单元的输出, c t / c^{/}_t ct/就是对应simple RNN的 h t h_t ht。所以lstm模型它呢其实更加的注重之前信息的重要性相比较simple RNN模型。因为它无论遗忘向量 f t f_t ft还是输入向量 i t i_t it,还是 c t / c^{/}_t ct/都是由前一个单元的输出和当前单元输入拼接组成的向量乘以参数矩阵得到的,在最后呢, c t c_t ct又是前一个单元输出和当前单元的输出加权组合而成,其实在这个过程当中,我们可以发现 c t − 1 c_{t-1} ct1相比x输入被利用到的程度更高。也就是,我们更加注重之前信息的一个处理。

下面是遗忘向量的得到过程:

在这里插入图片描述
下面是输入向量的得到过程:

在这里插入图片描述

其实输入向量和遗忘向量得到的方法是一样的哈。

下面是当前单元new value的情况:
其实 c t / c^{/}_t ct/不是就RNN模型中的 h t h_t ht吗?
哈哈哈,如果你理解了c^{/}_t 和 R N N 模型中的 和RNN模型中的 RNN模型中的h_t$的关系其实会帮助你理解lstm模型。

在这里插入图片描述

最后我们还需要一个输出门,也就是对于当前转 c t c_t ct再进行一次限制转换,其实博主觉得,lstm模型看起来过于冗余,它一次又一次的对数据进行遗忘或者进行限制。先是对上一个状态的 c t − 1 c_{t-1} ct1进行一次遗忘门处理,然后又再次对 c t / c^{/}_t ct/进行了一次输入门处理,其实说是输入门处理,实际上也是遗忘门处理,这里大家看懂的话会理解的,最后又对 c t / c^{/}_t ct/ c t − 1 c_{t-1} ct1的加权结果有进行一次输出门处理,其实这个输出们处理也是遗忘门处理。
当然这要多亏了BP反向传播算法,否则这些想法都只是猜想。
下面是输出门的实现过程:

在这里插入图片描述

现在我们再来看看lstm,模型,我们可以发现,其实lstm模型,加入了很多限制,也就是它其实并没有去增强信息,而是不断地在遗忘信息,输入门、遗忘门、输出门起到的其实都是遗忘作用,另外lstm模型输入门、遗忘门、输出门的遗忘效果都是由上一个单元的输出和当前单元的输入共同决定的。然后,利用上一个单元的 c t − 1 c_{t-1} ct1和当前单元的 c t / c^{/}_t ct/加权组成当前单元主要的信息向量。也就是说是否进行遗忘,在lstm模型中,更加取决于,上一个状态的输出 h t h_t ht和当前状态的输入x。然后再次基础上考虑上一个单元的 c t − 1 c_{t-1} ct1和当前单元的 c t / c^{/}_t ct/经过输入门,遗忘门处理之后的加权结果。
我认为其实lstm模型是有问题的:
看下面一张图, c t c_t ct的遗忘由上一个状态的输出 h t h_t ht和当前状态的输入x决定,而 c t − 1 c_{t-1} ct1也由上一个状态的输出 h t h_t ht和当前状态的输入x决定,但是我们知道 c t − 1 c_{t-1} ct1是由上一个状态的输出 h t h_t ht和当前状态的输入x得到的,自己得到自己,再对自己进行遗忘,这有没有问题。然后 f t f_t ft确是由上一个状态的输出 h t h_t ht和当前状态的输入x得到的,但 c t c_t ct只是由之前状态决定的,也就是由由上一个状态的输出 h t h_t ht和当前状态的输入x决定之前信息的遗忘,其实对于信息的遗忘,我认为lstm模型或许还有待完善的地方,或许,我们的遗忘策略可以更加完善。当前信息遗忘可以由之前信息和当前输入共同决定,之前信息的遗忘也由之前信息和当前输入共同决定,而不是自己决定自己的遗忘。

在这里插入图片描述

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

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

相关文章

内网安全:内网渗透.(拿到内网主机最高权限 vulntarget 靶场 A)

内网安全:内网渗透.(拿到内网主机最高权限) 内网穿透又被称为NAT穿透,内网端口映射外网,在处于使用了NAT设备的私有TCP/IP网络中的主机之间建立连接的问题。通过映射端口,让外网的电脑找到处于内网的电脑。…

数据分析第19课pyecharts布局(基础图形绘制)

官网:https://pyecharts.org/#/zh-cn/global_options?id=legendopts%ef%bc%9a%e5%9b%be%e4%be%8b%e9%85%8d%e7%bd%ae%e9%a1%b9 不想每个属性方法的看,可以直接看gallery 官网的数据都是静态的,如果要做数据实时更新的,即做前后端结合时,会用到Vue框架,与后端连接,实现动…

Nacos架构与原理 - CAP一致性协议 ( Raft Distro)

文章目录 为什么 Nacos 需要⼀致性协议为什么 Nacos 选择了 Raft 以及 Distro从服务注册发现来看从配置管理来看为什么是 Raft 和 Distro ?Raft (CP模式)Distro (AP模式) Nacos ⼀致性协议的演进早期的 Nacos ⼀致性协议当前 Nacos 的⼀致性协…

[Python图像处理] 基于离散余弦变换的安全扩频数字水印

基于离散余弦变换的安全扩频数字水印 数字水印基于离散余弦变换的安全扩频数字水印实现安全扩频数字水印相关链接 数字水印 数字水印是可见的或不可见的标识码,这种标识码被永久嵌入图像中,并且即使在解码过后后仍存在于图像中。为了保证有效性&#xf…

Jetpack Compose 中在屏幕间共享数据的 5 种方案

1. 路由传参 Jetpack Compose 中路由传参的方式有很多种,具体可以参考 Jetpack Compose 中的导航路由 以下是最简单的路由传参测试代码: import androidx.compose.material3.Button import androidx.compose.material3.Text import androidx.compose.…

Java开发框架:Spring介绍

Spring 概述特点Spring 程序遇到的问题与解决 概述 Spring 是 Java EE 编程领域中的一个轻量级开源框架,由 Rod Johnson 在 2002 年最早提出并随后创建,目的是解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架 。其中,轻量…

代理模式的运用

文章目录 一、代理模式的运用1.1 介绍1.2 结构1.3 静态代理1.3.1 火车站买票案例类图1.3.2 代码 1.4 JDK动态代理1.4.1 代码1.4.2 JDK动态代理的执行流程 1.5 CGLIB动态代理1.5.1 导包1.5.2 代码 1.6 三种代理的对比1.7 优缺点1.8 使用场景 一、代理模式的运用 1.1 介绍 由于…

从0开始搭建Hyperledger Fabric2.x环境(fabric2.5版本)

Hyperledger Fabric 2.5环境搭建 一.Linux环境准备 # root登录 yum -y install git curl docker docker-compose tree yum -y install autoconf autotools-dev automake m4 perl yum -y install libtool autoreconf -ivf # 安装jq相关包 cd /opt git clone --recursive https…

软考A计划-系统架构师-官方考试指定教程-(8/15)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

Redis从入门到精通【进阶篇】之数据类型Stream详解和使用示例

文章目录 0.前言1. 基本概念1.1. Stream的结构1.2. 持久化1.3. Stream的消费者组 2.实现原理2.1. Stream的数据结构2.2. Stream的消息追加2.3. Stream的消费2.4. Stream的消费者组 3.Redis Stream底层原理3.1. 基数树(Radix Tree)3.2. listpacks小结 4.命…

数据清洗、数据处理入门!R语言我来了,数据不再零散!

一、引言 数据清洗和预处理是数据科学中必不可少的一部分,它们能够帮助我们准确地分析和预测未来趋势。如果你曾经尝试过进行分析或建模,你会发现数据往往不像我们所想象的那样干净、整洁。需要对数据进行仔细的检查、清理和处理,才能真正把…

JavaSE笔记(五)重制版

泛型程序设计 在前面我们学习了最重要的类和对象,了解了面向对象编程的思想,注意,非常重要,面向对象是必须要深入理解和掌握的内容,不能草草结束。在本章节,我们还会继续深入了解,从泛型开始&a…

delphi D11编程语言手册 学习笔记(P344-392) 接口/类操作

P344-365 接口 "接口" 的概念和 "类" 特别是 "抽象类" 近似, Delphi 之初并没有接口, 后来(Delphi 3)为了支持 COM 引入了接口, 再后来发展成为 Delphi 重要的语言特性. 使用 COM 步骤可能是这样的:     1.程序在使用组件之初, 先联系 "…

Java-API简析_java.util.ArrayList类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/131119289 出自【进步*于辰的博客】 其实我的【Java-API】专栏内的博文对大家来说意义是不大的。…

2023最新ChatGPT商业版4.8.8支持GPT4.0+AI绘画midjourney+实时语音识别输入+后台一键版本更新!

2023最新ChatGPT商业版4.8.8支持GPT4.0AI绘画midjourney永久更新! 1.网站系统源码介绍: 程序已支持ChatGPT4.0、Midjourney绘画、GPT3.5 API绘画、语音识别输入、用户会员套餐用户每日签到功能后台管理一键更新版本。支持手机电脑不同布局页面自适应。…

【MySQL 数据库】6、一篇文章学习【索引知识】,提高大数据量的查询效率【文末送书】

目录 一、索引概述二、索引结构(1) 不同类型的索引结构(2) 二叉树和红黑树(3) B 树(4) B树(5) Hash(6) 为什么InnoDB存储引擎选择使用Btree索引结构相对于二叉树,层级更少,搜索效率高; 三、索引的分类(1) 聚集索引和二级索引(2) 思考题 四、索…

STM32之FreeRTOS

目录 FreeRTOS 介绍 什么是 FreeRTOS ? 为什么选择 FreeRTOS ? FreeRTOS 资料与源码下载 祼机开发与 FreeRTOS 祼机开发: FreeRTOS: FreeRTOS 实现多任务的原理 二、移植 FreeRTOS 手动移植 使用CubeMX快速移植 快速移植流程…

基于Hadoop与Electron的京东商品评论词云统计系统

一、综合设计目的与要求 合肥工业大学软件工程专业《云计算、大数据技术与应用》课程综合设计报告。 爬取京东或淘宝某一商品的评论1000条,统计词频(使用MapReduce或HBase或Hive),并以词云的方式可视化呈现,最后设计为…

python-面向对象:三大特性高级特性

文章目录 前言一、面向对象三大特性:封装、继承、多态1.对象和类2.封装3.继承(1)重写父类方法(2)多继承(3)私有属性与私有方法 4.多态 二、三大特性的应用1.链表的封装2.栈的封装3.队列的封装4.二叉树的封装 三、高级特性1.类属性与实例属性2.类方法与静态方法3.pro…

三相PWM整流器滞环电流控制MATLAB仿真模型

三相PWM整流器滞环电流控制MATLAB仿真模型资源-CSDN文库https://download.csdn.net/download/weixin_56691527/87882090 模型简介: 该模型采用滞环电流控制方法来控制PWM整流器,在matlab/simulink中实现。电流内环采用三个滞环比较器,电压外…