2024.3.24 机器学习周报

目录

引言

Abstract

一、文献阅读

1、题目 

2、引言

3、创新点

4、模型架构

4.1 Encoder and Decoder Stacks

4.2 Attention—注意力机制

5、实验

6、结果

二、Self-attention

1、什么是self-attention

2、例子(x2→z2)

3、矩阵批量处理

总结

引言

本周复现论文代码和针对transfomer阅读和回顾一篇了关于自注意力机制的文献,Transformer只基于单独的attention机制,将一个序列的不同位置联系起来,以计算序列的表示,成功的运用到了很多任务上,包括阅读理解、抽象摘要、语篇蕴涵和学习任务无关的句子表征等。

Abstract

This week, I reproduced the code of the paper and reviewed a literature on self attention mechanisms for Transformers. Transformers are based solely on a separate attention mechanism, linking different positions of a sequence to calculate its representation. They have been successfully applied to many tasks, including reading comprehension, abstract abstracts, discourse implications, and sentence representations unrelated to learning tasks.

一、文献阅读

1、题目 

Attention Is All You Need

2、引言

显性序列转导模型是基于复杂的递归或包括编码器和解码器的卷积神经网络。最好的执行模型还通过注意力连接编码器和解码器机械装置我们提出了一种新的简单网络架构Transformer,仅基于注意力机制,省去了重复和卷积完全在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更可并行,并且需要显著更少的训练时间。我们的模型在WMT 2014英德语翻译任务中实现了28.4 BLEU,比现有的最佳结果有所改进,包括合奏,超过2 BLEU。在WMT 2014英法翻译任务中,我们的模型在在8个GPU上进行3.5天的培训,这只是最好的模型从文献。我们证明了Transformer很好地推广到其他任务,通过将其成功应用于英语选区解析大量且有限的训练数据。

3、创新点

  • 通过self-attention,自己和自己做attention,使得每个词都有全局的语义信息
  • 由于self-attention是每个词和所有词都要计算Attention,所以不管他们中间有多长距离,最大的路径长度也都是1,可以捕获长距离依赖关系
  • 提出multi-head attention,可以看成attention的ensemble版本,不同head学习不同的子空间语义

4、模型架构

模型总体架构如下图所示,整个网络架构中使用堆叠的self-attention层、point-wise和全连接层,分别用于encoder和decoder。

4.1 Encoder and Decoder Stacks

编码器 encoder:

将一个长为n的输入(如句子),序列(x1, x2, … xn)映射为(z1, z2, …, zn)(机器学习可以理解的向量)

encoder由n个相同层组成,重复6个layers,每个layers会有两个sub-layers,每个sub-layers里第一个layer是multi-head attention,第二个layer是 simple,position-wise fully connected feed-forward network,简称 MLP。

每个sub-layer的输出都做一个残差连接和layerNorm。计算公式:LayerNorm( x + Sublayer(x) ),Sublayer(x) 指 self-attention 或者 MLP。

残差连接需要输入和输出的维度一致,所以每一层的输出维度在transformer里都是固定的,都是512维。

与CNN不一样的是,MLP的空间维度是逐层下降,CNN是空间维度下降,channel维度上升。

解码器 decoder

decoder 拿到 encoder 的输出,会生成一个长为 m 的序列(y1, y2, … , ym)。n 和 m 可以一样长、也可以不一样长,编码时可以一次性生成,解码时只能一个个生成(auto-regressive 自回归模型)

decoder同样由n个相同层组成。除了encoder中的两个子层外,decoder还增加了一个子层:对encoder层的输出执行多头注意力。

另外对自注意力子层进行修改(Mask),防止某个position受后续的position的影响。确保位置i的预测只依赖于小于i的位置的已知输出。输出就是标准的 Linear+softmax。

4.2 Attention—注意力机制

注意力机制(Attention)是给定一个查找(Query)和一个键值表(key-value pairs),将Query映射到正确的输入的过程。此处的query、key、value和最终的输出都是向量。输出往往是一个加权求和的形式,而权重则由query、key和value决定。

