Transformer模型的简单学习

news2024/12/27 18:39:22

前言

Transformer 来源于一篇论文:Attention is all you need

TRM在做一件什么事情呢?其实一开始它是被用于机器翻译的:

在这里插入图片描述

更详细的:

在这里插入图片描述

更详细的:

在这里插入图片描述

从上图可以看出,一个Encoders 下面包含了 n 个 Encoder,Decoders同理。

需要注意的是,这 n 个 Encoder 从结构上完全相同,n 个 Decoder 从结构上也是完全相同的,同时 Encoder 和 Decoder 的结构是不相同的。还要注意,虽然 Encoder 与 Encoder 之间结构相同,但并非是由一个 Encoder copy n 份得到的 Encoders,因为每个 Encoder 之间的参数并不相同。也就是在训练的时候并非只训练一个 Encoder,而是 n 个 Encoder 都在训练(Decoder同理)。

来看一下原论文中的图示:

在这里插入图片描述

可以看见 Nx 的意思就是有 N 个这样的结构,左边部分就是我们之前说的 Encoder,右边部分就是 Decoder。

接下来我们来详细解释一下这两个部分。

Encoder部分

位置编码

Encoder

在这里插入图片描述

可以看见一个 Encoder 可以被划分为三个部分,第一个部分是 输入部分,第二个部分是 注意力机制部分,第三个部分就是 前馈神经网络部分。

输入部分

输入部分又被分为两块内容:Embedding 和 位置嵌入。

Embedding 是 NLP 中的一个入门小知识点:

在这里插入图片描述

图示就是:

在这里插入图片描述

可以看到上面假设有 “我爱你…” 总共十二个字或单词,此时我们按字切分,每一个字都可以被映射成一个大小为 512 长度的连续向量空间中以供后续操作。

这个过程就是 Embedding。

那么为什么需要 位置嵌入(编码) 呢?

在这里插入图片描述

在上图的 RNN 时间线展开中,词与词之间的顺序可以由时间序列来显式地给出(因为一句话输入 RNN 中,它是一个单词一个单词的进行训练的),因此不需要位置编码,而在 TRM 中则是一下就能直接输入 N 个词,那么词与词之间的位置关系就需要记录,否则无法连词成句了,这就是为什么需要位置编码这一步操作的原因。

论文中的位置编码公式如下:

在这里插入图片描述

其中,pos 指的就是字的位置,2i 和 2i+1 指的是偶数和奇数,即 PE(pos, 2i) 指的就是偶数位置上的字,用 sin 来表示,那么 2i+1 就用 cos 来表示。

结合我们一开始举的例子,一个字被 Embedding 成一个 512 大小的向量,那么就有下图这样的解释:

在这里插入图片描述

得到位置编码之后,我们将位置编码 512 维度和 字 向量的 512 维度进行相加得到一个最终的 512 维度作为我们整个 TRM 的输入:

在这里插入图片描述

为什么位置嵌入会有用:

在这里插入图片描述

注意:这种相对位置信息会在注意力机制那里消失。

多头注意力机制

基本的注意力机制

先来看一张图:

在这里插入图片描述

不难感受到人类在观察东西的时候,有最关注的部分和不怎么关注的部分,上图中颜色越深就表示越受关注,颜色越浅表示不怎么关注。

进一步引申,把人(我们的视角)抽离出来把人替换成一句话,即:婴儿在干嘛。

我们想要知道 “婴儿在干嘛” 这句话更加关注于图片中的哪个区域(也就是这句话和图中哪个区域更相似),想通过公式或者某种方式得到这个结果。

这就是注意力机制的一种基本形式。

在这里插入图片描述

这个东西怎么做呢?有论文中的公式如下:

在这里插入图片描述

上图中,QKV是三个矩阵,计算注意力机制的时候一定要有QKV三个矩阵,首先是 QK转置相乘,然后除以某个值(先不管),再 softmax 做归一化,softmax 之后得到的是一个相似度向量,比如 0.1、0.2、0.4… 最后再乘一个 V 矩阵,得到的应该是一个加权的和,差不多是这样。

归一化概念:

在这里插入图片描述

softmax概念:

在这里插入图片描述

举个例子:

在这里插入图片描述

之前公式中的 QKV 便是这里的 Query、Key 以及 Value,但要注意这是三个矩阵(具体是什么矩阵会在后面详述)。

即 Q 代表 “爱” 这个字的某种向量矩阵,K 是 “我不爱你” 的四个字所对应的某种向量矩阵,而 V 是 “我不爱你” 四个字所对应的某一种值的向量矩阵。

然后进行如下图的计算:

在这里插入图片描述

F(Q,K) 的意思是计算相似性,可以是点乘或者余弦相似度或者MLP等等方式,即 “爱” 这个字分别和 “我不爱你” 四个字进行这种函数计算,然后得到一个值 s1、s2、s3 和 s4,做 softmax 归一化之后得到相似度 a1、a2、a3、a4,四个加起来值为1,最后再和一个value值进行先乘再累加就得到了 Attention Value 。

