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

论文 学习 Transformer : Attention Is All You Need

目录

概述:

对摘要的理解:

框架解析

按比例缩放的点积注意力

多头注意力机制

前馈神经网络与位置编码 


概述:

 

transformer 是一个encoder ——decoder 结构的用于处理序列到序列转换任务的框架,是第一个完全依赖自注意力机制,计算其输入输出表示的转换模型,核心是采用了注意力机制用于捕获输入序列不同位置之间的依赖关系,帮助模型在生成输出时能够关注到与当前任务最相关的信息,优势是能够捕获长距离依赖关系,并且对于输入序列的长度没有固定的限制,在处理长文本和复杂语言结构时表现出色,在编码器解码器框架中,编码器负责将输入系列转换成一个固定大小的表示(上下文向量)解码器根据这个表示,生成输出序列,transformer 能够并行化处理整个序列,从而大大提高了训练速度和效率

self—attention 机制:

注意力模型的本质思想:从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,忽略不重要的信息。

transfomer 注意力的计算方法采用了Scaled Dot-Product Attention

注意力机制采用了multi head self Attention

框架中 使用了三种不同形式的的 多头注意力机制

 

对摘要的理解:

主流的序列转换模型基于复杂的循环或卷积神经网络,这些网络包括一个编码器和一个解码器。性能最佳的模型还通过注意力机制将编码器和解码器连接起来。我们提出了一种全新的简单网络架构,即Transformer,它完全基于注意力机制,完全摒弃了循环和卷积。

序列转换模型(Sequence Transduction Models)指将一个序列转换为另一个序列的模型。序列转换模型可以通过编码器(Encoder)和解码器(Decoder)两个主要部分实现。编码器使用循环神经网络(RNN)或其变种(如长短时记忆网络LSTM、门控循环单元GRU)对输入序列进行建模,得到上下文信息;利用编码器输出的上下文信息生成目标序列

注意力机制:处理一个任务时,我们不会平等地对待所有的信息,而是会将注意力集中在某些关键的部分。例如,当我们阅读一段文本时,我们会更关注与当前任务相关的词汇和句子,而忽略其他不相关的信息。注意力机制就是模拟这种行为,让模型在处理数据时能够自动地关注到更重要的部分。

框架解析

transformer 使用编码器和解码器堆叠自注意力和逐点全连接层

每个编码器由6个相同的层组成,每个层有两个子层他们分别是 掩码多头注意力层和全连接前馈神经网络 ,模型技巧(trick)有采用了残差链接和层归一化每个子层的输出是LayerNorm(x + Sublayer(x)),具体来说,1 首先对x进行嵌入编码 然后和位置编码相加 2 编码后的向量输入进多头注意力机制,3 残差链接层归一化,4  Position-wise Feed-Forward Networks 5 残差连接 层归一化

每个解码器由6个相同的层组成,每个层有三个子层他们分别是1 掩码多头注意力层(why mask:防止解码器在生成序列时查看未来的信息,即在解码时 只希望模型 看到当前词 和当前词 前面的部分 所以要对后面的单词进行mask 处理 方法是 设为很大的负数)   2  encoder-decoder 多头注意力机制和3全连接前馈神经网络 ,模型技巧(trick)有采用了残差链接和层归一化每个子层的输出是LayerNorm(x + Sublayer(x)),具体来说,1 首先对x进行嵌入编码 然后和位置编码相加 2 编码后的向量输入进掩码多头注意力机制,3 残差链接层归一化, encoder-decoder 多头注意力机制 (q 来自掩码多头注意力的输出 kv 来自编码器的输出) 残差链接层归一化4  Position-wise Feed-Forward Networks 5 残差连接 层归一化

按比例缩放的点积注意力

 

为什么使用按比例缩放的 点积注意力?

缓解输入向量维度对注意力权重的影响:在点积计算中,如果输入向量的维度非常高,那么点积的结果可能会非常大,导致后续的softmax函数进入饱和区,使得梯度变得非常小,从而难以训练。按比例缩放可以解决这个问题,使得点积的结果在合理的范围内,避免softmax函数进入饱和区。

