Transformer详解讲解


Transformer

Transformer是一个编码器-解码器网络架构的模型,最早的编码器解码器网络架构时Seq2Seq模型,用于机器翻译等任务,后来逐渐在计算机视觉领域中流行。

Transformer主体框架

在这里插入图片描述

Transformer是第一个完全依靠自注意力计算输入和输出表示的传导模型,无需使用RNN或卷积等其他结构。如图所示是Transformer的整体架构,Transformer是一个典型的编码器-解码器结构,其中编码器组由六个编码器构成,解码器组也由六个解码器构成。编码器由多头自注意力机制全连接前馈网络两个子层构成,每个子层周围采用残差连接, 然后进行层归一化处理。输出为 L a y e r N o r m ( x + S u b l a y e r ( x ) ) LayerNorm(x+Sublayer(x)) LayerNorm(x+Sublayer(x))。解码器除了有上述的两个子层还具有一个多头注意力机制,对编码器信息进行融合。我们还修改解码器堆栈中的自注意力子层,以防止在训练过程中关注到后续位置。在训练过程中,我们将所有的真值都输入到解码器中,这种掩码机制保证了对位置i的预测只能依赖于小于i位置的已知输出,不会用到后续真值。在验证过程中,只能得到小于i位置的输出,因此不需要掩码机制。由于自注意力机制无法获取位置信息,因此在输入的时候我们需要加入一个位置编码信息,在Transformer这篇论文中,我们采用的是正余弦编码


基本术语

注意力机制

可以描述为将一组查询和一组键、值映射到一组输出的方法。其中查询、键、值和输出都是向量。输出计算为值的加权和,其中分配给每个值的权重由查询与相应键的点乘计算。通俗来说注意力机制指的是对一组输入序列,我们分别乘上矩阵 W Q 、 W K 、 W V W^Q、W^K、W^V WQWKWV,得到 q , k , v q,k,v q,k,v三个向量,序列中每个token的 q q q要与其余token的 k k k相乘,采用 d k \sqrt{d_k} dk 进行缩放。再经过softmax操作,得到的数值与 v v v进行相乘,得到一个新的特征向量,其中 k , v k,v kv来自于编码器,而 q q q来自于解码器。在实践中,我们同时计算一组查询的注意力函数,并将其打包成矩阵 Q Q Q,键、值也打包成矩阵 K , V K,V K,V则此时矩阵的输出为 A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k} } )V Attention(Q,K,V)=softmax(dk QKT)V

自注意力机制

又是也称为帧内注意力,是一种将单个序列的不同位置联系起来,以计算序列的表示的注意力机制。注意力机制中 k , v k,v kv来自于编码器,而 q q q来自于解码器。而自注意力机制的 q , k , v q,k,v q,k,v都来自于编码器或者解码器本身,因此它称作是自注意力机制。

多头注意力机制
在这里插入图片描述
注意力机制中,对于输入矩阵(一组序列,序列中的每一个token都是一个向量),我们只采用一组 W Q 、 W K 、 W V W^Q、W^K、W^V WQWKWV,得到 Q , K , V Q,K,V Q,K,V三个矩阵。而多头注意力机制中采用多组 W Q 、 W K 、 W V W^Q、W^K、W^V WQWKWV,得到多组 Q , K , V Q,K,V Q,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值