变压器网络与异常检测全解析
变压器解码器
变压器的解码器由 M 个解码器块组成。每个解码器块除了接收前一个解码器块的输出外,还会将编码器的最终输出作为额外输入。若为第一个解码器块,则接收带有位置编码的输出嵌入。
解码器有一个额外的多头注意力层,用于执行交叉注意力,即聚焦于编码器最终输出的自注意力。其中,掩码多头注意力层的功能与编码器中的多头注意力层类似,但会应用因果掩码,确保注意力仅计算先前的标记,而非未来的标记。第二个多头注意力层则不使用掩码,其查询来自掩码多头注意力层的输出,而键和值矩阵则通过最终编码器层的输出计算得出,这样就能结合编码器对原始输入序列的表示来计算注意力分数。
例如,在从英语到法语的语言翻译任务中,编码器会处理英语句子并输出编码,这个编码可看作代表初始英语句子的“思维”矩阵。在翻译为法语时,模型会利用这个“思维”矩阵聚焦于英语句子的相关部分。解码器块的其余部分与编码器块类似。
变压器推理
变压器的推理以自回归方式进行,在机器翻译场景中的工作流程如下:
1. 使用编码器对输入句子进行编码。
2. 使用 <sos> 作为解码器的句子起始标记。
3. 利用 <sos> 和编码信息,获取下一个单词的概率分布。可以使用选择技术来挑选单词,如贪心搜索算法会选择概率最高的单词,也可以对前 K 个标记进行采样或进行束搜索。
4. 选取下一个单词,将其添加到输出序列中,得到 <sos> 和 <first_output> ,其中
超级会员免费看
订阅专栏 解锁全文

167

被折叠的 条评论
为什么被折叠?