点积 可以计算向量之间的余弦相似度,并且可以进行矩阵运算加快计算速度和效率

多头注意力机制

 

 为什么要采取多头注意力机制?

多头注意力机制则允许模型在多个不同的表示子空间上并行计算注意力权重,从而能够更全面地捕捉输入序列中的依赖关系。通过将不同的注意力头组合在一起,模型能够学习到更复杂的表示,并更准确地预测目标序列

文心一言 是这样回答的

transformer 采取多头注意力机制(Multi-Head Attention)主要有以下几个原因:

  1. 多样性:多头注意力机制允许模型同时关注不同的位置和语义信息。每个头可以学习不同的注意力分布,从而捕捉输入序列中的不同依赖关系。如果只使用一个头,模型可能会错过某些重要的依赖关系。
  2. 更丰富的表示:通过多头注意力机制,模型可以并行学习多个自注意力表示。这使得模型能够更好地抓住输入数据的局部和全局信息,提供更丰富、更强大的表示。在自然语言处理任务中,这种丰富的表示往往导致更好的性能。
  3. 并行计算:多头注意力机制可以充分利用现代硬件并行计算的能力,例如 GPU。多个头可以在一次计算中同时进行处理,这样可以显著提高计算效率。
  4. 学习到不同维度的特征和信息:由于每个注意力头都是一个独立的self-attention,它们可以通过产生QKV矩阵来学习数据特征。每个self-attention最终会产生一个维度上的输出特征,因此当使用多头注意力机制时,模型可以学习到多维度的特征信息,从多个维度更好地理解数据。
  5. 提高模型容量和泛化能力:多头注意力机制增加了模型的容量,使得模型能够学习到更复杂的表示。由于能够从多个角度分析输入数据,模型的泛化能力得到提升。

总的来说,多头注意力机制通过提供多样性、更丰富的表示、并行计算能力以及学习不同维度特征的能力,帮助Transformer模型在处理序列数据时获得更好的性能。

多头注意力机制的多头是怎么实现的?

不是使用 dmodel 维键、值和查询执行单个注意力函数,e而是 将查询、键和值分别线性投影到 dk、dk 和 dv 维。在每个查询、键和值的每个投影版本上,然后我们并行执行注意力函数,产生 dv 维输出值

  1. 分割嵌入向量:首先,输入的嵌入向量(例如词嵌入向量)被分割成多个较小的部分,每个部分对应一个注意力“头”。假设输入的嵌入向量维度为D,注意力头数为h,则每个头处理的向量维度为D/h。这一步是为了让模型在更细粒度上学习数据的表示。
  2. 线性变换:对于每个分割后的部分(也就是每个头),应用三个不同的线性变换(全连接层),分别生成查询(Q)、键(K)和值(V)向量。每个线性变换的权重矩阵维度为(D/h)×(D/h)。
  3. 注意力计算:在每个头中,计算查询和键的点积,然后应用softmax函数得到注意力权重。最后,将注意力权重与值向量相乘,得到加权后的值向量。
  4. 拼接与线性变换:将所有头的加权后的值向量拼接起来,形成一个更大的向量。然后,再应用一个线性变换(全连接层),将拼接后的向量转换回原始嵌入向量的维度D。


 前馈神经网络与位置编码 

 

 

相关文章:

论文 学习 Transformer : Attention Is All You Need

目录 概述: 对摘要的理解: 框架解析 按比例缩放的点积注意力 多头注意力机制 前馈神经网络与位置编码 概述: transformer 是一个encoder ——decoder 结构的用于处理序列到序列转换任务的框架,是第一个完全依赖自注意力机制…...

工厂模式+策略模式

输入实体 基类 import lombok.Data;Data public class PersonInputDto {private Integer id;private String name; }子类 Data AllArgsConstructor NoArgsConstructor public class ManPerson extends PersonInputDto {private String sex; }Data AllArgsConstructor NoArgs…...

TMS320F28335学习笔记-时钟系统

