注意力机制算法有哪些
注意力机制是一种广泛应用于深度学习中的算法,可以在处理序列数据时,重点关注相关的部分,从而提高模型的效果。以下是一些常见的注意力机制算法:
-
Scaled Dot-Product Attention:这是 Transformer 模型中使用的一种注意力机制算法,它将查询向量和键向量的点积除以一个缩放系数得到注意力分数,然后使用 softmax 函数进行归一化,最后将得到的注意力分数与值向量进行加权求和。
-
Multi-Head Attention:这种注意力机制算法是对 Scaled Dot-Product Attention 的改进,它将查询向量、键向量、值向量分别进行多个线性变换,得到多组注意力分数和值向量,然后将这些结果拼接起来,再进行一次线性变换得到最终的输出。
-
-
Self-Attention:这种注意力机制算法用于处理序列数据,它将序列中每个位置的向量作为查询、键和值进行计算,然后得到新的表示向量,使得每个位置的表示都能够捕获到序列中其他位置的信息。
-
Local Attention:这种注意力机制算法只关注查询向量周围一定范围内的键向量和值向量,而不是全局区域。
论文中注意力机制
一种是加型注意力机制additive attention 可以解决query和key不等长的情况
另一种是点积注意力
编码器和解码器
模型中编码器和解码器是什么作用
在 Transformer 模型中,编码器和解码器是两个核心模块,它们分别负责处理输入和输出。
编码器的作用是将输入序列转换为上下文表示,其中包括 self-attention 机制、多头注意力机制等。通过编码器的处理,输入序列中每个词的信息都被编码为一个向量,这些向量被组合成一个矩阵,作为后续处理的上下文信息。
解码器的作用是根据上下文表示生成输出序列,其中也包括 self-attention 机制以及 encoder-decoder attention 机制等。解码器通过输入起始符号,逐步生成目标序列。在生成的过程中,解码器可以利用编码器生成的上下文表示来获得更丰富的信息。
encoder的输入是wordembedding和位置编码(position embedding
encoder主要架构是cftention模块和addnormal模块
addnormal模块 是指残差连接和归一化
layernormal是对样本自身做归一化,与batchnormal不同是不考虑batch中的其他数据 只对自身做归一化
使用layer归一化是因为最初输入的向量长短不一样 同一个batch的数据相差很大
encoder层的基础单元就是mutiheadattention
在讲他之前先了解selfattention
selfattention是看句子中别的单词对自己的影响
具体计算就是将每个单词向量经过线性映射层装换成三个不一样的向量QKV,其中QK会通过点积矩阵相乘产生一个得分矩阵得分矩阵决定了一个词对其他词有多少注意力得分,得分越高词与词关系越大然后会将得分矩阵除以根号DK(DK是Q或者K的维度大小
接下来用softmax放缩分数得到
将的得到的矩阵与value矩阵相乘获得输出向量
mutiheadattention
是指用了不同的线形成的到不同的QKV得到不同的去计算注意力向量,最后将多个注意力向量拼接再经过一个线形层得到最后的输出
decoder
大致和encoder相同 不同有三
第一他是自回归系统
都是cfatten堆叠的结构
第一个不同
而在训练的时候 为了decoder的并行训练 以及避免积累的词汇归误差 使用了teacher forcing的机制 也就是直接输入正确的标签结果 为了与推理的时候对应训练的输入是右位移的标签序列
第二个不同格式 decoder里面 第一个子层用的是masked muti head attention 防止模型看到要预测的数据 保证整体的因果性
把词汇变成向量 onehot 和 word embedding
selfattention
关联的计算
selfattention的计算
得到b
selfattention和transformer是什么关系
Self-Attention 和 Transformer 是密切相关的两个概念。
Self-Attention,也叫做自注意力机制,是一种重要的注意力机制。它可以对于输入序列中的每个元素计算其与其他元素的关联度,并基于这些关联度来更好地捕捉序列中的长程依赖关系,从而提高模型的性能。Self-Attention 在自然语言处理、语音识别、图像处理等领域得到广泛应用。
Transformer 模型则是基于 Self-Attention 的一种模型架构,它使用 Self-Attention 机制来处理序列数据。Transformer 模型由 Vaswani 等人于2017年提出,在机器翻译等任务上取得了非常好的效果,并在自然语言处理领域引起了广泛的关注。相比传统的序列模型,如循环神经网络和卷积神经网络,Transformer 模型具有并行化计算、更好的长程依赖捕捉能力、易于训练等优点,因此被广泛应用于各种自然语言处理任务,如机器翻译、文本摘要、对话生成等领域。
总之,Self-Attention 和 Transformer 是密切相关的两个概念。Self-Attention 作为一种注意力机制,可以被应用于多种模型和任务中。而 Transformer 则是基于 Self-Attention 的一种模型架构,具有很强的表达能力和计算效率,并已在自然语言处理领域得到了广泛应用。