Scaled Dot-Product Attention:本文引入了一个特殊的attention,为Scaled Dot-Product Attention(上图左)。输入由query、dk的key和dv的value组成。我们计算query和所有key的点积,计算query和所有key的点积,再除以,然后再通过softmax函数来获取values的权重。
 

Multi-Head Attention:在queries, keys和values的每个映射版本上,我们并行的执行attention函数,生成dv维输出值。它们被拼接起来再次映射,生成一个最终值,如上图中所示。Multi-head attention允许模型把不同位置子序列的表示都整合到一个信息中。如果只有一个attention head,它的平均值会削弱这个信息。

本文使用的注意力机制:

本文使用的是Multi-Head Attention,具体体现在两个方面。

(1)在encoder-decoder attention层中,query来自前一个decoder层,而key和value是encoder的输出。这允许decoder的每个位置都去关注输入序列的所有位置。

(2)decoder包含self-attention层,在self-attention层中所有的key、value和query都来自前一层的encoder。这样decoder的每个位置都能去关注前一层encoder输出的所有位置。

前向神经网络(FFN)是一个 Position-wise 前向神经网络,encoder和decoder的每一层都包含一个前向神经网络,激活函数顺序是线性、RELU、线性。

位置编码: 由于本文的模型结构没有使用任何递归结构或卷积结构,为了让模型能利用输入序列的顺序信息,必须引入某种能表达输入序列每个部分的绝对或相对位置的信息才行。文章采取的方法是位置编码(positional encoding),在送入encoder和decoder之前,先对输入进行编码,编码后的向量维度是dmodel。具体来说,采用正弦和余弦函数进行编码。

5、实验

 从三个方面去对比self-attention和递归结构、卷积结构的优劣性,首先是每一层的计算复杂度,self-Attention layer用一个常量级别的顺序操作,将所有的positions连接起来,Recurrent Layer需要O(n)个顺序操作,其次是能够被并行的计算量,最后是网络中长期依赖的路径长度。对比显示,self-attention表现最好。

训练数据使用WMT English-German数据集,包含450w对语句。句子都被编码过了,使用了一个大小约37000个token的字典。样本被分为若干个batch,每个batch大概25000个token,每个batch中的句子长度保持基本一致。硬件上使用了8块GPU。Optimizer使用了Adam。过拟合方面使用了dropout和Label Smoothing。

Hardware and Schedule(硬件和时间)

本文模型训练在一台具有8个 NVIDIA P100 gpu的机器上训练我们的模型。对于paper中描述的使用超参数的基础模型,每个训练步骤大约需要0.4秒。对基础模型进行了总共100000步或12小时的训练。

Optimizer(优化器)

使用Adam优化器,其中β1=0.9, β2=0.98及ϵ=10-9。我们根据以下公式在训练过程中改变学习率:

Regularization(正则化,本文使用三种)

Residual Dropout 我们在对每个子层的输出上执行dropout操作,这个操作在additive操作(子层的输出加上子层的输入)和 normalized操作之前。此外,在编码器和解码器堆栈中,我们将丢弃应用到嵌入和位置编码的和。对于基础模型,我们使用Pdrop=0.1丢弃率。

6、结果

不论是英语-德语还是英语-法语的翻译任务,对比之前的一些模型,本文提出的模型都达到更好的BLEU值,同时Training Cost也最低

本文提出的模型十分成功。本文中提出的Transformer模型抛弃了传统的CNN和RNN进行机器翻译的架构,整个网络结构完全是由Attention机制组成。更准确地讲,Transformer由且仅由self-Attenion和Feed Forward Neural Network组成。一个基于Transformer的可训练的神经网络可以通过堆叠Transformer的形式进行搭建,作者的实验是通过搭建编码器和解码器各6层,总共12层的Encoder-Decoder,并在机器翻译中取得了BLEU值得新高,而且从模型的图片来看,该模型很可能是在尝试“理解”句子

二、Self-attention

1、什么是self-attention

