NLP学习笔记六-lstm模型

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反向传播算法,否则这些想法都只是猜想。
下面是输出门的实现过程:

在这里插入图片描述
输出门,最后还要对 c t c_t ct做一次遗忘。
即最终 h t = o t ∗ t a n h ( c t ) h_t=o_t*tanh(c_t) ht=ottanh(ct)
注:对 c t c_t ct做tanh处理,还是为例防止梯度出现爆炸。

现在我们再来看看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模型或许还有待完善的地方,或许,我们的遗忘策略可以更加完善。当前信息遗忘可以由之前信息和当前输入共同决定,之前信息的遗忘也由之前信息和当前输入共同决定,而不是自己决定自己的遗忘。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【SpringBoot】整合Elasticsearch 快速入门操作索引

官网操作文档:Elasticsearch Clients | Elastic 踩坑太多了。。。这里表明一下Spring Boot2.4以上版本可能会出现问题,所以我降到了2.2.1.RELEASE。对于现在2023年6月而言,Es版本已经到了8.8,而SpringBoot版本已经到了3.x版…

Vue配置proxy代理,但接口报错2007 bad domain

1、排查proxy代理配置是否有误 排查 proxyTable 对象中配置的 target 是否正确。若正确,那可能就是请求头的问题。 无特殊配置的情况下,请求头是这样子的: Host 和 Referer 是本地地址,如果后端增加 CSRF 防御机制,…

to be delete

