首页 > 其他分享 >self-attention自注意力机制 2

self-attention自注意力机制 2

时间:2023-02-18 22:56:54浏览次数:34  
标签:self attention 矩阵 a1 输入 注意力 向量

https://blog.csdn.net/Michale_L/article/details/126549946

 

三、Self-Attention详解

针对输入是一组向量,输出也是一组向量,输入长度为N(N可变化)的向量,输出同样为长度为N 的向量。
3.1 单个输出

 

 

 

 

 


对于每一个输入向量a,经过蓝色部分self-attention之后都输出一个向量b,这个向量b是考虑了所有的输入向量对a1产生的影响才得到的,这里有四个词向量a对应就会输出四个向量b。

下面以b1的输出为例

首先,如何计算sequence中各向量与a1的关联程度,有下面两种方法

 

 
        Dot-product方法是将两个向量乘上不同的矩阵w,得到q和k,做点积得到α,transformer中就用到了Dot-product。

        上图中绿色的部分就是输入向量a1和a2,灰色的Wq和Wk为权重矩阵,需要学习来更新,用a1去和Wq相乘,得到一个向量q,然后使用a2和Wk相乘,得到一个数值k。最后使用q和k做点积,得到α。α也就是表示两个向量之间的相关联程度。

        上图右边加性模型这种机制也是输入向量与权重矩阵相乘,后相加,然后使用tanh投射到一个新的函数空间内,再与权重矩阵相乘,得到最后的结果。

 

可以计算每一个α(又称为attention score),q称为query,k称为key

 

 另外,也可以计算a1和自己的关联性,再得到各向量与a1的相关程度之后,用softmax计算出一个attention distribution,这样就把相关程度归一化,通过数值就可以看出哪些向量是和a1最有关系。

 

 下面需要根据 α′ 抽取sequence里重要的资讯:

 

 先求v,v就是键值value,v和q、k计算方式相同,也是用输入a乘以权重矩阵W,得到v后,与对应的α′ 相乘,每一个v乘与α'后求和,得到输出b1。

如果 a1 和 a2 关联性比较高, α1,2′ 就比较大,那么,得到的输出 b1 就可能比较接近 v2 ,即attention score决定了该vector在结果中占的分量;


用矩阵运算表示b1的生成:

Step 1:q、k、v的矩阵形式生成

写成矩阵形式:

 

把4个输入a拼成一个矩阵I,这个矩阵有4个column,也就是a1到a4,I乘上相应的权重矩阵W,得到相应的矩阵Q、K、V,分别表示query,key和value。

用矩阵运算表示b1的生成:

Step 1:q、k、v的矩阵形式生成

写成矩阵形式:

 

把4个输入a拼成一个矩阵I,这个矩阵有4个column,也就是a1到a4,I乘上相应的权重矩阵W,得到相应的矩阵Q、K、V,分别表示query,key和value。

 

 三个W是我们需要学习的参数

Step 2:利用得到的Q和K计算每两个输入向量之间的相关性,也就是计算attention的值α, α的计算方法有多种,通常采用点乘的方式。

先针对q1,通过与k1到k4拼接成的矩阵K相乘,得到\alpha _{1,n}拼接成的矩阵。

 

 同样,q1到q4也可以拼接成矩阵Q直接与矩阵K相乘:

 

公式为:

矩阵形式:

矩阵A中的每一个值记录了对应的两个输入向量的Attention的大小α,A'是经过softmax归一化后的矩阵。

Step 3:利用得到的A'和V,计算每个输入向量a对应的self-attention层的输出向量b:

 

 

写成矩阵形式:

 对self-attention操作过程做个总结,输入是I,输出是O:

 

 矩阵Wq、 Wk 、Wv是需要学习的参数。

 

 

 四、Multi-head Self-attention

self-attention的进阶版本Multi-head Self-attention,多头自注意力机制

因为相关性有很多种不同的形式,有很多种不同的定义,所以有时不能只有一个q,要有多个q,不同的q负责不同种类的相关性。

对于1个输入a

 

 

 首先,和上面一样,用a乘权重矩阵W得到q^i,然后再用q^i乘两个不同的W,得到两个不同的q^{i,n},i代表的是位置,1和2代表的是这个位置的第几个q。

 
这上面这个图中,有两个head,代表这个问题有两种不同的相关性。