第一次使用38225使用了普中的clocksystem例程进行编译,总是编译失败。 问题一:提示找不到文件 因为工程的头文件路径没有包含,下图的路径需要添加自己电脑的路径。 问题二 找不到库文件 例程种的header文件夹和common文件夹不知道从何而来…...

【Apache POI】Apache POI-操作Excel表格-简易版

Catalog Apache POI-操作Excel表格1. 需求2. 优点3. 缺点4. 应用场景5. 使用方法6. SpringBoot工程中处理Excel表格7. Demo示例 Apache POI-操作Excel表格 1. 需求 大多数项目的在运营过程中,会产生运营数据,如外卖系统中需要统计每日的订单完成数、每…...

MySQL系列之索引

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 往期热门专栏回顾 专栏…...

【问题分析】锁屏界面调起google语音助手后壁纸不可见【Android 14】

1 问题描述 为系统和锁屏分别设置两张不同的壁纸,然后在锁屏界面长按Power调起google语音助手后,有时候会出现壁纸不可见的情况,如以下截图所示: 有的时候又是正常的,但显示的也是系统壁纸,并非是锁屏壁纸…...

Java入门基础学习笔记8——注释

1、注释: 注释是写在程序中对代码进行解释说明的文件,方便自己和其他人查看,以便理解程序的。 package cn.ensource.note;/**文档注释文档注释 */ public class NoteDemo {public static void main(String[] args) {// 单行注释System.out.…...

上班工资太低了,哪些副业可以多赚钱?

今天给各位分享最赚钱的副业方式的知识,其中也会对比较赚钱的副业进行解释. 1、网站接单 一般20页左右的PPT报价基本在200-400元。如果能每周接单,一个月就有接近1000元的副业收入。提交摄影和绘画作品 比起画画,靠摄影赚点外快更容易一点。…...

原子学习笔记4——GPIO 应用编程

一、应用层如何操控 GPIO 与 LED 设备一样,GPIO 同样也是通过 sysfs 方式进行操控,进入到/sys/class/gpio 目录下,如下所示: gpiochipX:当前 SoC 所包含的 GPIO 控制器,我们知道 I.MX6UL/I.MX6ULL 一共包…...

查看iqn编码

cat /etc/iscsi/initiatorname.iscsi ## for each iSCSI initiator. Do NOT duplicate iSCSI InitiatorNames. InitiatorNameiqn.2004-10.com.ubuntu:01:9ebe1a68...

如何安全的使用密码登录账号(在不知道密码的情况下)

首先,需要用到的这个工具: 度娘网盘 提取码:qwu2 蓝奏云 提取码:2r1z 1、打开工具,进入账号密码模块,如图 2、看到鼠标移动到密码那一栏有提示,按住Ctrl或者Alt点击或者双击就能复制内容&…...

软件需求和设计评审

目录 引言 1. 软件评审的方法和技术 2. 产品需求评审:构建正确的产品 3. 设计评审:构建正确的产品 4. 软件评审的最佳实践 结语 引言 在软件开发的迷宫中,需求和设计评审是通往成功产品的关键门户。它们是确保软件质量和满足用户需求的…...

论文笔记ColdDTA:利用数据增强和基于注意力的特征融合进行药物靶标结合亲和力预测

ColdDTA发表在Computers in Biology and Medicine 的一篇一区文章 突出 • 数据增强和基于注意力的特征融合用于药物靶点结合亲和力预测。 • 与其他方法相比,它在 Davis、KIBA 和 BindingDB 数据集上显示出竞争性能。 • 可视化模型权重可以获得可解释的见解。 …...

如何防止WordPress网站内容被抓取

最近在检查网站服务器的访问日志的时候,发现了大量来自同一个IP地址的的请求,用站长工具分析确认了我的网站内容确实是被他人的网站抓取了,我第一时间联系了对方网站的服务器提供商投诉了该网站,要求对方停止侵权行为,…...

全球化战略中的技术支柱:出海企业的网络技术解决方案

随着全球市场的一体化,中国的电商与游戏行业越来越倾向于扩展国际市场,这一过程被称为“出海”。成功的出海战略不仅需要强大的市场洞察和文化适应能力,还需依赖高效的网络技术,包括SOCKS5代理、代理IP、以及全面的网络安全策略。…...

在Linux上安装并运行RabbitMQ

目录 准备CentOS服务器 下载rabbit-server和erlang文件 启动RabbitMQ服务 准备CentOS服务器 两个命令,选一个能用的,查看CentOS服务器的版本 lsb_release -a下载rabbit-server和erlang文件 参考文章:http://t.csdnimg.cn/t8BbM 1、创建新…...

使用 docker-compose 搭建个人博客 Halo

说明 我这里使用的是 Halo 作为博客的工具,毕竟是开源了,也是使用 Java 写的嘛,另外一点就是使用 docker 来安装(自动挡,不用自己考虑太多的环境因素),这样子搭建起来更快一点,我们…...

《这就是ChatGPT》读书笔记

书名:这就是ChatGPT 作者:[美] 斯蒂芬沃尔弗拉姆(Stephen Wolfram) ChatGPT在做什么? ChatGPT可以生成类似于人类书写的文本,它基本任务是弄清楚如何针对它得到的任何文本产生“合理的延续”。当ChatGPT写…...

更专业的汽车软件研发工具链,怿星重磅发布新产品

怿星科技在2024北京国际车展同期举办主题为“创新引领未来——聚焦智能汽车软件新基建”的新产品发布会,重磅推出1款绝对优势产品和4套场景解决方案。同时举行了4场热点技术研讨:国产工具链的机遇与挑战、新架构下的的车载DDS应用探索及测试方案介绍、软…...

Stable Diffusion:AI绘画的新纪元

摘要: Stable Diffusion(SD)作为AI绘画领域的新星,以其开源免费、强大的生成能力和高度的自定义性,正在引领一场艺术与技术的革命。本文旨在为读者提供Stable Diffusion的全面介绍,包括其原理、核心组件、安…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

django blank 与 null的区别

1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...

​​企业大模型服务合规指南:深度解析备案与登记制度​​

伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...

Linux操作系统共享Windows操作系统的文件

目录 一、共享文件 二、挂载 一、共享文件 点击虚拟机选项-设置 点击选项,设置文件夹共享为总是启用,点击添加,可添加需要共享的文件夹 查询是否共享成功 ls /mnt/hgfs 如果显示Download(这是我共享的文件夹)&…...

RabbitMQ 各类交换机

为什么要用交换机? 交换机用来路由消息。如果直发队列,这个消息就被处理消失了,那别的队列也需要这个消息怎么办?那就要用到交换机 交换机类型 1,fanout:广播 特点 广播所有消息​​:将消息…...

ffmpeg(三):处理原始数据命令

FFmpeg 可以直接处理原始音频和视频数据(Raw PCM、YUV 等),常见场景包括: 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装(如封装为 MP4、TS) 处理原始 YUV 视频…...

DriveGPT4: Interpretable End-to-end Autonomous Driving via Large Language Model

一、研究背景与创新点 (一)现有方法的局限性 当前智驾系统面临两大核心挑战:一是长尾问题,即系统在遇到新场景时可能失效,例如突发交通状况或非常规道路环境;二是可解释性问题,传统方法无法解释智驾系统的决策过程,用户难以理解车辆行为的依据。传统语言模型(如 BERT…...

智能照明系统:具备认知能力的“光神经网络”

智能照明系统是物联网技术与传统照明深度融合的产物,其本质是通过感知环境、解析需求、自主决策的闭环控制,重构光与人、空间、环境的关系。这一系统由智能光源、多维传感器、边缘计算单元及云端管理平台构成,形成具备认知能力的“光神经网络…...

Linux 中替换文件中的某个字符串

如果你想在 Linux 中替换文件中的某个字符串,可以使用以下命令: 1. 基本替换(sed 命令) sed -i s/原字符串/新字符串/g 文件名示例:将 file.txt 中所有的 old_text 替换成 new_text sed -i s/old_text/new_text/g fi…...