Transformer自注意机制精讲(附源码+PDF课件)

kuaidelasi · · 16 次点击 · 开始浏览    置顶

/s/1GWDUDJXCbiZbG4mGQ4JWNA 提取码: tytk 自注意力机制(Self-Attention)是Transformer模型的核心思想。它通过一种聪明的方式让神经网络在处理一个序列时(例如,一个句子中的单词),能够“注意”到序列中其他部分的相关信息,而不仅仅依赖于局部信息。相比传统的序列模型(如RNN、LSTM),自注意力机制能更好地捕捉远距离的依赖关系,特别适用于处理像文本、图像这样的长序列数据。因此,理解自注意力机制对于深入理解Transformer至关重要。 在这篇文章中,我们将分几个部分详细解释自注意力机制,确保从基础到进阶的理解。我们将从基本概念开始,再逐步深入到其数学实现、性能优势及应用。 一、Transformer总体架构 包括四个部分: (1)输入部分 1)源文本嵌入层及其位置编码器 2)目标文本嵌入层及其位置编码器 (2)输出部分 1)线性层:通过对上一步的线性变化得到指定维度的输出,也就是转换维度的作用; 2)softmax处理器:使最后一维的向量中的数字缩放到0-1的概率值域内,并满足他们的和为1。 (3)编码器部分 1)由N个编码器层堆叠而成; 2)每个编码器层由两个子层连接结构组成; 3)第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接; 4)第二个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接。 (4)解码器部分 1)由N个解码器层堆叠而成;每个解码器层由三个子层连接结构组成; 2)第一个子层连接结构包括一个多头自注意力子层和规范化层以及一个残差连接; 3)第二个子层连接结构包括一个多头注意力子层和规范化层以及一个残差连接; 4)第三个子层连接结构包括一个前馈全连接子层和规范化层以及一个残差连接。 二、注意力机制和自注意力机制的区别 Attention机制与Self-Attention机制的区别 传统的Attention机制发生在Target的元素和Source中的所有元素之间。 简单讲就是说Attention机制中的权重的计算需要Target来参与。即在Encoder-Decoder 模型中,Attention权值的计算不仅需要Encoder中的隐状态而且还需要Decoder中的隐状态。 Self-Attention: 不是输入语句和输出语句之间的Attention机制,而是输入语句内部元素之间或者输出语句内部元素之间发生的Attention机制。 例如在Transformer中在计算权重参数时,将文字向量转成对应的KQV,只需要在Source处进行对应的矩阵操作,用不到Target中的信息。 三、引入自注意力机制的目的 神经网络接收的输入是很多大小不一的向量,并且不同向量向量之间有一定的关系,但是实际训练的时候无法充分发挥这些输入之间的关系而导致模型训练结果效果极差。比如机器翻译问题(序列到序列的问题,机器自己决定多少个标签),词性标注问题(一个向量对应一个标签),语义分析问题(多个向量对应一个标签)等文字处理问题。 针对全连接神经网络对于多个相关的输入无法建立起相关性的这个问题,通过自注意力机制来解决,自注意力机制实际上是想让机器注意到整个输入中不同部分之间的相关性。 四、注意力机制 Attention 针对上述问题才出现了注意力机制模型。 注意力机制和循环神经网络的不同,在于它强调了对序列所有信息的关注,而不仅仅是最后一部分。其实这个想法最初是来自计算机视觉,也就是图像处理。我们人类在看图的时候,会注意图中的重要信息,比如物体边缘,特征细节等,我们看着图片的时候,如果用红外热度扫描就会看到人眼对各个地方的关注点是不同的,注意力机制也是基于这种思想,针对序列的句子,也是通过查看不同的部分,然后找到最重要的地方。 顺便说,Transformer 模型也可以用于图像处理,因为其实图像拉开也是一个序列,只要对各个像素块进行位置编码就是一个序列了,比如有名的ViT模型,就是使用Transformer,注意力机制,进行图像识别的优秀模型。 五、自注意力机制概述 注意力机制源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择视觉区域中的特定部分,集中关注它,同时忽略其他可见的信息。上述机制通常被称为注意力机制。这种只将注意力引向感兴趣的一小部分信息的能力,使我们的大脑能够更明智地分配资源来生存、成长和社交。 基于注意力机制的深度学习,核心在于让机器学会去感知数据中的重要和不重要的部分。比如在做机器翻译等任务时,要让机器注意到每个词向量之间的相关性,有侧重地进行翻译,模拟人类理解的过程。一个Attention的计算过程有三步: query 和 key 进行相似度计算,得到一个 query 和 key 相关性的分值 将这个分值进行归一化(softmax),得到一个注意力的分布 使用注意力分布和 value 进行计算,得到一个融合注意力的更好的 attention value 值

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

16 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传