大家好,今天从头讲一个人工智能非常核心的架构——Transformer!
Transformer模型由
编码器(Encoder)
和
解码器(Decoder)
两部分组成。
其中,编码器和解码器各由 N 个相同的层叠加而成的。
编码器有两个子层。分别是
多头自注意力(multi-head self-attention)
和
基于位置的前馈网络(positionwise feed-forward network)
。
解码器有三个子层。除了多头自注意力和前馈网络外,解码器还在这两个子层之间插入了第三个子层,称为
编码器-解码器注意力(encoder-decoder attention)
层。
这里也分享我整理的
226篇Transformer顶会论文合集
,包括训练transformer、卷积transformer、VIT等多个细分领域。
扫码即可无偿领取!
Transformer架构中的核心概念包括:
自注意力机制(Self-Attention):
Transformer模型的核心组成部分,允许模型在处理一个单词时同时考虑句子中的其他单词,从而捕获它们之间的上下文关系。相比传统的RNN和LSTM模型,Transformer使用自注意力机制在处理长序列和大规模数据时具有更高的并行性和计算效率。
多头注意力机制(Multi-Head Attention):
模型对每个单词的注意力分为多个“头”,这样可以让模型在多个子空间中学习信息,增强了模型对不同位置的敏感性,能够捕获不同类型的上下文信息。
位置编码(Positional Encoding):
由于Transformer不使用递归或卷积,位置编码是添加到输入单词的一种编码,提供了单词在序列中的位置信息。
残差连接与层归一化(Residual Connections & Layer Normalization):
每个子层的输出都采用了残差连接和层归一化,提高了模型的训练稳定性和性能。
想要226篇Transformer顶会论文合集,欢迎扫码下载!
下面,让我们来看看Transformer如何将输入文本序列转换为向量表示,又如何逐层处理这些向量表示得到最终的输出。
编码器通过处理输入序列开启工作。顶端编码器的输出之后会变转化为一个包含向量K(键向量)和V(值向量)的注意力向量集 ,这是并行化操作。这些向量将被每个解码器用于自身的“编码-解码注意力层”,而这些层可以帮助解码器关注输入序列哪些位置合适:
在完成编码阶段后,则开始解码阶段。解码阶段的每个步骤都会输出一个输出序列(在这个例子里,是英语翻译的句子)的元素。
接下来的步骤重复了这个过程,直到到达一个特殊的终止符号,它表示transformer的解码器已经完成了它的输出。每个步骤的输出在下一个时间步被提供给底端解码器,并且就像编码器之前做的那样,这些解码器会输出它们的解码结果 。