在 TRM 中怎么操作

主要就是如何得到 QKV 的矩阵值呢?

在这里插入图片描述

因为我们只有单词向量,如何获取 QKV 三个矩阵的值呢?从上图可以看出,就是分别用三个权重参数矩阵来分别进行计算得到相应的三个 QKV 矩阵即可。

接下来计算Attention value :

在这里插入图片描述
在这里插入图片描述

上面图片中的例子只用了一套参数,如果使用了多套参数,那么就成了我们所谓的多头注意力机制:

在这里插入图片描述

类似于CNN中的多通道。

残差和LayerNormalization

先通过一张图来了解一下残差和LayerNormalization大致的流程:

在这里插入图片描述

从上图中不难看出,从下往上看,x1 和 x2是词向量,经过位置编码后被送入注意力机制层,然后输出得到 Attention Value z1 和 z2,然后在残差层,z1和z2合起来成为一个矩阵再和原来经过了位置编码的两个词向量合起来的矩阵进行对位相加,最后进行一下LayerNormalization,这就是残差和LayerNormalization大致做的事情。

什么是残差

在这里插入图片描述

再来看一张图:

在这里插入图片描述

从上往下看,x 作为输入,经过两层 weight layer 网络计算(这两层网络所做的操作可以代称为一个函数F(x)),然后可以看到在经过 F(x)操作之后得到输出,如果没有残差网络的话那么直接输出就结束了,但是有残差网络的话就还会进行一步操作,即将原先输入的 x 原封不动的拿到输出的地方,用来和经过F(x)计算的输出值进行对位相加以形成真正的输出:F(x) + x;

这就是残差做的事情。

残差的作用:

在这里插入图片描述

从上面的计算公式结果中可以看到,在残差网络结构中,即使连乘再多,就算产生梯度消失的情况,结果也不会变成0,因为有个常数 1 存在,这就是残差的作用。

LayerNormalization

在这里插入图片描述

前馈神经网络

在这里插入图片描述

Decoder部分

Decoder部分 就比较简单了,其主要有两个部分:

在这里插入图片描述

一个是多头注意力机制层,还有一个是交互层。

掩盖的多头注意力机制

第一个部分就是 Masked Multi-Head Attention:

在这里插入图片描述

在这里插入图片描述

交互层

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这里交互的意思是,相当于decoder 中每个 Q(query) 去询问每个 encoder 输出的量,并与之结合。

Encoder 中的 Q 是 Embedding 来的,是已知的输入,而 Decoder 输出的是 Q 是预测的,也就是结果预测的词。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1705576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python Anaconda环境复制

虚拟环境复制 conda-pack 第一种方式 conda打包 在打包之前如果没有conda-pack包的话,需要安装pip install conda-pack打包 conda pack -n py36 -o py366.tar.gz -o就是给导出得到的压缩包就在当前目录下 传输到另外一台服务器上 有两台linux服务器&#xff0c…

详析河南道路与桥梁乙级资质新办条件

河南道路与桥梁乙级资质新办条件详析如下: 一、企业基本条件 独立企业法人资格: 申请人必须是具有独立企业法人资格的单位。注册资金: 企业的注册资金应不少于100万元人民币。社会信誉: 申请人应具有良好的社会信誉,无…

RunnerGo V4.6.0 多项新增功能,快看看有没有你想要的!

RunnerGo V4.6.0版本上线,不仅对现有功能进行了深度优化和改进,还带来了诸多新功能。 UI 插件:浮窗升级,优化浏览体验 此次更新中,UI插件全新升级至V2.1版本。新版取消了页面内右下角按钮的设计,在浏览器右…

postman调用Grpc