同样,k和v也需要有多个,两个k、v的计算方式和q相同,都是先算出来ki和vi,然后再乘两个不同的权重矩阵。

对于多个输入向量也一样,每个向量都有多个head:

 

 

 



算出来q、k、v之后怎么做self-attention呢?

和上面讲的过程一样,只不过是1那类的一起做,2那类的一起做,两个独立的过程,算出来两个b。

对于1:

 

 


 对于2:

 

 


这只是两个head的例子,有多个head过程也一样,都是分开算b。

最后,把b^{i,1},b^{i,2}拼接成矩阵再乘权重矩阵W,得到b^i,也就是这个self- attention向量ai的输出,如下图所示:

 

 



五、Positional Encoding

在训练self attention的时候,实际上对于位置的信息是缺失的,没有前后的区别,上面讲的a1,a2,a3不代表输入的顺序,只是指输入的向量数量,不像rnn,对于输入有明显的前后顺序,比如在翻译任务里面,对于“机器学习”,机器学习依次输入。而self-attention的输入是同时输入,输出也是同时产生然后输出的。

如何在Self-Attention里面体现位置信息呢?就是使用Positional Encoding

也就是新引入了一个位置向量e^i,非常简单,如下图所示:

 

 


每一个位置设置一个vector,叫做positional vector,用e^i表示,不同的位置有一个专属的ei。

如果ai加上了ei,就会体现出位置的信息,i是多少,位置就是多少。

vector长度是人为设定的,也可以从数据中训练出来。

 


原文链接:https://blog.csdn.net/Michale_L/article/details/126549946

 

标签:self,attention,矩阵,a1,输入,注意力,向量
From: https://www.cnblogs.com/emanlee/p/17133700.html

相关文章

  • 一文看尽深度学习中的各种注意力机制
    前言 本文以通俗易懂的方式,介绍注意力机制的系列变形方法。 本文转载自CVHub作者|派派星 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、......
  • 注意力机制
    注意力机制 注意力机制在NLP领域十分火热,克服了以往seq2seq翻译定位不准的问题,加强了词的前后联系,能够根据当前的语境,合理分配候选词的权重,提升翻译的准确率。注意力机......
  • Attention注意力机制与self-attention自注意力机制
    Self-Attention(自注意力) 注意力机制在NLP领域十分火热,克服了以往seq2seq翻译定位不准的问题,加强了词的前后联系,能够根据当前的语境,合理分配候选词的权重,提升翻译的准确......
  • INFO: rcu_sched self-detected stall on CPU
    INFO:rcu_schedself-detectedstallonCPU0-...:(2GPsbehind)idle=ba3/2/0softirq=57744173/57744175fqs=792613(t=915060jiffiesg=633773c=......
  • 深度学习|论文中常用的注意力模块合集(下)
    注意力机制可以增加少量参数的情况下来提升计算精度和模型性能,在论文中常用的注意力模块合集(上)中介绍了三种注意力机制,它们分别是CA、CBAM和SE,均在目标检测和语义分割领域......
  • 深度学习|论文中常用的注意力模块合集(下)
    注意力机制可以增加少量参数的情况下来提升计算精度和模型性能,在论文中常用的注意力模块合集(上)中介绍了三种注意力机制,它们分别是CA、CBAM和SE,均在目标检测和语义分割领域......
  • odoo 关于self(使用操作)
    一:self是什么目前新版的Odoo中使用到的self,是对游标cr、用户ID、模型、上下文、记录集、缓存的封装。我们可以通过self.XX获取到这些封装的东西,比如:self.c......
  • RA-Depth: Resolution Adaptive Self-Supervised Monocular Depth Estimation
    注:刚入门depthestimation,这也是以后的主要研究方向,欢迎同一个方向的加入QQ群(602708168)交流。1.论文简介论文题目:RA-Depth:ResolutionAdaptiveSelf-SupervisedM......
  • 论文推荐:ACMix整合self-Attention和Convolution (ACMix)的优点的混合模型
    混合模型ACmix将自注意与卷积的整合,同时具有自注意和卷积的优点。这是清华大学、华为和北京人工智能研究院共同发布在2022年CVPR中的论文卷积分解与自注意力卷积分解......
  • attention
    attentionattention比如看图片的时候,人会自动的有偏重去看图片。就比如下图:我们把自身的偏见所带有的特征用矩阵Q表示,而图片所带有的特征是矩阵K。通过Q内积K,去得到......