关于Transformer的相关概念模型的个人理解

目录

一:Transformer

自注意力机制

多头注意力机制

位置编码

二:Vision Transformer

Embedding层

Transformer Encoder

三:Swin Transformer

Swin Transformer的整体架构

Patch Partition

Patch Merging

W-MSA模块

SW-MSA滑动窗口多头注意力机制

Relative Position bias--相对位置偏移


一:Transformer

Transformer主要用于NLP(自然语言处理领域)但不过近年来随着技术的不断发展,Tramsformer也逐渐应用到了计算机视觉领域。Transformer领域最重要的就是自注意力机制和多头注意力机制。Transformer的记忆长度是可以无限长的,并且可以并行。

自注意力机制

注意力机制就是通过计算注意力权重,对特征进行重加权以达到强化有效特征,抑制无效特征的目的--简而言之就是对输入的不同元素考虑不同的权重参数,从而更加关注与输入元素相似的那一部分。自注意力机制的示意图如下:

首先假设我们的输入数据为X1和X2,通过Embedding层会将数据映射到一个更高的维度得到对应的a1和a2,再通过W^q,W^k,W^v参数矩阵生成对应的q,k,v(这里的参数矩阵对所有的参数矩阵都是共享的),这里的q会去匹配每一个k,v代表的是。

使用点乘法将q和k进行匹配,计算相似度的公式如下:

其匹配过程如下图:

使用q1和k1进行相似度匹配得到α1,1.同理将q1与k2进行匹配运算得到α1,2,再通过Softmax函数将相似度的计算结果映射到0-1之间得到^a1,1和^α1,2,这里得到的两个变量就是针对每一个不同的v其所得到的一个权重值,这个权重值越大就代表我们需要越关注其所对应的v。最后将所得到的权重与其对应的v的值进行相乘,然后再将各个结果进行求和,将自注意力机制抽象成一个模块的话如下图所示:

多头注意力机制

多头注意力机制和自注意力机制类似,将输入的a与参数矩阵相乘得到对应的q,k,v这一步和自注意力机制相同,然后再根据Head的情况对所得的数据进行拆分(实际上就是均分操作)在下图中head的个数是两个,将所有的q,k,v都进行类似的拆分如下图所示

在拆分之后,将拆分所得的第二个数字为1的所有参数都归为head1这一类,同理将所有参数的第二个数字为2的全部归为head2这一类,通过此操作我们便将我们的数据分为了两个类如下所示:

         

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值