当前位置: 首页 > news >正文

【论文速读】Transformer:Attention Is All You Need

Transformer:Attention Is All You Need

  • 摘要
    • 模型架构
    • 注意力模型
      • Scaled Dot-Product
      • Multi-Head Attention
    • Position-wise Feed-Forward Networks
    • Embeddings and Softmax
    • Positional Encoding

摘要

我们提出了一种新的简单的网络架构,Transformer,完全基于注意力机制,完全取消RNN和CNN。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更并行,需要的训练时间明显更少。

模型架构

在这里插入图片描述

变压器遵循这种整体架构,对编码器和解码器使用堆叠的self-attention和点积的全连接层,分别如图1的左半部分和右半部分所示

编码器:该编码器由N=6个相同的层组成。每个层都有两个子层。第一种是一个多头自注意机制,第二种是一个简单的、位置上完全连接的前馈网络。我们在两个子层周围使用残差连接,然后进行层归一化。也就是说,每个子层的输出是LayerNorm(x +子层(x)),其中子层(x)是由子层本身实现的函数。为了方便这些剩余的连接,模型中的所有子层以及嵌入层都会产生尺寸 d m o d e l d_{model} dmodel= 512的输出。

解码器:解码器也由N = 6个相同的层组成。除了每个编码器层中的两个子层外,解码器还插入第三个子层,该子层对编码器堆栈的输出执行多头自注意机制。与编码器类似,我们在每个子层周围使用剩余连接,然后进行层归一化。我们还修改了解码器堆栈中的自注意子层,以防止位置关注后续的位置。这种掩蔽,加上输出嵌入被一个位置偏移,确保了对位置i的预测只能依赖于小于i的位置的已知输出

注意力模型

注意函数可以描述为将查询和一组键值对映射到输出,其中查询、键、值和输出都是向量。输出是作为值的加权和计算的,其中分配给每个值的权重是由查询与相应键的兼容性函数计算的

Scaled Dot-Product

在这里插入图片描述
输入由 d k d_k dk维度的查询(Q)和键(K),以及 d v d_v dv维度的值(V)组成。

本文 d m o d e l d_{model} dmodel=512, h h h=8,故 d k d_k dk=64

两种最常用的注意函数是:

  • dot-product attention:除了 1 d k \frac{1}{\sqrt{d_k}} dk 1,与本文的计算方式一致

  • additive attention:使用单隐层的前馈网络

虽然这两种方法在理论复杂性上相似,但在实践中,点积注意力在实践中更快,更节省空间,因为它可以使用高度优化的矩阵乘法代码来实现。

在这里插入图片描述

Multi-Head Attention

在这里插入图片描述
我们发现,将查询、键和值h次与不同的学习线性投影分别线性投影到 d k d_k dk d k d_k dk d v d_v dv维是有益的。

多头注意允许模型共同关注来自不同位置的不同表示子空间的信息。用一个注意力头,平均可以抑制这一点。

在这项工作中,我们使用了h = 8 的注意层。对于每一个模型,我们都使用dk = dv = dmodel/h = 64。由于每个头部的维数降低,其总计算代价与全维的单头注意相似。

在这里插入图片描述

该变压器以三种不同的方式使用多头注意力:

在这里插入图片描述
在“编解码器注意”层中,Q来自解码器层,K、V来自编码器层

在这里插入图片描述
在“编码器“层中,所有的K、Q、V都来自同一个位置,在这种情况下,是编码器中上一层的输出。编码器中的每个位置都可以处理编码器上一层中的所有位置。

在这里插入图片描述
在“解码器“层中,解码器中的自注意层允许解码器中的每个位置关注解码器中的所有位置,直到并包括该位置。我们需要防止解码器中的信息向左流,以保持自回归特性。我们通过mask(设置为−∞)softmax输入中对应于非法连接的所有值来在缩放点积注意内部实现这一点

Position-wise Feed-Forward Networks

除了注意子层外,我们的编码器和解码器中的每个层都包含一个完全连接的前馈网络,这由两个线性变换组成,中间有一个ReLU激活。

在这里插入图片描述

