Introduce
-
自注意力机制:允许模型在处理序列的每个元素时同时考虑序列中的所有其他元素,从而捕获元素间复杂的依赖关系。这一机制优化了特征提取过程,并加深了对序列内部结构的理解。
-
交叉注意力机制:使得模型能够在生成过程中动态地关注输入序列的相关部分,从而基于已提取的特征进行精准的预测和生成。
-
多头注意力:通过并行地执行多个注意力机制的实例,模型能够同时从不同的表示子空间学习信息,进一步增强了其捕获序列内复杂关系的能力。
-
位置编码:由于Transformer完全基于注意力机制,缺少了处理序列的固有顺序信息。位置编码通过加入每个元素位置的信息,使模型能够利用序列的顺序。
-
前馈网络:在自注意力层之后,每个位置的输出将通过一个相同的前馈网络进行进一步的处理,这增加了模型的表达能力。
Seq 2 Seq
Transformer 本质上还是一个Seq 2 Seq 模型。输入一个序列,输出一个序列。输出长度取决于模型
应用:语音识别、机器翻译、语音翻译
Seq2Seq 模型是一种序列到序列的模型,通常用于机器翻译和文本生成任务。它由编码器和解码器两部分组成,其中编码器将输入序列编码为固定长度的向量表示,而解码器则将该向量表示解码为输出序列。传统的
架构概述
Transformer模型包含两大部分:编码器(Encoder)和解码器(Decoder)。
-
编码器:由多层相同的层组成,每层有两个主要子层,即自注意力层和前馈神经网络。编码器负责处理输入序列,捕获序列内各元素间的关系及其上下文信息。
-
解码器:结构与编码器类似,但在自注意力和前馈网络之间增加了一个交叉注意力层。解码器利用编码器的输出以及之前已生成的序列信息来预测下一个序列元素。
优点
-
并行计算能力:由于不依赖于序列的逐元素处理,Transformer能够实现显著的并行处理,大大加快了训练速度。
-
长距离依赖处理:自注意力机制使得模型能够有效处理长距离依赖问题,改进了模型对序列的理解。
-
灵活性和通用性:Transformer模型已被证明在多种NLP任务上都非常有效,包括机器翻译、文本生成、摘要、问答系统等,同时也被扩展到了计算机视觉等其他领域。
CNN and Transformer
CNN要感受到全局信息则需要不断地堆叠层数
而transformer只需要一层selfAttention
Append
LayerNorm and BatchNorm
batch是批处理,图片中每层的特征通过并行计算我们一次就能拿到,所以可以将多张图片放在一个batch中并行处理而且输入的大小是相同的,所以适合batchNorm,而文字是序列特征,输入的sequence是不同的,如果做batchNorm会受到极端长度sequence的影响,而layerNorm则不受影响,因为每层的token个数是相等的;为什么强调数量,因为在求均值的时候,统一除的是最长的个数;
画图更好理解
Beam search
是一种启发式图搜索算法,常用于自然语言处理(NLP)中的序列生成任务,如机器翻译、文本摘要、语音识别等。它是一种平衡搜索速度和效果的折衷方案,特别适用于在大规模输出空间中寻找最优解的场景。
工作原理
在生成序列的每一步,beam search 都会保留一定数量(称为“beam宽度”或“beam size”)的最佳候选解,而不是像贪心搜索那样只保留单个最佳解,也不是像穷举搜索那样保留所有可能的解。这些候选解称为“beam”。
-
初始化:在序列的开始,选择概率最高的
k
个词作为起始候选项,其中k
是预设的beam宽度。 -
迭代生成:对于每个候选项,根据当前状态生成下一个可能的词,并计算整个序列的概率(通常是对数概率的累加)。然后,从所有可能的候选项中选择总概率最高的
k
个序列作为新的候选项。 -
终止条件:重复步骤2,直到达到预定的序列最大长度,或者所有的beam候选项都以特定的结束符结尾。
-
选择最佳序列:在所有候选项中选择概率最高的序列作为最终输出。
优点
-
效率:相比于穷举搜索,beam search 通过限制每一步保留的候选项数量来大幅减少计算量。
-
灵活性:beam宽度是可调的参数,通过调整宽度可以在搜索质量和计算成本之间进行权衡。
缺点
-
次优解:beam search 并不保证能找到全局最优解,特别是当beam宽度设置得较小时,可能会错过最佳序列。
-
搜索偏差:由于倾向于选择较短的候选序列(较短序列的累积概率往往较高),可能会导致生成偏向于较短输出的倾向。