诸城网站建设公司,ckplayer播放器如何安装到wordpress,网站建设是属于什么岗位,从零开始学手机网站开发教程Transformer为什么使用多头注意力机制呢#xff1f;
多头可以学习到不同维度的特征和信息。为什么可以学习到不同维度的信息呢#xff1f;
答案是#xff1a;多头注意力机制的组成是有单个的self attention#xff0c;由于self attention通过产生QKV矩阵来学习数据特征
多头可以学习到不同维度的特征和信息。为什么可以学习到不同维度的信息呢
答案是多头注意力机制的组成是有单个的self attention由于self attention通过产生QKV矩阵来学习数据特征那每一个self attention最终会产生一个维度上的输出特征所以当使用多头注意力机制的时候模型就可以学习到多维度的特征信息这使得模型可以从多个维度更好的理解数据。同时多头注意力机制还是并行计算的这也符合现在硬件架构提升计算效率。详细说明请看下文。
首先要明确的是multi head attention的组成是单个的self attention。我们先理解self attention的计算过程。
self attention的计算如左下图所示其中QKV的来源是将输入X进行线性变换产生三个不同的权重矩阵如右下图所示然后这三个矩阵依次和输入x做矩阵点乘运算得到了QKV 最后通过下面这个式子的可以得到self attention的输出我们可以将其理解为一个维度上的特征信息。 而多头注意力机制的如下图允许模型从不同的子空间关注多个不同的位置上图中的QKV的来源文件中矩阵是生成了可学习的从而捕捉不同级别的特征和信息使得每个头可以学习到不同的关系这使得模型可以从不同的角度理解数据。 几个问题
1、Q和K为什么使用不同的权重矩阵生成为什么不能使用同一个值进行自身的点乘运算
回答1使用不同的权重举证可以增加模型的表达能力不同的权重矩阵允许模型在不同的空间中学习和匹配不同的特征。2不同的权重矩阵可以使模型更好的参数化学习到更多的信息而不是仅仅依赖一个权重矩阵。
2、self attention中为什么是点乘而不是add二者复杂度上有什么区别
回答点乘注意力通常在实践中表现更好可能是因为计算简单和高效。点乘复杂度为O(d*n^2)其中d是特征维度n是序列长度。
3、transformer的encoder结构
回答encoder由多个相同的block组成如下图所示每个block中包含由两个模块multi head attention和feed forward模块。每个模块中都含有一个残差连接和归一化层。