当前位置:   article > 正文

NLP学习04--长短期记忆网络LSTM_nlp lstm 编程

nlp lstm 编程

一.长短期记忆网络LSTM简介

LSTM是对RNN的改进和升级,在RNN模型中,对于长期依赖的问题可能产生梯度消失和梯度爆炸,而在RNN的基础上改进而来的LSTM则特别适合解决这类需要长时间依赖的问题。LSTM相对于RNN的不同使,LSTM将“记忆细胞”进行了改造,而不是像RNN那样只有一个简单的激活函数。在LSTM中,需要记录的信息会一直传递,不需要记录的信息会被截断掉
如下图所示,部分输出和输入被从网络中删除
在这里插入图片描述

二.LSTM工作原理

如下图展示了LSTM的一个神经元内部的结构。每一条黑线传输着一整个向量,从一个节点的输出到其他节点的输入;粉色的圈代表 pointwise 的操作,诸如向量的和;黄色的矩阵则是学习过程中的神经网络层;两条线和在一起表示向量的连接,比如一个十维向量和一个二十维向量合并后形成一个三十维向量;分开的线表示内容被复制,分发到不同的位置。
在这里插入图片描述

细胞状态

神经元之间传递的信息称为细胞状态,如下图所示,该线路用来传递神经元最主要的信息,其他线路则是通过对该线路施加影响来调整细胞状态的值
在这里插入图片描述

LSTM对细胞状态的控制

LSTM可以通过gates门结构来去影响细胞状态的信息,gates门结构包含一个sigmoid神经网络层次和一个pointwist乘法操作,Sigmoid层输出一个0到1之间的概率值,描述每个部分有多少量可以通过,0表示不允许任务变量通过,1表示运行所有变量通过,LSTM中主要有三个门结构来影响细胞状态,分别是:忘记门,信息增强门,输出门
在这里插入图片描述

1)忘记门

决定从细胞状态中丢弃什么信息;比如在语言模型中,细胞状态可能包含了性别信息(“他”或者“她”),当我们看到新的代名词的时候,可以考虑忘记旧的数据
在这里插入图片描述

2)输入门

决定放什么新信息到细胞状态中;Sigmoid层决定什么值需要更新;Tanh层创建一个新的候选向量Ct
在这里插入图片描述以上两个门的作用主要是对细胞状态进行更新,将Ct-1更新为Ct;将旧状态与ft相乘,丢失掉确定不要的信息;加上新的候选值it*Ct得到最终更新后的细胞状态
在这里插入图片描述

3)输出门

与上两个门不同,输出门的主要功能是将细胞状态值进行运算得出神经元的输出。首先运行一个sigmoid层来确定将细胞状态的哪些部分输出,使用tanh处理细胞状态得到一个在-1到1之间的值,再将它和sigmoid门的输出相乘,得到最终的输出
在这里插入图片描述

三.基于LSTM的改进模型

1.GRU

将忘记门和输入门合并成为一个单一的更新门,同时合并了数据单元状态和隐藏状态,结构比LSTM的结构更加简单
在这里插入图片描述

2.Bi-LSTM

Bi-LSTM的隐藏层要保存两个值,一个A参与正向计算,另一个值A’参与反向计算
如下图,Y2的最终输出值取决于A2和A`2

在这里插入图片描述
计算y2的数学方程为:
在这里插入图片描述A2和A`2 计算过程为:

在这里插入图片描述正向计算时,隐藏层的值st与st-1有关;反向计算时,隐藏层的值st`和st-1`有关;最终的输出取决于正向和反向计算的加和,数学方程为:
在这里插入图片描述

Bi-LSTM的工作原理图:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/631881
推荐阅读
相关标签
  

闽ICP备14008679号