是NLP中很广法的模型,由Transformer应用到CV领域,该模型的主要作用就是捕获长序列中向量之间的相关性,输入是一个长的序列,输出是包含了向量相关的相关性。由下图示例,输入是一个长的句子,输出得到了每一个词的词向量信息。

2、例子(x2→z2)

以x2为输入例子,x2分别和x1,x2,x3,x4,x5做内积,用来衡量其他子向量的相关性,内积得到的数值通过{w}'来表示,这里表示两个向量的相似性通过内积的操作。由下图所示,x1,x2是两个向量,越相似,向量的夹角会越小。得到的数值{w}'后通过softmax将权重标准化,得到w在0到1之间,并且加起来的和等于1,权重w和向量x相乘的和就是输出z

3、矩阵批量处理

上述是对于其中一个子向量的操作,self-attention更大的优势是可以并行计算,这里通过矩阵来实现批量的处理,首先将子向量拼接得到了矩阵,根据其矩阵转置内积的操作得到了相似度矩阵{W}'{W}'矩阵按行进行softmax标准化操作得到了W矩阵,W矩阵再与原来的向量矩阵相乘,就得到输出的模型Z。

总结

本周对self-attention进行了更深入的学习,并且结合代码和理论有了进一步的了解。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux--进程(1)

目录 前言 1.冯诺依曼体系结构 2. 操作系统(Operator System)--第一个被加载的软件 3.进程 3.1基本概念 3.2Linux中的PCB 3.3通过系统调用创建子进程-fork初识 fork:创建一个子进程 为什么要创建子进程? fork的原理: 进一步了解fo…

【Linux】调试器-gdb的使用说明(调试器的配置,指令说明,调试过程说明)

目录 00.背景 01.安装 02.生成调试信息 03.调试过程 00.背景 在软件开发中,通常会为程序构建两种不同的版本:Debug模式和Release模式。它们之间的区别主要在于优化级别、调试信息、错误检查等方面: 1.Debug 模式: 优化级别低…

灵境矩阵平台x百度---智能体(一)

什么是数据插件 大模型插件:大语言模型插件是随着大语言模型发展而诞生的全新插件。大语言模型插件的核心是Web API独立于大语言模型,插件开发过程不受大语言模型的约束,同时没有开发语言的限制,更加通用,只要WebAPI遵循RESTfuI相…

如何在 Odoo 17 的 齿轮菜单⚙️ 中添加新菜单

在 Odoo 中,齿轮菜单是一个重要组件,允许用户访问与系统内不同模型和功能相关的各种配置选项和设置。它通常由位于用户界面左上角的齿轮或齿轮图标表示。下图显示了 "sale.order "模型的齿轮菜单。 默认情况下,我们在 CogMenu 中提…

js 实现动画的两种方案对比:setTimeout vs RAF (requestAnimationFrame)

setTimeout 需手动控制频率,页面隐藏后仍会执行动画,更加耗费性能。 requestAnimationFrame 简称 RAF , 会在浏览器中每次刷新屏幕时调用一个函数,用于创建平滑的动画,因为它会自动适应屏幕的刷新率,无需手动控制频率。…

实战whisper语音识别第一天,部署服务器,可远程访问,实时语音转文字(全部代码和详细部署步骤)

