自然语言处理模型(transformer)


前言

从rnn(循环神经网络) 到lstm atention模型 transformer 模型 bert模型 gpt模型,机器视觉领域(vit)经历了不断改进的过程,接下来我们要介绍这个发展过程


`

一、RNN

在这里插入图片描述

循环神经网络(Recurrent Neural Network,RNN)是一类具有短期记忆能力的神经网络。在循环神经网络中,神经元不但可以接受其它神经元的信息,也可以接受自身的信息,形成具有环路的网络结构。和前馈神经网络相比,循环神经网络更加符合生物神经网络的结构。循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。循环神经网络的参数学习可以通过随时间反向传播算法(BPTT)[Werbos, 1990]来学习。随时间反向传播算法即按照时间的逆 序将错误信息一步步地往前传递。当输入序列比较长时,会存在梯度爆炸和消失问题[Bengio et al., 1994, Hochreiter and Schmidhuber, 1997, Hochreiter et al., 2001],也称为长程依赖问题。(摘抄:《神经网络与深度学习》)

缺点:
1.无法做长序列,一个达到50个词效果就会打折扣。
2.无法进行并行运算


二、LSTM

在这里插入图片描述

LSTM模型要解决什么问题?为什么要不能直接使用RNN模型,而一定要设计LSTM模型来解决这个问题呢?这就是信息的长期依赖问题。

在预测模型中,如果预测所需要的信息离输入信息距离比较近,正确预测出的概率比较大。但如果我们要预测的信息距离输入的信息比较远,正确预测出的可能性就不那么高了。即便能使用RNN神经网络来做到很好的预测结果,那也是需要工程师们很小心的来调整参数的。

在这种情境下,长短期记忆网络,即LSTM模型诞生了。它很好的解决了答案的信息是在较早,还在较晚出现的输入信息中这个问题,预测效果很好,并且不需要工程师们费尽心力的来调参。

缺点:
1.


三、自注意力机制

self_attention得到的新向量有了句法信息和语义信息(表征更完整)
在这里插入图片描述

四、Multi-Head Self-Attention

如何多头
在这里插入图片描述
对于 X,我们不是说,直接拿 X 去得到 Z,而是把 X 分成了 8 块(8 头),得到 Z0-Z7

如何多头 2

然后把 Z0-Z7 拼接起来,再做一次线性变换(改变维度)得到 Z
在这里插入图片描述

有什么作用?

机器学习的本质是什么:y=σ
(wx+b),在做一件什么事情,非线性变换(把一个看起来不合理的东西,通过某个手段(训练模型),让这个东西变得合理)

非线性变换的本质又是什么?改变空间上的位置坐标,任何一个点都可以在维度空间上找到,通过某个手段,让一个不合理的点(位置不合理),变得合理

这就是词向量的本质

one-hot 编码(0101010)

word2vec(11,222,33)

emlo(15,3,2)

attention(124,2,32)

multi-head attention(1231,23,3),把 X 切分成 8 块(8 个子空间),这样一个原先在一个位置上的 X,去了空间上 8 个位置,通过对 8 个点进行寻找,找到更合适的位置

词向量的大小是 512

假设你的任务,视频向量是 5120,80

对计算机的性能提出了要求

多头注意力机制流程图

在这里插入图片描述

四、transformer模型

在这里插入图片描述
从宏观角度来看,Transformer是一种基于Self-Attention机制的Seq2seq模型(序列模型),是用于机器翻译的,由编码器和解码器组成(自己总结的)。所以在学习Transformer前,需要先弄明白Seq2seq、编码器 / 解码器、Self-Attention(见本人之前的csdn博客)是什么。

Seq2seq模型:
  这是一个序列到序列的模型,输入一个序列,输出另一个序列,通常可用于NLP任务,例如机器翻译、语音识别等等。这个Seq2seq模型包含了一个编码器和一个解码器(换言之,有编码器和解码器的模型就可以认为是Seq2seq模型的范畴)。因此呢,Seq2seq模型有很多种变形,例如编码器 / 解码器可以是RNN,LSTM、也可以是CNN,还可以是Self-Attention等等。
  但是要特别注意,Seq2seq和RNN / LSTM等是不同层面的东西,Seq2seq模型专指输入和输出均为序列的模型,LSTM 等可以用作其编码器和解码器的一种实现方法。但 RNN / LSTM 并不是Seq2seq模型的子集,它们也可以用来做别的问题。
编码器 / 解码器:
  所谓编码,就是将输入序列转化成一个固定长度的向量;解码,就是将之前生成的固定向量再转化成输出序列。具体实现的时候,编码器和解码器都不是固定的,可选的有RNN / BiRNN / GRU / LSTM等等都是可以的,你可以自由组合。比如说,你在编码时使用BiRNN,解码时使用RNN,或者在编码时使用RNN,解码时使用LSTM等等。(最基础的是编码解码都是RNN)


五、bert模型

在这里插入图片描述
bert是一种预训练模型,首先要搞清楚这个概念。
  bert论文全名是Bidirectional Encoder Representations from Transformers,不难发现,其模型结构是Transformer的Encoder层。因此它具有Transformer的性质,例如变长度输入(变的是向量组的长度,而不是向量的长度,参考上面有关Transformer的解释)
需要特别注意的是,bert在训练时用的是Transformer的Encoder+MLP,其中MLP作用是预测被掩盖的单词是什么。
在测试时只是用Encoder,没有MLP,根据不同的任务,再添加合适的MLP或者其他神经网络层。因为bert的本意只是通过编码器,学到句子间的语义编码信息,所以我们只需要在得到的语义编码信息基础上微调模型就行了,


六、VIT模型

总结

attention机制和transformer模型经过了不断地改善,现在nlp领域取得了优异的成绩,比如gpt,机器翻译。在机器视觉领域也有了不错的成绩,代表有vit模型

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值