人工智能课程笔记:注意力机制 Transformer

1.注意力机制

注意力机制应用于RNN网络的原理:加入了注意力机制的RNN网络会在接下来进行预测时重点关注序列中的一部分,重点基于关注的区域来产生下一个输出。

注意力机制的实现方案

  1. 计算注意力权重:首先,对于当前时间步的输入,模型会计算与所有历史时间步之间的相似度,通常使用点积或其他相似度度量。然后,通过对相似度进行softmax 归一化,可以得到一个权重向量,用于表示不同历史时间步对当前时间步的重要性。
  2. 应用注意力权重:接下来,将注意力权重与历史时间步的特征向量进行加权求和,得到一个加权历史特征向量,该向量包含了与当前时间步最相关的历史信息。
  3. 计算输出:最后,将加权历史特征向量与当前时间步的输入向量进行拼接,然后通过一个全连接层进行计算,得到当前时间步的输出。

2.Transformer模型

Transformer模型概述

  • 模型产生:Transformer模型由Google公司在2017年发布,用于解决机器翻译等任务。
  • 模型特点:Transformer模型采用自注意力机制,实现了快速并行,解决了RNN模型训练速度慢的缺点。
  • 深度特点:可以增加到非常深的深度,充分发掘DNN模型的特性,提升模型准确率。

Transformer模型的结构

  1. 最基本的,Transformer模型可以看成是一个黑箱操作。在机器翻译中,就是输入一种语言,输出另一种语言。
  2. 打开这个黑箱,可以发现该模型由多个相同的编码器和解码器模块组成,每个模块都由两个子层组成:一个是多头自注意力机制子层,另一个是全连接前馈子层。(Transformer有八个注意力头)
  3. 在多头自注意力机制子层中,输入序列中的每个位置都会与其他位置进行交互,这样网络可以自动学习出关键的上下文信息,而不是只关注固定的位置。具体来说,输入序列中的每个位置都会通过一个注意力机制计算与其他位置的相对重要性,从而得到每个位置的权重。然后,根据这些权重,网络将所有位置的表示向量进行加权平均,得到自注意力表示向量。
  4. 在全连接前馈子层中,自注意力表示向量将被输入到一个全连接神经网络中,以进一步提取特征和增强表示能力。
  5. 在编码器和解码器中,每个模块的输出都作为下一个模块的输入,最终输出编码器和解码器的最终表示向量,用于序列到序列的任务,例如机器翻译。

ViT-Transformer模型:ViT-Transformer模型是一种使用Transformer结构的图像分类模型,通过将图像划分为多个路径上的图像块,将输入图像序列化为一维序列并输入到Transformer中进行处理。

3.Swin Transformer模型

将Transformer模型应用于图像领域的问题

  • 图像的矩阵性质:一张图像往往有非常多的像素点,而建模这一种长度过长的序列数据是Transformer难以进行的。
  • 任务类型受限:目前基于Transformer的框架更多地用于图像分类,理论上也可以用于解决目标检测问题。但是对实例分割这种密集预测类型的场景,Transformer并不擅长。

Swin Transformer模型:Swin Transformer是由中国港科大、微软亚洲研究院、北大等机构的研究人员在2021年提出的一种基于Transformer的神经网络模型。该模型解决了传统Transformer模型的两个问题,在多个计算机视觉任务中取得了很好的效果。

Swin Transformer模型的特点:Swin Transformer的提出是为了解决传统Transformer模型在处理大规模图像时面临的计算和内存限制问题。为此,Swin Transformer提出了一种分层结构,将输入图像分解为多个小块,并通过层间信息交流来实现全局建模。同时,Swin Transformer还引入了Shift操作,使得每个小块不需要和所有其他小块进行交互,而只需要和周围的少数几个小块进行交互,从而大大降低了计算和内存开销。

4.预训练语言模型

预训练语言模型概述:预训练语言模型其实就是已经在大规模数据上训练好了初步的模型,再根据具体的使用情况对模型进行进一步训练,也就是微调,来适应具体的应用场景。

4.1.ELMo模型

提出背景:ELMo是一种基于深度双向语言模型的词向量表示方法,由AllenNLP和斯坦福大学的研究人员于2018年提出。

详细阐述

  • 与传统的词向量表示方法不同,ELMo模型利用深度双向语言模型对上下文信息进行建模,得到每个词在不同上下文中的向量表示,包括词汇级别和句子级别的信息。这些向量表示被称为“深度上下文嵌入”,可以直接用于各种自然语言处理任务中,例如文本分类、命名实体识别、情感分析等。
  • ELMo模型的训练方式是基于无监督学习的,它使用双向语言模型来学习词汇的表征,该模型可以在大规模语料库上进行训练。在推理时,ELMo模型通过将多个上下文嵌入向量进行加权求和,得到一个综合的词向量表示,以便于后续的任务处理。

4.2.GPT模型

提出背景:GPT是Generative Pre-trained Transformer的缩写,是一种基于Transformer结构的预训练语言模型,由OpenAI于2018年提出。

详细阐述

  • GPT模型采用了Transformer结构,通过堆叠多个Transformer编码器来学习语言的统计规律,并且通过掩码语言模型(Masked Language Model)任务进行预训练。在预训练阶段,GPT模型使用大规模的无标注语料库进行训练,学习到了语言的通用特征。在微调阶段,GPT模型可以通过在特定任务上进行微调,如文本分类、机器翻译、问答系统等,以适应具体的任务需求。
  • GPT模型的主要贡献在于将预训练与微调相结合,通过预训练学习到通用的语言规律,然后通过微调在特定任务上进行优化,获得更好的性能。

4.3.BERT模型

提出背景:BERT是Bidirectional Encoder Representations from Transformers的缩写,是一种由Google在2018年提出的预训练语言模型。BERT模型的出现,极大地推动了自然语言处理领域的发展,成为了自然语言处理领域的里程碑之一。

详细阐述

  • BERT模型采用了Transformer结构,通过在大规模语料库上进行双向语言模型的预训练,学习到了语言的统计规律。BERT模型的预训练任务包括掩码语言模型(Masked Language Model)和下一句预测(Next Sentence Prediction)任务。掩码语言模型是指在输入序列中随机掩码一些单词,然后让模型预测这些单词的内容;下一句预测任务是指给定两个句子,让模型判断这两个句子是否是连续的。
  • 在微调阶段,BERT模型可以通过在特定任务上进行微调,例如文本分类、问答系统、命名实体识别等,以适应具体的任务需求。BERT模型采用了双向Transformer编码器,可以处理双向上下文信息,从而提高了模型的表现能力。

猜你喜欢

转载自blog.csdn.net/hanmo22357/article/details/131044251