RNN、LSTM、Seq2Seq模型以及Atttention机制

1、生成类聊天机器人特点

在这里插入图片描述

2、RNN LSTM语言模型

2.1 语言模型

自然语言处理 (NLP)领域的一个核心技术,它的主要任务是对自然语言序列进行概率建模。 简单来说,语言模型就是用来计算一个句子或者一段文本在某种语言中出现的概率。 这个概率可以帮助我们理解和预测自然语言的生成规律,从而在各种NLP任务中发挥关键作用,如机器翻译、语音识别、文本生成等。
在这里插入图片描述

2.2语言模型的计算

在这里插入图片描述

2.3语言模型的应用

  • 语音识别
  • 机器翻译
  • 句法分析
  • 短语标注
  • 手写体识别
  • 拼写纠错

2.4语言模型的方法

  • 基于统计学习的(N——gram)
  • 基于机器学习和深度学习的(机器学习:svm等,深度学习:RNN,LSTM等)
    在这里插入图片描述
    在这里插入图片描述
    RNN存在的问题:
  • 梯度消息
  • 梯度爆炸
    在这里插入图片描述
    RNN处理序列的类型根据输入和输出的数量,有四种类型。绿色是输入,蓝色是输出,灰色是隐藏层,可捕捉序列前后的信息;并不是每一步都需要输入或者输出,但是隐藏层是不可少的。

同步序列中,Many to many 多对多,输入和输出的数量相同,可用在词性标注,输入一个句子,输出句中每个词的词性;Many to one 多对一,文本的情感分析,输入一句话,输出这句话表达的情绪是积极还是消极。

非同步序列中,Many to many 多对多,可被用作机器翻译,即输入一种语言的文字,输出另外一种语言的文字;One to many,一对多,输入一张图片,输出对于图片内容的描述。
在这里插入图片描述
双向RNN考虑上下文。

3、LSTM

LSTM(长短时记忆)可以缓解梯度消失和梯度爆炸的问题
在这里插入图片描述
标准的RNN其隐藏层只有一个h,可以对短期的内容保持敏感,难以捕捉长期的上下文;LSTM在隐藏层的基础上增加一个长时状态c, 也叫 cell state 单元或细胞状态用于保存长期状态,无论是c还是h都是一个向量。

Ct 是当前输入对应的长期状态,由上一时刻的长期状态Ct-1和当前时刻的即时状态C’t组成。然而,不能将所有的上一时刻的长期状态都保留,需要选择性的接收,使用一个忘记门,有选择地忘记一些长期信息。

此外,当前时刻的长期状态还需要更新,因此通过输入门输入当前时刻的即时状态来更新。最后还有一个输出门,来控制如何使用当前时刻的长期状态来更新当前时刻的隐藏状态ht,此时ht中保存了一些长期的信息并和标准的RNN兼容;输出Ot时,还是使用当前时刻的ht来计算。

3.1LSTM模型原理

在这里插入图片描述
LSTM核心思想
在这里插入图片描述
输入和输出都是尺寸相同的矩阵,对于其中的每个元素进行逐点操作。

在这里插入图片描述
σ是sigmoid函数,对应[0,1],选择忘记还是记忆;语言模型中,Germany是距离远的长期信息,尝试忘记。
在这里插入图片描述
语言模型中,应将当前词 France,更新到Ct中。
在这里插入图片描述
得到输出的结果ht,经过复制后去往上方和下方,上方为通过后续的softmax函数计算,输出结果Ot;下方的ht可以被送入下一个单元进行计算。

4、Seq2Seq模型

所谓Seq2Seq(Sequence to Sequence),即序列到序列模型,就是一种能够根据给定的序列,通过特定的生成方法生成另一个序列的方法,同时这两个序列可以不等长。这种结构又叫Encoder-Decoder模型,即编码-解码模型。

4.1Seq2Seq模型的起源和发展

在这里插入图片描述

  • Seq2Seq最早应用于机器翻译

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 Seq2Seq模型的原理和应用场景

在这里插入图片描述
Seq2Seq最基础的结构由三部分组成,编码器,语义向量C和解码器,C是连接二者的。**编码器通过学习,将输入序列编码成一个固定大小的状态向量C,作为解码器的输入,解码器RNN通过对C的学习进行输出。**此处解码器和编码器都代表一个RNN,通常为LSTM和GRU
在这里插入图片描述
负责将输入的文本序列压缩成指定长度的向量,即语义向量C,这个向量可以看作输入序列的语义,这个过程成为编码。

编码一般有两种方式,将RNN最后一个状态做一个变换得到语义向量,或者将输入序列的所有隐含状态做一个变换得到语义向量。

在这里插入图片描述
(c只做初始化参数)
Decoder负责根据语义向量生成指定的序列,即解决问题的序列,即解码。如下图,最简单的方式是将语义向量C作为初始状态输入到Encoder的RNN中,得到输出序列。此时上一时刻的输出会成为当前时刻的输入,而且语义向量C只作为初始状态参与运算,后面运算与C无关。第二种方式语义向量C参与序列所有时刻的运算,上一时刻的输出仍然作为当前时刻的输入,但C参与每个时刻的运算。
在这里插入图片描述
(c参与编码的每一个过程)

应用场景

  • 图像描述
    在这里插入图片描述

  • 代码补全
    在这里插入图片描述

  • 聊天机器人
    在这里插入图片描述

4.3Seq2Seq模型的训练过程

在这里插入图片描述
对于普通RNN的训练,我们比较理解,简单来说就是学习概率分布,然后预测,比如输入前t 个 时刻数据,预测 t+1 时刻的数据。常见的是字符预测或者温度预测。一般我们在输出层(即预测结果层)使用softmax函数,就得到每个分类的概率,然后哪个最大哪个就为预测结果。

简单来说,对于普通RNN的一个训练样本x1,x2,……,xT,其计算的概率是当x1,x2,……,x(T-1)成立时时,xT成立的概率。即整个序列的概率为:

对结果进行一个极大似然估计,就是求概率最大的输出序列,作为结果
在这里插入图片描述### ###

4.4Seq2Seq模型的不足

在这里插入图片描述

在这里插入图片描述

Seq2Seq模型的改进

  • Attention机制
    attention机制来源于人类的视觉注意力机制,可以算是仿生学的一个应用,视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。

这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。

在这里插入图片描述

在这里插入图片描述

  • Attention机制的应用
    在这里插入图片描述
  • Attention机制的分类
    在这里插入图片描述
    在这里插入图片描述
    一般常用的是Soft Attention
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值