Transformer的理解

本文详细介绍了Transformer模型,重点讨论了自注意力机制(包括Self-attention和Multi-HeadAttention),以及如何在Encoder和Decoder中应用这些机制,包括位置信息的考虑和Decoder中的MaskedMulti-HeadAttention。
摘要由CSDN通过智能技术生成

Transformer

在这里插入图片描述

说到Transformer就不得不提起注意力机制,Transformer主要是由Encoder(自注意力机制)和Decoder(交叉注意力机制)
在这里插入图片描述

Self-attention自注意力机制

a1-a4可能是input也可以作为中间层的输入,b1~b4每个向量都会考虑整个input sequence
在这里插入图片描述

- 计算关联性

在这里插入图片描述
计算相关性的方法有很多种
在这里插入图片描述
在这里插入图片描述
用这种方法计算出a1与a1-a4的attention score
在这里插入图片描述
然后进行Soft-max归一化
在这里插入图片描述
将归一化后的attention score 乘 V 后相加得到b1,其中V=a*Wv,与计算q和k的方法一致。具体如下图:
在这里插入图片描述
利用相同的方法计算出b2-b4
在这里插入图片描述
上述的过程实质上是一系列的矩阵乘法,可以并行化执行,可以利用GPU加速,具体如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是Self-attention的计算过程,但是上述过程只是考虑两两元素的相关性,却没有考虑位置信息
https://mp.weixin.qq.com/s?__biz=MzI5MDUyMDIxNA==&mid=2247531914&idx=1&sn=3b8d0b4d3821c64e9051a4d645467995&chksm=ec1c9073db6b1965d69cdd29d40d51b0148121135e0e73030d099f23deb2ff58fa4558507ab8&scene=21#wechat_redirect
在这里插入图片描述

- 接下来,我们来看transformer的结构图
在这里插入图片描述
transformer是由两部分组成:Encoder 和 Decoder,如下图,左边(encoder)就是我们上面讲到的self-attention,右边(decoder)是由一个自主自注意力和一个交叉注意力所组成的模块
在这里插入图片描述
首先解释Encoder模块,如下图,N代表着多层Self-attention叠加,Add & Norm表示residual残差神经网络和归一化。Multi-Head Attention的解释在下面
在这里插入图片描述
Multi-Head Attention是多头的自注意力,就是说两个元素的相关性可能是多种的,为了考虑多种情况每个元素产出多个q,k,v 如下图
在这里插入图片描述
在这里插入图片描述
接下来是Decoder的部分
Decoder 是由一个Self-attention和Cross attention组成,注意到下图的Self-attention是一个Masked Multi-Head Attention.
在这里插入图片描述
Decoder是一个顺序的过程,每一次多接收一个输入,多的那个输入是上一轮的输出,所以前序的输入不该知道后续的序列,使用masked更符合逻辑,
在这里插入图片描述
如下面的动图:
https://jalammar.github.io/images/t/transformer_decoding_2.gif
接下来是decoder的交叉注意力机制,其与自注意力机制计算方法一样,只是它的q,k来自于encoder的自注意力机制输出的结果,其余与自注意力机制一样
在这里插入图片描述
在这里插入图片描述
这就是transformer的计算过程
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值