环境: .net6.0 一、准备 安装nuget: Grpc.AspNetCore Google.Protobuf Grpc.Core.Api Grpc.Tools Grpc.AspNetCore.Server.Reflection Program.cs: public class Program{public static void Main(string[] args){var builder WebApplicat…

Linux 删除SSH密钥(id_ed25519),重新生成

在Linux系统中,重新生成SSH密钥(比如id_ed25519)的过程包括删除现有的密钥文件并生成一个新的。 以下是具体的步骤: 0. 查看下是否有密钥 1. 删除原有的id_ed25519密钥 默认情况下,SSH密钥存储在用户的主目录下的 .…

最新!!2024年上半年软考【中级软件设计师】综合知识真题解析

2024上半年软考考试已经结束了,为大家整理了网友回忆版的软件设计师真题及答案,总共30道题。 上半年考试的宝子们可以对答案预估分数!准备下半年考的宝子可以提前把握考试知识点和出题方向,说不定会遇到相同考点的题目&#xff01…

网络流量探针与流量分析系统:全面指南

目录 什么是网络流量探针? 流量分析系统的功能与重要性 流量分析系统的主要功能 流量分析系统的重要性 AnaTraf 网络流量分析仪 如何选择合适的网络流量探针与流量分析系统? 1. 性能与扩展性 2. 易用性与部署 3. 数据可视化与报告 4. 安全性与…

指定GPU运行程序设置cmd运行的程序后台运行

一、指定GPU运行程序 因为条件限制,拿到的资源只有一块GPU,这时我们需要设置程序在指定的GPU运行。解决思路:在train文件中设置环境变量,让程序在指定GPU运行。 import os os.environ["CUDA_VISIBLE_DEVICES"] "…

汽车合面合壳密封UV胶固化后一般可以耐多少度的高温和低温? 汽车车灯的灯罩如果破损破裂破洞了要怎么修复?

汽车合面合壳密封UV胶固化后一般可以耐多少度的高温和低温? UV胶固化后的耐高温和低温能力取决于具体的UV胶水品牌和型号,以及固化过程中的条件。一般来说,高品质的UV胶水在固化后可以提供较好的耐温性能,但确切的耐温范围需要参考各个厂家提…

ubuntu使用oh my zsh美化终端

ubuntu使用oh my zsh美化终端 文章目录 ubuntu使用oh my zsh美化终端1. 安装zsh和oh my zsh2. 修改zsh主题3. 安装zsh插件4. 将.bashrc移植到.zshrcReference 1. 安装zsh和oh my zsh 首先安装zsh sudo apt install zsh然后查看本地有哪些shell可以使用 cat /etc/shells 将默…

gmssl vs2010编译

1、虚拟机win10 x64,离线安装vs2010和2010sp1补丁; 2、安装ActivePerl_v5.28.1.0000和nasm-2.16.03-installer-x64均是默认完整安装; nasm官网下载: Index of /pub/nasm/releasebuilds/2.16.03/win64https://www.nasm.us/pub/nas…

链表带环问题的思考

判断链表是否带环 思路:快慢指针 慢指针走一步,快指针走两步,当快指针追上慢指针时,代表该链表带环。代码如下: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ …

【服务器报错】Pycharm运行服务器代码提示 can‘t open file “本地文件路径“

1. 问题 Pycharm连接远程服务器,代码已经同步,运行时候报错 #模拟报错 bash: line 0: cd: G:/python/hhh/Hi: No such file or directory /home/hhh/anaconda3/envs/hard/bin/python: cant open file G:/python/hhh/hi/hei.py: [Errno 2] No such file…

Marvelous Designer12 解锁版安装教程 (3D服装设计软件)

前言 Marvelous Designer允许您使用我们的尖端设计软件创建美丽的3D虚拟服装。最后,使用工具在提高质量的同时节省时间,为您的设计注入活力。从基本衬衫到复杂的褶皱连衣裙和粗糙的制服,Marvelous Designer几乎可以将织物纹理和物理特性复制…

基于NAMUR开放式架构(NOA)的工业设备数据采集方案

一 NAMUR开放式架构 传统自动化金字塔结构的优越性在过去许多年里已被证明。然而,传统的自动化金字塔在获取和利用对物联网和工业4.0有价值的数据方面却存在一定挑战。这是因为传统系统通常是封闭的,数据访问受到限制,难以集成到新的数字化解…

GoldenEye-v1(vulnhub)靶机练习实践报告

GoldenEye-v1****靶机练习实践报告 一、安装靶机 靶机是.ova文件,需要用VirtualBox打开,但我习惯于使用VMWare,因此修改靶机文件,使其适用于VMWare打开。 解压ova文件,得到.ovf文件和.vmdk文件。 用记事本打开.ovf文件并修改“…

聚会活跃气氛神器小程序源码系统 各种小游戏 让聚会不再冷场 带源代码包以及安装搭建教程

系统概述 在社交聚会中,如何让气氛活跃起来一直是一个让人关注的问题。小编给大家分享一款聚会活跃气氛神器小程序源码系统。它不仅提供了丰富多样的小游戏,还带有源代码包和详细的安装搭建教程,让你轻松打造属于自己的聚会互动平台。 代码…

WPS文件没有保存怎么恢复?5个解决方案轻松恢复!

“我在WPS上编辑了一个文件,但是还没来得及将它保存,我不小心就退出软件了,现在不知道有什么方法可以恢复WPS文件呢?大家可以帮帮我吗” WPS作为一款功能强大且用户友好的软件,给我们的工作带来了很多的便利。但我们在…

谢宁DOE培训适合哪些人?

近年来,谢宁DOE培训以其专业、系统的课程内容,受到了众多学习者的青睐。那么,这个培训究竟适合哪些人呢?深圳天行健企业管理咨询公司解析如下: 首先,谢宁DOE培训适合质量管理部门的专业人员。质量总监、质量…

解线性方程组——最速下降法及图形化表示 | 北太天元 or matlab

一、思路转变 A为对称正定矩阵, A x b Ax b Axb 求解向量 x x x这个问题可以转化为一个求 f ( x ) f(x) f(x)极小值点的问题,为什么可以这样: f ( x ) 1 2 x T A x − x T b c f(x) \frac{1}{2}x^TAx - x^Tb c f(x)21​xTAx−xTbc 可…