Transformer(一)简述(注意力机制,NLP,CV通用模型)

目录

1.Encoder

1.1简单理解Attention

1.2.什么是self-attention

 1.3.怎么计算self-attention

 1.4.multi-headed

 1.5.位置信息表达

 2.decorder(待补充)

参考文献


1.Encoder

1.1简单理解Attention

比方说,下图中的热度图中我们希望专注于小鸟,而不关注背景信息。那么如何关注文本和图像中的重点呢。

具体而然比方说下面的文本she is eating a green,用不同的颜色表示其向量,然后对每一个向量进行重构,比方说she本来由红色向量表示,重构之后,其向量包含上下文其他向量的部分(按照相关程度,比重各不相同),其实这一块就是算出权值,每个词对其他词的贡献,再根据这个权值整合每个词自身的向量。

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第1张图片

1.2.什么是self-attention

如下图所示,两句话中的it根据上下文语句不同,指代前面的名词也不同,所以希望用注意力机制,来专注他们之间的关系。

自注意力机制:如下图所示,有两句话,以it为例只计算本句中每个词和自己的关系

注意力机制:如下图所示,it会计算其他句和自己的关系。

同样如下图右侧所示,以it为例,线条越深和自身关系越强

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第2张图片

 1.3.怎么计算self-attention

如下图所示,有两个文本Thinking,Machines,在进行计算时,我们要知道每一个词和自己的关系以及和其他词的关系,也就是说要计算Thinking和自身的关系,以及和Machines的关系,以及Machines和自身的关系,以及和Thinking的关系然后将其向量化表示为x1和x2。接下来为了实现注意力机制,我们提供了三个向量,q,k,v,以Thinking为例,当Thinking想要寻找和自己的关系以及和Machines的关系时,必须要知道它要查什么,所以需要一个查找对象也就是q,同样Thinking和Machines自身作为被查找的单位,当被查询时,也需要提供我有或者没有被查东西的证据,也就是k,具象化理解,可以理解为,古代官府追查杀手,必然会拿着杀手画像q,那么每家每户都要提供自己的身份信息k,证明自己是不是杀手。v后面补充。

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第3张图片

 再看一下q,k,v是咋来的,对于单词向量x1和x2用一个权重矩阵w分别得到q,k,v。

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第4张图片

 再看一下词与词之间的匹配程度如何确定,先说一个概念,内积相乘越大两者关系越近,所以当计算Thinking和自己的匹配程度时,用q1*k1=112,计算Thinking和Machines匹配程度时用q1*k2=96计算,很明显和自己的匹配程度更高

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第5张图片

再进一步计算

首先看softmax(Q*K/\sqrt{d_{k}})*V,\sqrt{d_{k}}这样理解,当高维Q*K的结果必然比低维相乘大,但在实际应用中,维数并不应该对结果产生影响,所以用\sqrt{d_{k}}消除维度影响。对照下图左侧的公式,来看下图右侧,在得到112和96之后,进行维度消除操作,得到14和12,然后得到彼此的影响概率,0.88和0.12,再利用v对x重构得到v。

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第6张图片 Transformer(一)简述(注意力机制,NLP,CV通用模型)_第7张图片

 流程如下图所示Q和每一个K相乘再结合相应的V最后加权得到Attention Value

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第8张图片

 1.4.multi-headed

上面我们发现一个x只能得到一个z,现在希望一个x可以得到不同z,所以用不同的w得到不同的q,k,v。假设一个x最后得到8个不同的z,将其拼接在一起太大了,所以用全连接层再对其降维。

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第9张图片Transformer(一)简述(注意力机制,NLP,CV通用模型)_第10张图片

 举个例子

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第11张图片

 1.5.位置信息表达

前面我们发现计算时会对每一个单词进行计算,所以没考虑位置因素,但在这里希望把位置因素考虑进去,位置用p表示,最后加入到重构后的z中

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第12张图片

 2.decoder(待补充)

前面是处理输入得到不同的组合z,这回需要对z进行输出操作。 此时输出层提供q,查询模型需要啥。k和v由输入提供。具体我们可以看下图右侧流程图,左为Encoder输入K,V。右下为decoder输入Q。

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第13张图片Transformer(一)简述(注意力机制,NLP,CV通用模型)_第14张图片

 再说一下MASK机制,简单理解,此时标签出了I am a,那么对于a可以利用前三个词,但对于第四个没出的不能使用,所以要给它掩盖起来。

 Transformer(一)简述(注意力机制,NLP,CV通用模型)_第15张图片

 3.BERT

替代encoder

Transformer(一)简述(注意力机制,NLP,CV通用模型)_第16张图片

 

 

参考文献

1.Transformer原理精讲_哔哩哔哩_bilibili

2.67 自注意力【动手学深度学习v2】_哔哩哔哩_bilibili 

3. 68 Transformer【动手学深度学习v2】_哔哩哔哩_bilibili

4.(重点)2023年AI爆火方向:基于Transformer模型的计算机视觉实战集锦【医疗图像分割、VIT算法、swintransformer、DETR目标检测...】_哔哩哔哩_bilibili 

你可能感兴趣的:(transformer,自然语言处理,人工智能)