一、grafana版本升级 1.1 还是先跟着官网简单走一波 建议经常升级Grafana,以获取最新的修补程序和增强功能。 为了实现这一点,Grafana升级向后兼容,并且升级过程简单快捷。升级通常是安全的(在许多次要版本和一个主要版本之间&a…

使用JSAPl来做一个倒计时的效果

今天的小案例需要做一个倒计时的效果 我们的时分秒需要一直进行倒计时&#xff0c;然后我们的页面颜色需要根据定时器的操作来进行更换&#xff0c;首先我们还是可以来分析一下我们的HTML步骤 <div class"countdown"><p class"next">今天是22…

线程的创建和使用(一)

1、线程 1.1、线程的概念 一个线程就是一个 "执行流". 每个线程之间都可以按照顺讯执行自己的代码. 多个线程之间 "同时" 执行着多份代码. 1.2、创建线程 方法一&#xff1a;继承Thread类 public class Exe_01 {public static void main(String[] args…

[论文阅读笔记76]GPT Understands, Too(P-tuning)

1. 基本信息 题目论文作者与单位来源年份GPT Understands, Too清华大学 Citations, References 论文链接&#xff1a;https://arxiv.org/pdf/2103.10385.pdf 论文代码&#xff1a; 2. 要点 研究主题问题背景核心方法流程亮点数据集结论论文类型关键字微调大模型采用传统微…

什么是HMI和SCADA?两者有什么区别

前言 几十年来&#xff0c;工业控制系统在工业自动化中发挥了重要作用&#xff0c;它允许过程制造商从生产车间采集、分析、处理数据。 在当今瞬息万变的工业环境中&#xff0c;制造商和公用事业公司必须采用现代HMI/SCADA和数字化转型&#xff0c;以跟上变化的步伐&#xff0…

Unity制作二次元卡通渲染角色材质——5、脸部的特殊处理

Unity制作二次元材质角色 回到目录 大家好&#xff0c;我是阿赵。 这里继续讲二次元角色材质的制作。这次是讲头部的做法。 1、脸部 之前在分析资源的时候&#xff0c;其实已经发现了这个模型的脸部法线有问题&#xff0c;导致在做光照模型的时候&#xff0c;脸部很奇怪。 把f…

NLP:词义分布的空间维度——从文本符号到词向量表征

自然语言处理的前提是文本表示&#xff08;Representation&#xff09;&#xff0c;即如何将人类符号化的文本转换成 计算机所能“理解”的表征形式。早期的自然语言表征主要采用离散表示。近年来&#xff0c;随着深度 学习的不断发展&#xff0c;基于神经网络的分布式词向量技…

概率论:方差、标准差、协方差、皮尔逊相关系数、线性相关

方差和标准差&#xff1a; 一个随机变量&#xff0c;的值的变化程度可以用方差计算&#xff1a; &#xff1b;其中 是期望。 另外一种等价表达式&#xff1a; 其中为均值&#xff0c;N为总体例数 我们举个例子&#xff1a; 服从均一分布&#xff0c;取值为0.1&#xff0c;0…

SpringSecurity多源认证之全部交给spring容器

文章目录 一. 前言二. 配置流程2.1 SecurityConfig.class2.2 JwtAuthenticationTokenFilter2.3 AuthenticationManagerProcessingFilter 疑问 一. 前言 相关文章: 认证/支付/优惠劵策略模式-security多源认证 这篇文章没有将自定义的认证管理器注入容器. spring-security2.6.…

CSS基础学习--7 fonts字体

一、CSS 字体 CSS字体属性定义字体系列&#xff0c;加粗&#xff0c;大小&#xff0c;文字样式。 二、字体系列 font-family 属性设置文本的字体系列 font-family 属性应该设置几个字体名称作为一种"后备"机制&#xff0c;如果浏览器不支持第一种字体&#xff0c;…

C++入门前必看,超详细

目录 前言 一.C的关键字 二.命名空间 2.1命名空间定义 2.2命名空间的使用 三.C的输入及输出 四.缺省参数 4.1概念 4.2缺省参数分类 4.3缺省参数的注意点 五.引用 5.1 概念 5.2引用的特性 六.内联函数 6.1概念 6.2内联函数的特性 七.auto 7.1auto概念 7.2auto的…

Unity入门5——Camera

一、参数面板 二、参数介绍 1. Clear Flags&#xff1a;清除背景 Skybox&#xff1a;天空盒背景&#xff08;通常用来做 3D 游戏&#xff09; Solid Color&#xff1a;使用 Background 颜色填充&#xff08;通常设置为全黑或全白&#xff0c;2D 使用&#xff09; Depth Only&am…

APP测试面试题快问快答(四)

16.App测试的实时日志如何获取&#xff1f; 考察点&#xff1a;是否有移动app测试的日志获取相关经验 一般可以通过以下方式获取&#xff1a; 1.可以使用adb命令&#xff1a;adb logcat | findstr "com.sankuai.meituan" >d:\test.txt 2.用ddms抓取&#xff0…

Postgresql源码(106)Generic Plan与Custom Plan的区别(以分区表为例)

相关&#xff1a; 《Postgresql源码&#xff08;105&#xff09;分区表剪枝代码分析》 《Postgresql源码&#xff08;106&#xff09;Generic Plan与Custom Plan的区别&#xff08;以分区表为例&#xff09;》 实例 CREATE TABLE measurement (city_id int not null,l…

FFmpeg音视频处理工具介绍及应用

1 FFmpeg介绍 FFmpeg项目由 Fabrice Bellard在2000年创立。到目前为止&#xff0c;FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。Ffmpeg&#xff08;FastForward Mpeg&#xff09;是一款遵循GPL的开源软件&#xff0c;在音视频处理方面表现…

UDS关于0x37服务退出传输学习笔记

1.服务说明 客户端使用此服务来终止客户端和服务器之间的数据传输&#xff08;上传或下载&#xff09;。 2.请求消息 2.1请求消息子功能参数$Level&#xff08;LEV_&#xff09;定义 此服务不使用子函数参数。 2.2请求消息数据参数定义 transferRequestParameterRecord&a…

《微服务实战》 第二十九章 分布式事务框架seata AT模式

前言 本章节介绍微服务分布式项目中&#xff0c;使用的事务框架seata。 官网&#xff1a;http://seata.io/zh-cn/ springcloud-nacos-seata&#xff1a;https://github.com/seata/seata-samples/tree/master/springcloud-nacos-seata 1、概念 Seata 是一款开源的分布式事务解…

使用docker快速搭建redis哨兵模式

说明 本文主要参考&#xff1a; https://www.cnblogs.com/coderaniu/p/15352323.html https://developer.aliyun.com/article/892805 但是这两篇博客均缺失部分关键性细节&#xff0c;所以重新撰文。读者可以结合本文和上述文章一起阅读。 安装步骤 安装docker和docker-co…