Embeddings and Softmax

与常见模型相同

Positional Encoding

为了使模型利用序列顺序,我们必须注入一些关于序列中令牌的相对位置或绝对位置的信息。
在这里插入图片描述

其中pos是位置,i是维度。也就是说,位置编码的每个维度都对应于一个正弦曲线。我们选择这个函数是因为我们假设它允许模型容易地学习相对位置,因为对于任何固定偏移k, P E p o s + k PE_{pos+k} PEpos+k可以表示为 P E p o s PE_{pos} PEpos的线性函数

这种方法它可能允许模型推断比训练中遇到的更长序列。

相关文章:

【论文速读】Transformer:Attention Is All You Need

Transformer:Attention Is All You Need 摘要模型架构注意力模型Scaled Dot-ProductMulti-Head Attention Position-wise Feed-Forward NetworksEmbeddings and SoftmaxPositional Encoding 摘要 我们提出了一种新的简单的网络架构,Transformer&#xf…...

小短片创作-组装场景(一)

1、项目基础设置 通过第三人称模板,创建1个项目 1.自动曝光:关闭,因为要做专业的小短片,曝光需要手动控制。 2.扩展自动曝光中的默认亮度范围:启用 3.全局光照系统:选择屏幕空间光照(SSGI&am…...

二元关系表示

一、二元关系的定义和表示 什么是二元关系?对集合A和B,A\timesB的任意子集R为A到B的一个二元关系。当AB时,A\timesA的任一子集R称为A上的一个二元关系。在不引起误解的情况下,二元关系可简称关系。 若|A|m,|B|n,则A到…...

Android Audio基础——AudioFlinger音频流管理(八)

从前面 AudioTrack、PlaybackThread、输出流设备三者的关系中,我们看到 AudioTrack 把音频流数据送入到对应的 PlaybackThread 中,那么应用进程是如何控制音频流的开始播放 start()、停止播放 stop()、暂停播放 pause()。这一章节我们就来继续分析。 一、音频流管理 应用进程…...

二进制部署k8s集群 部署高可用master节点

目录 本次部署的环境 一、master02 节点部署 二、负载均衡部署 安装nginx服务 部署keepalive服务 修改node节点上的配置文件 在master节点上创建pod 三、部署 Dashboard 二进制部署k8s集群部署的步骤总结 (1)k8s的数据存储中中心的搭建 etcd &…...

linux创建私有docker仓库以及推拉

创建私有仓库: 1.下载 registry镜像。 2.执行 registry 镜像(#为注释内容,\为换行): docker run -d \# --restartalways每次都是开机自动启动--restartalways \# --name registry 表示容器名--name registry \# 表示…...

如何将照片从 iPhone 传输到闪存驱动器【无质量损坏】

概括 人们喜欢用 iPhone 拍照,因为照片通常都很漂亮,这都要归功于 iPhone 令人惊叹的技术。但照片更新后会占用更多空间,并且您可能会开始收到没有存储空间的通知。因此,您可以将照片传输到 USB 驱动器,然后从 iPhone…...

【MySQL精通之路】InnoDB(7)-锁和事务模型(2)-事务模型

主博客: 【MySQL精通之路】InnoDB(7)-锁和事务模型-CSDN博客 上一篇: 【MySQL精通之路】InnoDB(7)-锁和事务模型(1)-锁-CSDN博客 下一篇: 目录 1.事务隔离级别 2.1 可重复读 2.2 读已提交 2.3 读取未提交 2.4 序列化读 2.自动提交、…...

python中的可哈希和不可哈希

python 中的每一个对象都有一个哈希值,哈希值是一个固定长度的整数,它通常用于快速比较对象的相等性。 如果在对象的生命周期里该对象的哈希值从未改变,那么这个对象是可哈希的(hashable),也称为不可变的。…...

docker命令详解大全

Docker是一种流行的容器化平台,用于快速部署应用程序并管理容器的生命周期。以下是一些常用的Docker命令及其用途的概述: docker run:创建一个新容器并运行一个命令。docker ps:列出当前运行的容器。docker stop:停止…...

体检系统商业源码,C/S架构的医院体检系统源码,大型健康体检中心管理系统源码

体检系统商业源码,C/S架构的医院体检系统源码,大型健康体检中心管理系统源码 体检信息管理系统软件是对医院体检中心进行系统化和规范化的管理。系统从检前,检中,检后整个业务流程提供标准化以及精细化的解决方案。实现体检业务市…...

Vue CLI 的服务介绍与使用(2024-05-20)

1、介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 vue/cli 实现的交互式的项目脚手架。 通过 vue/cli vue/cli-service-global 实现的零配置原型开发。 一个运行时依赖 (vue/cli-service),该依赖: 可升级…...

java连接ldap实现查询

文章目录 一、项目背景二、准备工作三、验证结果四、易错点讲解易错点1:java: 无法访问org.springframework.ldap.core.LdapTemplate易错点2:java: 无法访问org.springframework.context.ConfigurableApplicationContext易错点3:[LDAP: error…...

openjudge_2.5基本算法之搜索_2990:符号三角形

题目 2990:符号三角形 总时间限制: 1000ms 内存限制: 65536kB 描述 符号三角形的第1行有n个由“”和”-“组成的符号 ,以后每行符号比上行少1个,2个同号下面是”“,2个异号下面是”-“ 。计算有多少个不同的符号三角形,使其所含”…...

springboot错误

错误总结 1、使用IDEA 的 initialalzer显示2、IDEA 新建文件 没有 java class3、java: 错误: 不支持发行版本 22解决方法4、IDEA-SpringBoot项目yml配置文件不自动提示解决办法 1、使用IDEA 的 initialalzer显示 IDEA创建SpringBoot项目时出现:Initialization fail…...

linux的用户管理

新建用户:1.useradd 2.passwd 完成的操作: (1)/etc/passwd添加一行 (2)/etc/shadow添加一行 (3)/etc/group添加一行 (4)创建用户家目录 (5)创建用户邮件文件 例:创建用户jerry,要求: uid:777&am…...

数美滑块研究

周一,在清晨的阳光照耀下,逆向山脚下的小镇宁静而安详。居民们忙碌地开始一天的生活,而在爬虫镇子的边缘,一座古朴的道观显得格外神秘。 阿羊正静静地坐在青石长凳上,摸鱼养神。突然,一道清脆的声音在他耳…...

【GESP试卷】2024年03月Scratch四级试卷

2024年GESP03月认证Scratch四级试卷 分数:100 题数:27 一、单选题(共15题,每题2分,共30分) 010203040506070809101112131415CDBBACBCDCDADBA 1、小杨的父母最近刚刚给他买了一块华为手表,他说手表上跑的是鸿蒙&…...

每日一题《leetcode--398.随机数索引》

https://leetcode.cn/problems/random-pick-index/ 根据题目所知,所给的数组中有重复的元素。让我们随机输出给定的目标数字的下标索引。 typedef struct {int *sum;int length; } Solution;Solution* solutionCreate(int* nums, int numsSize) {Solution* obj (So…...

【MySQL精通之路】MySQL的使用(9)-设置环境变量

可以在命令提示符下设置环境变量,以影响命令处理器的当前调用,也可以永久设置环境变量以影响未来的调用。 要永久设置变量,可以在启动文件中进行设置,也可以使用系统为此提供的接口进行设置。 有关具体细节,请参阅命…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

JavaSec-RCE

简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性&#xff0c…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​,覆盖应用全生命周期测试需求,主要提供五大核心能力: ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

Easy Excel

Easy Excel 一、依赖引入二、基本使用1. 定义实体类&#xff08;导入/导出共用&#xff09;2. 写 Excel3. 读 Excel 三、常用注解说明&#xff08;完整列表&#xff09;四、进阶&#xff1a;自定义转换器&#xff08;Converter&#xff09; 其它自定义转换器没生效 Easy Excel在…...

java+webstock

maven依赖 <dependency><groupId>org.java-websocket</groupId><artifactId>Java-WebSocket</artifactId><version>1.3.5</version></dependency><dependency><groupId>org.apache.tomcat.websocket</groupId&…...