transformer的输入到输出(维度以及矩阵计算) | 您所在的位置:网站首页 › 计算维度 › transformer的输入到输出(维度以及矩阵计算) |
基本的transformer模型框架 本期以翻译为一个例子讲述他的训练过程:
从输入文本开始:x=早上好 y=good morning encode部分: inputs的输入: x=早上好 经过embedding向量化加上positional encoding(位置向量)后矩阵维度为(3,5)的一个矩阵,其中3为文本的个数(有几个字维度为多少),5是自己定义的向量维度 x=(3,5),其中包括字本身的向量和位置的向量 q=x*wq k=x*wk v=x*wv(wq,wk,wv分别为初始化矩阵) Multi-Head Attention(多头注意力机制) 本次讲解为4头,基本注意力机制的公式为:softmax(q*k.T/^dk)*v 维度变化:q*k.T=(3,5)*(5,3)=(3,3)(/^dk和softmax矩阵维度不变) 之后乘v=(3,3)*(3,5)=(3,5)(由于为4头注意力机制所以5乘4) z=(3,5*4)=(3,20) 注意力机制到这里就结束了(z为提取的向量特征) 再经过维度转换用于之后的残差和layer Norm z=(3,20)*(20,5)=(3,5) (残差为了防止在训练过程中信息遗失过多) 再经过前馈神经网络进行非线性激活(维度不变) c=经过前馈的z=(3,5) 最后把提取出来的语义向量c作为decode的k和v decode部分: 输入为y= good morning (这里会加一个起始符) 之后经过向量化enbedding和位置向量positional encoding后 y=(3,5)的一个矩阵(包含了位置向量和单词向量) q=y*wq k=y*wk v=y*wv(wq,wk,wv分别为初始化矩阵) Masked Multi-Head Attention(多头遮蔽注意力机制) 本次讲解为4头,基本注意力机制的公式为:softmax(q*k.T/^dk)*v 维度变化:q*k.T=(3,5)*(5,3)=(3,3)(/^dk和softmax矩阵维度不变) 再经过计算softmax后它会进行掩码矩阵的信息会变成下面这个图涂染的部分信息为0(防止在训练时提取到n+1个单词的信息)(掩码时矩阵维度不变) 之后乘v=(3,3)*(3,5)=(3,5)(由于为4头注意力机制所以5乘4) z=(3,5*4)=(3,20) 注意力机制到这里就结束了(z为提取的向量特征) 再经过维度转换用于之后的残差和layer Norm z=(3,20)*(20,5)=(3,5) (残差为了防止在训练过程中信息遗失过多) 再经过前馈神经网络进行非线性激活(维度不变) z=(3,5) 这里的z作为接下来多头遮蔽注意力机制的q 之后就和上面的过程一样经过注意力后维度为(3,5) 最后经过线性层后做softmax把最大概率的单词输出 |
CopyRight 2018-2019 实验室设备网 版权所有 |