简单易懂的Transformer学习笔记

[1. 整体概述](#1. 整体概述)

[2. Encoder](#2. Encoder)

[2.1 Embedding](#2.1 Embedding)

[2.2 位置编码](#2.2 位置编码)

[2.2.1 为什么需要位置编码](#2.2.1 为什么需要位置编码)

[2.2.2 位置编码公式](#2.2.2 位置编码公式)

[2.2.3 为什么位置编码可行](#2.2.3 为什么位置编码可行)

[2.3 注意力机制](#2.3 注意力机制)

[2.3.1 基本注意力机制](#2.3.1 基本注意力机制)

[2.3.2 在Trm中是如何操作的](#2.3.2 在Trm中是如何操作的)

[2.3.3 多头注意力机制](#2.3.3 多头注意力机制)

[2.4 残差网络](#2.4 残差网络)

[2.5 Batch Normal & Layer Narmal](#2.5 Batch Normal & Layer Narmal)

[2.5.1 Batch Normal](#2.5.1 Batch Normal)

[2.5.2 Layer Normal](#2.5.2 Layer Normal)

[3. Decoder](#3. Decoder)

[3.1 Mask](#3.1 Mask)

[3.2 交互层](#3.2 交互层)


1. 整体概述

Transformer模型首次提出是在论文Attention is All You Need中。在论文中,Transformer被用来实现机器翻译的工作。相较于RNN难以并行处理信息与CNN窗口短难以处理长序列的缺点,Transformer具有更高的效率与更加优秀的性能。

总体来看,Transformer由编码器与解码器两部分组成。

其中,Encoder与Decoder是可以堆叠N(论文中N=6)层的,这些层结构相同,参数独立。

论文中的Transformer架构如下,下文将针对各个环节进行解释。

2. Encoder

分为三个部分,输入部分、注意力机制与前馈神经网络。将输入送入(词嵌入层),与位置编码对位相加。之后进行多头注意力机制处理,进入残差网络并将结果进行。之后进入双层全连接网络,并对结果进行残差和正则化处理。

论文中的有6层堆叠网络,其中每层有2层子层网络。

2.1 Embedding

可以看作是一个查找表,用来获取每个单词的学习向量表示。神经网络通过数字进行学习,所以将每个单词映射到一个连续值的向量来表示该单词。

2.2 位置编码

2.2.1 为什么需要位置编码

不同于RNN的按时间线串行处理,Transformer是并行处理的。为了保存序列顺序,引入位置编码。

2.2.2 位置编码公式

将Embedding与位置编码相加得到的值作为下面环节的输入。

2.2.3 为什么位置编码可行

对于一个特定位置的维的位置向量,借助三角函数的性质​​

我们可以得到:

可以看出,位置的位置向量的某一维,可以由位置与位置的位置向量的为的线性组合表示。这意味着向量中蕴含了相对位置信息(但该相对位置信息会在注意力机制处消失)。

2.3 注意力机制

2.3.1 基本注意力机制

注意力即关注点。比如给你一张包含婴儿的图片,并提问婴儿在干嘛,此时你对图片中各部分的关注度是不同的,可能对婴儿的脸与手的部分关注度更高,而对图片边缘部分则关注度较低。

论文中给出的注意力公式如下:

下面以输入"我不爱你"为例解释公式。如图,阶段1中向量Q与向量K点乘,点乘得到的值可以反映两个向量之间的相似程度。阶段2对阶段1中得到的值做了类softmax的归一化处理。除以可以防止值向两端偏导致梯度消失。阶段3中将阶段2得到的值分别与对应的value值相乘,最后将这些结果相加得到了Attention Value。

以上是nlp的举例,cv中也类似,图像的分割可类比词的分割。

2.3.2 在Trm中是如何操作的

首先,我们需要由单词向量获取的值。对于词向量,将其分别与相乘(注意这里与所有的词向量相乘的都是同一套参数),可以得到。接着,计算的相似度,得到的值。 在实际代码中,通常使用矩阵表示,方便并行。

2.3.3 多头注意力机制

将词向量与不同的参数相乘,可以得到多组值。亦即将投影到低维次,做j次注意力函数,合并每个输出得到最终输出。

类似于里的多通道输出,使得Trm有可学习的参数。

2.4 残差网络

残差网络将原先的输出与输入对位相加。要求输入与输出维度相同,论文中设置维度为512。

将上图简化如下:

根据后向传播的链式法则:

所以

连乘容易导致梯度消失,又因为连乘前有"1"在,所以偏导不易为0。因此,使用残差可以得到有效防止梯度消失,从而得到更深的网络。

2.5 Batch Normal & Layer Narmal

2.5.1 Batch Normal

针对不同样本的同一维度(特征)进行标准化处理,使得均值为0,方差为1。

缺点:

1.当较小时,效果差(此时每个里的样本的均值和方差无法替代整体)。

2.在中效果比较差,因为会出现词向量长度不一样的情况。

2.5.2 Layer Normal

针对同一样本的不同维度(特征)进行标准化处理,使得均值为0,方差为1。

3. Decoder

的组成模块大体相似,主要的不同在于与交互层。

论文中的具有6层堆叠网络,其中每层网络有2个子层,多插入了第三个子层。

3.1 Mask

需要Mask的原因:若与Encoder一样没有Mask,则会导致预测结果偏差。因为那样子训练模型的时候后续单词是可见的,但实际预测时,未来的单词是不可知的。因此将后续的单词计入影响是不合适的。

实现Mask的方法:计算权重时,t时刻之后的值替换为很大的负数,指数变换后为0。

3.2 交互层

每个Encoder与所有的Decoder进行交互。k,v来自于Encoder本身,q来自于Decoder。这里相当于Decoder中的每个q去询问每个Encoder输出的量,并与之结合。

但是在实际代码训练中,一般Encoder生成q,k矩阵,Decoder生成v矩阵加权。

参考资料:

Vaswani, Ashish, et al. "Attention is All You Need." Advances in Neural Information Processing Systems (NIPS), 2017.

Transformer论文逐段精读【论文精读】_哔哩哔哩_bilibili
Transformer从零详细解读(可能是你见过最通俗易懂的讲解)_哔哩哔哩_bilibili
超强动画,一步一步深入浅出解释Transformer原理!_哔哩哔哩_bilibili

相关推荐
清酒难寻5 小时前
深度学习进阶(二十四)Swin 的二维 RPE
人工智能·深度学习
步步为营DotNet5 小时前
借助 Microsoft.Extensions.AI 与 ASP.NET Core 10 实现智能 Web 应用故障预测
人工智能·microsoft·asp.net
AI创界者5 小时前
零基础上手!ComfyUI + LTX-2.3 图生视频完整工作流搭建与调优指南(附避坑细节)
大数据·人工智能
怕浪猫5 小时前
AI图片工具到底有哪些?一份按能力维度整理的清单
人工智能
hongmai6668886 小时前
FH8856V310芯片详解:6M高清+0.5TOPS算力,赋能智能安防新方案
人工智能·单片机·嵌入式硬件·物联网·智能家居
一颗小树x6 小时前
NVIDIA Jetson Thor 运行 LLM / VLM:模型全整理与 vLLM 实践
人工智能·llm·jetson·vllm
每日综合6 小时前
蓝白风暴席卷BW2026!雷克沙展台首日燃情纪实
人工智能
To_OC6 小时前
手搓 LangChain 工具调用:原来 Agent 的核心逻辑,就是个 while 循环
人工智能·langchain·llm
有Li6 小时前
基于扩散模型的超声计算机断层成像实现肌肉骨骼组织高保真三维重建文献速递/基于多模态的医学影像分割与理解
大数据·深度学习·文献·医学生
Drgfd6 小时前
机器人从工厂走进生活:通用机器人开启大众商用时代
人工智能