Whisper是OpenAI于2022年发布的一个开源深度学习模型,专门用于语音识别任务。它能够将音频转换成文字,支持多种语言的识别,包括但不限于英语、中文、西班牙语等。Whisper模型的特点是它在多种不同的音频条件下(如不同的背景噪声水…

今天聊聊新零售

一、什么是新零售? 2016年,在杭州举行的“云栖大会”上,马云发表了讲话,首次提出了“新零售”这一概念。 1.1 新零售概念 新零售,英文是New Retailing,新零售是对人货场的重构。人是消费者、销售人员、…

C++的vector类(一):vector类的常见操作

目录 前言 Vector类 遍历与初始化vector ​vector的扩容机制 vector的对象操作 find与insert 对象数组 前言 string类中还有一些内容需要注意: STL 的string类怎么啦? C面试中string类的一种正确写法 C STL string的Copy-On-Write技术 C的st…

网络编程 - 套接字

1、预备知识 1.1、理解源IP地址和目的IP地址 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址; 思考: 我们光有IP地址就可以完成通信了嘛? 想象一下发qq消息的例子, 有了IP地址能够把消息发送到对方的机器上, 但是还需要有一个其他的标识来区分…

kafka面试篇

消息队列的作用:异步、削峰填谷、解耦 高可用,几乎所有相关的开源软件都支持,满足大多数的应用场景,尤其是大数据和流计算领域, kafka高效,可伸缩,消息持久化。支持分区、副本和容错。 对批处理…

使用ansible剧本进行lvm分盘

使用 Ansible 剧本(Playbook)进行 LVM 分区管理是一种自动化的方式,可以帮助管理员在多台主机上批量管理逻辑卷。 部署环境 3台主机,添加硬盘 ansible-galaxy collection install community.general 联网执行,下…

蓝桥杯算法心得——游戏(优先队列)

大家好,我是晴天学长,优先队列的题,式子化简非常重要,需要的小伙伴可以关注支持一下哦!后续会继续更新的。💪💪💪 1) .游戏 2) .算法思路 附近最小 1.接收数据 2.找出最小的&#…

docker 配置国内阿里镜像源

在/etc/docker/目录下新建daemon.json文件 在文件中写入 {"registry-mirrors": ["https://jmphwhtw.mirror.aliyuncs.com"] } 以管理员身份运行命令 systemctl daemon-reload systemctl restart docker

羊大师羊奶靠谱么?消费口碑深度讲解

羊大师羊奶靠谱么?消费口碑深度讲解 羊大师羊奶,作为羊奶市场的一颗璀璨明星,其靠谱性一直备受广大消费者的关注。那么,羊大师羊奶究竟靠不靠谱呢?这需要我们从品牌实力与消费口碑两个方面进行深度解析。 从品牌实力来…

小米相册提取表格选项消失解决方法

小米相册这次的提取表格选项消失 故障原因: 因为部分用户将小爱视觉(原名扫一扫)这个应用给卸载了导致 解决方法 应用商店下载 小爱视觉 安装后授权即可使用 注意:系统最好为最新的 Xiaomi HyperOS系统

PFXA401SF Millmate控制器400设计用于提供大量功能 Brown Boveri BBC

PFXA401 Millmate控制器400设计用于提供大量功能,同时具有高度的用户友好性。 控制单元涵盖了所有边缘传感器的安装可能性。这意味着用户只需按照逐步说明设置控制单元,并计算正确的料带边缘和中心位置及宽度。 计算相对于轧机的真实带材位置和宽度 过滤…

RabbitMQ在Java中使用 SpringBoot 从基础到高级

充分利用每一个监听者 需要充分利用每一个消费者,需要在配置文件中加上prefetch配置并设置为1 rabbitmq:listener:simple:prefetch: 1 # 每次只能获取一条消息,处理完成才能获取下一个消息创建交换机和队列 创建队列 "fanout.queue1"&…

云农场种植、领养、收获,认养模式新浪潮

​ 小编介绍:10年专注商业模式设计及软件开发,擅长企业生态商业模式,商业零售会员增长裂变模式策划、商业闭环模式设计及方案落地;扶持10余个电商平台做到营收过千万,数百个平台达到百万会员,欢迎咨询。 在…

服务器中了mallox勒索病毒还能恢复数据吗?

什么是mallox勒索病毒? mallox是一种最近多发的勒索病毒类型,它主要针对企业的Web应用和数据库服务器进行攻击。mallox后缀的勒索病毒会加密用户的重要文件数据并以此为要挟索要赎金。该类病毒会绕过企业的防火墙和各种防护软件,对目标设备进…

Python 将HTML转为PDF、图片、XML、XPS格式

网页内容是信息传播的主要形式之一。在Web开发中,有时候我们需要将HTML文件以不同的格式保存或分享,比如PDF、图片(如PNG或JPEG)、XML或XPS等。这些格式各有优势,适合不同的用途。在这篇文章中,我们将介绍如…