深度学习:Self-Attention与Multi-heads Attention详解

深度学习:Self-Attention与Multi-heads Attention详解

Introduction

这里X定义有误,这里假设X为一个序列,包含两个一维token,之前CV的写习惯了,多分了一个维度。。。。。
在这里插入图片描述
Transformer 最初是由 Ashish Vaswani等人提出的一种用以完成机器翻译的 Seq2Seq 学习任务的全新网络结构,它完全基于注意力机制来实现从序列到序列的建模。相比于以往 NLP 模型中使用 RNN 或者编码-解码结构,其具有计算复杂度小、并行度高、容易学习长程依赖等优势。Transformer 网络结构如图 :
在这里插入图片描述

Self - Attention

我们在刚接触的Transformer的时候,首先遇到的难题是Self-attention这个模块:

在这里插入图片描述

从左下角看起,假设一个序列数据有x1、x2, 每个x是一个高维向量。然后通过fx,把 x Embedding成低维向量a1,a2,让后对a1,a2分别通过全连接层(对应的权重矩阵w)得到对应的q(query),k(key),v(value)。

首先简单的解释一下q k v的含义
这就要看一下self attention的整体架构如下图:

在这里插入图片描述

其中A为1个序列数据,a为序列数据的4个元素,每个a都是一个向量。a为input,b为output
,其中b1为a1考虑了整个序列数据的结果,也就是说a1会与a1,a2,a3,a4 计算一个attention score(也可以叫做相关性)。

那么如何计算这个attention score呢?
假设a1要与其它的元素(包括a1本身)计算相关性,那么q就是a1,k就是被计算相关性的元素。
计算方法有很多种,我们主要列举两种:
在这里插入图片描述

分为dot product 和 与 additive ,前者就是计算出q k后,做点乘(对应元素相乘在相加),然后得到q对所有k的相关性,然后经过softmax处理得到attention score,在大部分情况下我们都采用这种方法,后者则是做加法然后经过tanh激活得到。

我们得到一组attention score就表示q 与 各个k的相似性,分数越高,相关性越大,就会dominate 对应的输出结果b。之后把attention score与value相乘,然后把所有结果相加得到结果b。

举例来说 把序列A:={a1,a2}输入self attention模块, 得到 b1,b2,其中b1表示a1考虑了 整体输入的结果,也就是说在计算资源足够的情况下,这个架构不会因为序列过长而遗忘起始元素。

我们在看一下论文中的公式
在这里插入图片描述
这里只差根号dk没有解释过了,dk表示序列的长度,它的作用是为了防止数值过大,维持数值稳定性。

Multi-Head Attention

多头注意力与单头其实很相似,假设head为2,结构如下图:
在这里插入图片描述

假设q1 为(1,1,0,1),那么把均分为head个,把它们分配给每个head,

(实际是不同的head的所对应的q权重矩阵不同在这里插入图片描述

得到 q11,q 12,其中第一个下标代表序列元素的索引,第二个下标代表head。 k v重复刚才的操作,
然后把head数相同的放在一起计算:

在这里插入图片描述

然后对结果执行concat操作。

在这里插入图片描述

最后在乘上矩阵W_o融合不同维度特征,它的作用类似于1 * 1卷积。

Position- Encoding

方法为直接在input上 add 位置编码。

分为两种方法:

  1. 公式编码

在这里插入图片描述
2. 可训练的位置编码

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HanZee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值