NLP学习笔记六-lstm模型

这篇具有很好参考价值的文章主要介绍了NLP学习笔记六-lstm模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

NLP学习笔记六-lstm模型

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

对于lstm模型,先看一下总的网络结构图:
NLP学习笔记六-lstm模型

我们再看下面一张图:

NLP学习笔记六-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输入被利用到的程度更高。也就是,我们更加注重之前信息的一个处理。

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

NLP学习笔记六-lstm模型
下面是输入向量的得到过程:

NLP学习笔记六-lstm模型

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

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

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

NLP学习笔记六-lstm模型
输出门,最后还要对 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模型或许还有待完善的地方,或许,我们的遗忘策略可以更加完善。当前信息遗忘可以由之前信息和当前输入共同决定,之前信息的遗忘也由之前信息和当前输入共同决定,而不是自己决定自己的遗忘。

NLP学习笔记六-lstm模型文章来源地址https://www.toymoban.com/news/detail-476656.html

到了这里,关于NLP学习笔记六-lstm模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Bert+Attention+LSTM智能校园知识图谱问答推荐系统——NLP自然语言处理算法应用(含Python全部工程源码及训练模型)+数据集

    这个项目充分利用了Google的Bert模型,这是一种基于Attention的大规模语料预训练模型,以及LSTM命名实体识别网络。项目的目标是设计一套通用的问答系统处理逻辑,以实现智能问答任务。 首先,我们采用了Bert模型,这是一种在自然语言处理领域非常强大的预训练模型。它具备

    2024年02月09日
    浏览(67)
  • nlp大模型课程笔记

    👆说明之前的大模型其实有很多都是基于迁移学习的方法。 attention机制的总结,解决了信息瓶颈的问题。 处理词组时BPE的过程 👆pos表示的是token所在的位置 👆技巧是layer normalization。 参数高效微调方法 大多数的模型做的都是基座模型、不一定具备对话能力。 一般会通过基

    2024年02月11日
    浏览(36)
  • LSTM学习笔记

    上一篇文章中我们提到,CRNN模型中用于预测特征序列上下文的模块为双向LSTM模块,本篇中就来针对该模块的结构和实现做一些理解。 Bidirectional LSTM模块结构如下图所示: 在Pytorch中,已经集成了LSTM模块,定义如下:  参数说明: input_size :输入的feature数; hidden_size :隐藏

    2024年01月21日
    浏览(30)
  • 【学习学习】NLP理解层次模型

    NLP(Neuro-Linguistic Programming,神经语言程序学),由两位美国人理查得.班德勒(Richard Bandler)与约翰.葛瑞德(John Grinder)于1976年创办,并在企业培训中广泛使用。美国前总统克林顿、微软领袖比尔盖茨、大导演斯皮尔博格等许多世界名人都接受过NLP培训。 在NLP理解层次模型

    2024年02月10日
    浏览(41)
  • NLP之LSTM原理剖析

    SimpleRNN有一定局限性, 图片上的文字内容 : 图片标题提到“SimpleRNN是一种基础模型。它用于解决序列型问题,其中的每一步的输出会影响到下一步的结果。图中的公式和结构图都展示了这种关系。” 下面给出了四行伪代码,描述了SimpleRNN的计算方式。简化为以下形式: out

    2024年02月06日
    浏览(41)
  • 【NLP】LSTM追根溯源

            对于LSTM鲜有人能说清楚其内部机制,就连相关的文档也少之又少,本篇主要针对LSTM的内部梯度传递关系,解析其逻辑原理,对于入门已久的专业人事,应该是难得的好文。对于初学者不必全通,能看个大概其也是有收获的。          许多帖子已经详细讨论了

    2024年02月12日
    浏览(42)
  • 【机器学习】一文搞懂算法模型之:LSTM

    小屌丝 :鱼哥, 你说什么是LSTM 小鱼 :LSTM… LSTM … 小屌丝 :鱼哥, LSTM是啥? 小鱼 :LSTM是… 不好意思说啊 小屌丝 :这,有啥不好意思说的? 小鱼 :你自己用输入法敲一下不就知道了。 小屌丝 :… 小鱼 :是啥啊, 让我看看? 小鱼 :咋了,还不让我看,一定是… 小屌

    2024年04月28日
    浏览(40)
  • NLP之LSTM与BiLSTM

    首先,我们来总结这段代码的流程: 导入了必要的TensorFlow Keras模块。 初始化了一个Sequential模型,这表示我们的模型会按顺序堆叠各层。 添加了一个Embedding层,用于将整数索引(对应词汇)转换为密集向量。 添加了一个双向LSTM层,其中包含100个神经元。 添加了两个Dense全连

    2024年02月06日
    浏览(29)
  • 机器学习&&深度学习——序列模型(NLP启动!)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——卷积神经网络(LeNet) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 现在多多少少是打下了一点基础了,因为我的本科毕业论文是NLP方向的,所以现在需要赶忙打

    2024年02月14日
    浏览(39)
  • 机器学习&&深度学习——NLP实战(情感分析模型——数据集)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——BERT(来自transformer的双向编码器表示) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 预训练文本表示可以通过不同模型架构,放入不同的下游自然语言处理任务。

    2024年02月11日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包