美文网首页aboutDL
transformer再记(解码器)

transformer再记(解码器)

作者: madeirak | 来源:发表于2019-02-23 17:28 被阅读1次

    上一篇:transformer再记(编码器)

    解码器与编码器在细节上有差异。

    编码器解码器连接:

    编码器通过处理输入序列开启工作。顶端编码器的输出之后会变转化为一个包含向量K(键向量)和V(值向量)的注意力向量集 。这些向量将被每个解码器用于自身的“编码-解码注意力层”,而这些层可以帮助解码器关注输入序列哪些位置合适。

    解码器解码:

    在完成编码阶段后,则开始解码阶段。解码阶段的每个时间步都会输出一个输出序列的元素(在这个例子里,是英语翻译的句子)

    接下来的每个时间步重复了这个过程,直到到达一个特殊的终止符号,它表示transformer的解码器已经完成了它的输出。每个时间步的输出在下一个时间步被提供给底端解码器,并且就像编码器之前做的那样,这些解码器会输出它们的解码结果 。另外,就像我们对编码器的输入所做的那样,我们会将上个时间步的输出嵌入并添加位置编码,来表示每个单词的位置。

    解码器中的“编码-解码注意力层”工作方式基本就像多头自注意力层一样,只不过它是通过在它下面的解码层来创造查询矩阵(Q),并且从编码器的输出中取得键(V)/值矩阵(K)。


    最终的线性变换和Softmax层

    线性变换:

    解码器最终会输出一个实数向量。解码器输出后的线性变换层是一个简单的全连接神经网络,它可以把解码组件产生的向量投射到一个比它大得多的(字典维度),被称作对数几率(logits)的向量里。 不妨假设我们的模型从训练集中学习一万个不同的英语单词(我们模型的“输出词表”)。因此对数几率向量为一万个单元格长度的向量,其中每个单元格对应某一个单词的分数。

    softmax层:

    Softmax 层便会把那些分数变成概率(都为正数、和为1)。概率最高的单元格被选中,并且它对应的单词被作为这个时间步的输出。 

    以解码器组件产生的输出向量开始,之后它会转化出一个输出单词。

    相关文章

      网友评论

        本文标题:transformer再记(解码器)

        本文链接:https://www.haomeiwen.com/subject/gyvpyqtx.html