Transformer

1. 序列到序列任务中的编码器-解码器架构

Transformer :通用特征提取器

  • seq2seq (一种任务类型)从原序列到目标序列 例:翻译任务
  • encoder-decoder 完成seq2seq的其中一种网络结构
  • attention机制
RNN Encoder-Decoder网络架构

Transformer_第1张图片
使用循环神经网络,将变长源序列X编码成定长(难点)向量表示c,并将学习的定长向量表示c解码成变长木变序列Y。

2.序列到序列任务中的注意力机制

Seq2Seq with Attention网络架构

Transformer_第2张图片
加权平均

3. Attention机制 (没有序列顺序)

3.1 柔性注意力机制

输入信息X=[x1…xN]
注意力机制计算:

  1. 在输入信息上计算注意力分布
  2. 根据注意力分布计算输入信息的加权平均
注意力分布

给定一个和任务相关的查询向量q,用注意力变量z∈[1,N]表示呗选择信息的索引位置,即z=i表示选择了第i个输入信息。其中,查询向量q可以是动态生成的,也可以是可学习的参数。

注:大部分情况下q取的是当前序列的前序序列

柔性注意力的注意力分布:
在给定输入信息X和查询变量q下,选择第i个输入信息被选中的概率 :
在这里插入图片描述
其中,αi称为注意力分布,s(xi,q)称为注意力打分函数
注意力打分函数:(缩放点积最常见)
缩放点积最常见
如下图,在柔性注意力机制中,输入X不仅要参与计算αi,还要参与最后的加权平均计算。键值对注意力机制改善了这个问题。
Transformer_第3张图片

3.2 键值对注意力机制

输入信息为(K,V),其中键用来计算注意力分布αi,值用来计算聚合信息。 k,v通常不相等
当K=V时,键值对注意力机制等价于柔性注意力机制
Transformer_第4张图片

3.3 自注意力机制

提出三个新的向量,在k,v,q中,最重要的是v, v就是输入序列X的线性变换,包含了X的全部信息
减少了对外部信息的依赖,更擅长捕捉数据或者特征内部相关性,主要通过计算单词间的相互影响来解决长距离依赖问题
Transformer_第5张图片

Transformer_第6张图片

3.4 多头注意力机制

Transformer_第7张图片

attention缺点:
没有考虑输入的位置信息,
解决:transformer位置嵌入,位置编码

4. Transformer通用特征提取器

用attention机制在encoder-decoder架构下完成seq2seq任务Transformer_第8张图片

详细讲解:https://zhuanlan.zhihu.com/p/338817680

你可能感兴趣的:(深度学习,transformer,深度学习,人工智能)