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

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



