当前位置:   article > 正文

详解Transformer_transformer 权重

transformer 权重

 

一、自注意力机制(Self-Attention)

简述

    自注意力机制的核心是对输入进行全局关联的加权和,这种加权和是基于输入数据的内部关系计算得来的。

权重生成

    Transformer使用三个矩阵来计算自注意力:查询矩阵Q(query)、键矩阵K(key)和值矩阵V(value)。它们之间的关系可以通过以下算法描述:

Attention(Q,K,V)=softmax(QKTdk)V

    其中,Q、K、V是q、k、v的矩阵形式。q和k主要用于计算相似度并得到权重,而v是与这些权重进行加权求和。

图示

    qikAkD的权重可以组成矩阵Q。

    kAkD组成矩阵K。

    vAvD组成矩阵V。

    以此进行计算。

不同词向量之间求权重

具体步骤:

    1、有四个输入:A、B、C、D,分别线性变换得到qikivi

    2、将A的查询向量qA与所有词向量的ki进行点乘。结果越大,表示相似度越高,也就意味着这两个输入项更加关联。

    3、应用softmax函数将这些点乘的结果转化为权重。这确保了所有的权重之和为1,而且相似度更高的项会有更大的权重。

    4、使用这些权重与每个输入项的值向量vi进行加权求和,从而得到自注意力的输出。

    5、词向量B、C、D做同样处理。

二、多头注意力机制

简述

    多头注意力机制是对自注意力机制的并行化处理。它将自注意力机制应用于多组不同的查询查询矩阵Q、键矩阵K和值矩阵V,从而学习到不同的上下文表示。

具体步骤

    1、对原始输入进行多次独立的线性变换,产生多组不同的Q、K、V。

    2、每一组Q、K、V都单独进入一个自注意力机制进行处理。

    3、将所有的注意力输出合并起来,通常通过拼接后进行一次线性变换,以产生最终的多头注意力输出。

图解

三、Transformer编码器

简述

    编码器将输入序列,例如“要翻译的句子”,转化为一系列上下文表示向量(Contextualized Embedding)。这些向量捕捉了序列中每个词与其他词之间的关系。

结构

    编码器由多个相同的层组成,每层都由两个子层组成:自注意力层(Self-Attention Layer)和前馈全连接层(Feedforward Layer)。

    1、自注意力层:将输入序列的每个词向量与其他词向量进行交互,计算出每个词向量的上下文表示向量,也就是输入词与其他词之间的关系,确保每个词的表示都融合了其他词的信息。

    2、前馈全连接层:将自注意力层的输出向量(上下文表示向量)映射到另一个向量空间,以捕捉更高级别的特征。

    在处理输入之前,编码器首先使用嵌入层将输入词转化为词向量,从而为后续的自注意力和前馈全连接层提供适当的输入。

四、Transformer解码器

简述

    解码器利用编码器的输出,以及给定的目标序列,例如“翻译后的句子”作为输入,来生成每个位置的概率分布。这些概率分布描述了每个位置可能出现的词的可能性。

结构

    解码器由多个相同的层组成,每一层由三个子层组成:自注意力层、编码器-解码器注意力层(Encoder-Decoder Attention Layer)和前馈全连接层。

    3、编码器-解码器注意力层:将解码器当前位置的输入与编码器的所有位置进行交互,以获得与目标序列有关的信息。这确保了解码器在生成目标序列的每个词时,都能考虑到与源序列相关的上下文信息。

    解码器利用这三个子层,结合编码器的输出,为机器翻译或其他序列生成任务生成准确的输出。

五、利用transformer训练一个中英文翻译模型

编码器

编码器输入

    中文文本。这些中文句子被转化为词向量,并输入到编码器。

编码器目的

    编码器的任务是理解这个中文句子并将其转化为一个上下文相关的表示形式。这种表示形式通常是一个向量序列,其中每个向量都代表句子中的一个词,同时考虑到了其在句子中的上下文。

解码器

解码器输入

    1、编码器的输出向量序列。

    2、之前已经生成的英文词的序列。在训练期间,这通常是真实的英文翻译句子,但会逐步输入到解码器中,一个词接一个词(这种策略称为“teacher forcing”)。

解码器目的

    基于编码器的输出(表示源中文句子的上下文)以及到目前为止已经生成的英文词的信息,解码器的任务是预测下一个英文词应该是什么。

准备工作

    1、成对的中文-英文句子

        中文句子被送入编码器。

        英文句子逐词地被送入解码器,同时预测下一个词。

        预测的英文输出与真实的英文翻译进行对比,计算损失,并通过反向传播来更新模型参数。

    2、词汇表

        为中文和英文各自建立一个词汇表。

        这些词汇表包含在“中文-英文句子”数据集中出现的所有独特的词或子词。

        模型的输出层大小等于英文词汇表的大小,以便它为每个可能的英文词汇生成一个概率。

        注意:中英文词汇表不需要一一对应。

    3、序列起始和终止标记

        为了指示解码器开始和结束生成,通常在目标序列中使用特殊的起始和终止标记。

        这意味着解码器在生成英文句子时知道从哪里开始并何时结束。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/763092
推荐阅读
相关标签
  

闽ICP备14008679号