注意力机制 — 它是什么以及它是如何工作的

news2024/12/22 9:09:10

一、说明

        注意力机制是深度学习领域的一个突破。它们帮助模型专注于数据的重要部分,并提高语言处理和计算机视觉等任务的理解和性能。这篇文章将深入探讨深度学习中注意力的基础知识,并展示其背后的主要思想。

二、注意力机制回顾

        在我们谈论注意力之前,让我们先回顾一下深度学习中序列模型(也称为递归神经网络或 RNN)背后的基本思想。我们不打算深入研究这个领域,但理解序列模型背后的概念将有助于我们理解注意力机制和它所解决的问题。

        我们将使用的示例是一个用于将句子从英语翻译成意大利语的网络。该网络由两部分组成:编码器,对英语句子的含义进行编码,以及将编码信息解码为句子到意大利语的翻译的解码器。

        我们可以用以下方式来看待编码器:

        绿色矩形是输入。在图中所示的情况下,输入是一系列英语单词,这些单词组成了“I love dogs”这句话。蓝色矩形称为隐藏状态。隐藏状态应该包含有关当前输入的一些知识,即先前的隐藏状态,而先前的隐藏状态本身包含其输入和先前隐藏状态的知识。正式地,我们可以这样写:

        通过这种方式,我们将句子的信息编码为隐藏状态,直到句子的结尾。在检查了所有输入之后,编码器将句子的所有内容(从最后一个隐藏状态开始)汇总到两个向量中。第一个应该是解码器(网络中应该进行实际转换的部分)的初始隐藏状态 s₀,第二个是上下文向量(通常是编码器的最终隐藏状态),c,解码器的任何步骤都将使用它来帮助它理解它所处理的句子。

现在,当我们在编码器部分完成句子信息的提炼后,我们就可以开始解码信息并使用解码器将句子翻译成意大利语了。解码器的第一个输入是一个开始令牌,它与初始隐藏状态和上下文向量一起构成了第一个隐藏状态。对于这种隐藏状态,我们可以得到新句子的第一个输出。我们将该输出与上一个隐藏状态和上下文向量一起用作下一步的输入,以构建新的隐藏状态和输出。正式地,我们可以这样写:

这个过程一直持续到我们得到一个停止令牌作为输出。

此过程适用于短句子,但当句子变长时,它可能会失败。原因是解码器对所有步骤都使用上下文向量,并且它需要它包含有关原始句子的所有信息。对于一个很长的句子,将整个信息保存在一个固定大小的向量中可能非常困难。该问题的解决方案可能是为解码器的每一步构建一个新的上下文向量。

三、注意力

        我们将像以前一样保持编码器-解码器的架构,但这次我们向网络添加了另一种机制,为解码器的每一步构建一个新的上下文向量。

        我们的编码器仍然会像以前一样检查输入序列并创建隐藏状态,最后为解码器创建初始隐藏状态。现在,我们不是使用编码器的最终隐藏状态来制作上下文向量,而是使用解码器的初始隐藏状态和所有其他隐藏状态来构造它。为此,我们将实现一个对齐函数,该函数是在编码器的隐藏状态和解码器的隐藏状态上运行的 MPL。此函数计算编码器的每个隐藏状态的对齐分数(即标量)。从形式上讲,第 i 个隐藏状态的步骤 t 的对齐分数为:

        这些分数表示,鉴于解码器的当前隐藏状态,我们应该在多大程度上关注编码器的每个隐藏状态。

        例如,对齐分数 e₁,₁ 表示第一个隐藏状态对于解码器中第一个单词的预测有多重要。由于对齐分数是任意实数,我们希望对它们应用 softmax 运算以获得概率分布。

        这些概率是归一化对齐分数,它们将用作编码器隐藏状态的注意力权重。新的上下文向量将是编码器的隐藏状态的加权和,加上注意力权重的加权和。

        从形式上讲,步骤 t 的上下文向量是:

        现在,我们可以使用新的上下文向量来预测解码器中的第一个单词。

        就直觉而言,在我们的示例中,“amo”的意思是“我爱”,因此我们可以预期 a₁,₁ 和 a₁,₂ 的分数很高,而 a₁,₃ 的分数很低。

        好的部分是所有的操作都是差分的,所以我们不需要对注意力权重进行任何监督,我们可以在网络的常规训练中学习计算它们,因此网络可以自行学习哪些部分是重要的每一步。

        对于句子的其他部分,解码器的预测以相同的方式继续进行。对于下一个单词,我们通过使用 s₁ 来计算注意力权重来构造 c₂ 上下文向量。

        我们可以看到英语和法语之间翻译中单词之间注意力权重的可视化,下图取自 Bahdanau 等人。

        由 RNNsearch-50 找到的比对。每个图的 x 轴和 y 轴分别对应于源句子(英语)和生成的翻译(法语)中的单词。每个像素以灰度(0:黑色,1:白色)显示第 i 个目标词的第 j 个源词注释的权重 αij。资料来源:图3。

        您可以看到相关词的权重很高,而关系较弱的词的权重很小。例如,请参阅“Area”和“zone”一词的权重。这些词在句子中的不同位置,但网络成功地将它们联系起来。

四、图片说明的注意事项

        如果你仔细看一下前面的例子,你会发现我们没有使用输入的顺序性质来表示注意力部分。这意味着我们可以将注意力用于其他不是序列的任务。使用注意力机制的另一个任务示例是图像标题。在图像描述中,我们有一个图像,我们希望我们的网络输出一个句子来描述我们在图像中看到的内容。

        与翻译任务类似,我们可以通过 CNN 网络运行图像,并将最终输出作为特征向量网格,这些特征向量类似于我们之前使用的隐藏状态。然后,我们计算解码器的初始隐藏状态,并将其与网格特征向量一起使用来计算对齐分数。使用 softmax,我们得到注意力权重,然后我们计算特征向量与注意力权重的加权和,以构建上下文向量。最后,我们使用上下文向量来生成标题中的第一个单词。

正式:

在下面的可视化中可以看到网络对图像每个部分的关注。

        

        随时间推移的注意力。当模型生成每个单词时,其注意力会发生变化以反映图像的相关部分。资料来源:Xu et al

        例如,您可以看到“鸟”一词如何关注鸟的图像部分,而“水”一词如何关注背景中的水。

五、结论

        在这篇文章中,我们介绍了注意力机制背后的基本思想。我们看到了它如何通过关注编码器最相关的部分,在每一步构建一个新的上下文向量,从而解决编码器-解码器架构中处理长句子的问题以进行翻译。我们还看到了如何利用注意力机制来完成图像标题的任务,其中注意力有助于将注意力集中在图像的相关部分,以预测标题中的下一个单词。

        在以后的文章中,我们将回顾注意力的数学原理,并介绍自我注意力模块。

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

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

相关文章

TcpSocket在切后台后如何保活

1)TcpSocket在切后台后如何保活 2)Magica Clothes 2插件与Burst编译问题 3)粒子拖尾合批失败怎么办 4)如何让射线追踪跟随我FPS游戏的十字准星进行移动 这是第398篇UWA技术知识分享的推送,精选了UWA社区的热门话题&…

适合学生党的运动耳机都有哪些?五大适合学生党的运动耳机推荐

2024年春季,开放式蓝牙耳机就凭借“佩戴舒适、开放安全”等优势火热出圈,这让各大音频厂商更新迭代速度不断加快,新品层出不穷。而用户面对市场上琳琅满目的开放式蓝牙耳机,一时间也不知道如何选择。那么对于学生党来说&#xff0…

linux 基本指令讲解 下

基本指令 date 显示 date 指定格式显示时间:date%Y:%m:%d(冒号可以随便改) 在显示方面 %H : 小时(00..23) %M : 分钟(00..59) %S : 秒(00..61) %X : 相当于 %H:%M:%S %d : 日 (01..31) %m : 月份 (01..12) %Y : 完整年份 (0000..9999) %F : 相当于 %Y-%m-%d在时间设置方面 date…

依赖注入+中央事件总线:Vue 3组件通信新玩法

​🌈个人主页:前端青山 🔥系列专栏:Vue篇 🔖人终将被年少不可得之物困其一生 依旧青山,本期给大家带来Vue篇专栏内容:Vue-依赖注入-中央事件总线 大家好,依旧青山, 最近呢也随着需求的变更调优…

Prometheus部署和基本操作

1 项目目标 (1)对Prometheus有基本的了解 (2)能够部署出一套Prometheus看板系统 (3)对Prometheus界面熟悉 1.1 规划节点 主机名 主机IP 节点规划 prome-master01 10.0.1.10 服务端 prome-node01 …

java基础学习笔记1

Java编程规范 命名风格 1. 【强制】代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。 反例:_name / __name / $name / name_ / name$ / name__ 2. 【强制】代码中的命名严禁使用拼音与英文混合的方式,更不允许直…

社交媒体分析:如何利用Facebook的数据提升业务决

在数字化时代,社交媒体已经成为企业战略中不可或缺的一部分。Facebook,作为全球最大的社交平台之一,提供了丰富的数据资源,这些数据不仅能够帮助企业了解市场趋势,还能提升业务决策的精准度。本文将探讨如何有效利用Fa…

CV党福音:YOLOv8实现实例分割(一)

前面我们得知YOLOv8不但可以实现目标检测任务,还包揽了分类、分割、姿态估计等计算机视觉任务。在上一篇博文中,博主已经介绍了YOLOv8如何实现分类,在这篇博文里,博主将介绍其如何将实例分割给收入囊中。 YOLOv8实例分割架构图 …

Spring Boot3.3.X整合Mybatis-Plus

前提说明&#xff1a; 项目的springboot版本为&#xff1a;<version>3.3.2</version> 需要整合的mybatis-plus版本&#xff1a;<version>3.5.7</version> 废话不多说&#xff0c;开始造吧 1.准备好数据库和表 2.配置全局文件application.properti…

本地连接服务器redis

详细步骤 1.看一下服务器上redis实例的运行状态&#xff1a; [rootiZuf67k70ucx14s6zcv54dZ var]# ps aux | grep redis-server若显示&#xff1a; 则说明服务器上的redis已经启动了&#xff0c;若没有&#xff0c;则请重启一下&#xff1a; sudo systemctl restart redis…

原来,考证还可以领取补贴Money

武汉ZF真的对打工人太好了&#xff0c;只要社保交满 12 个月就可以参加职业技能考试&#xff0c;考试通过就能领 2K 的补贴。 而且证考了对找工作工资也能比别人高几百&#xff0c;真的太爽了&#xff0c;有空的姐妹都去给我考&#xff01;&#xff01;&#xff01; 没空的也给…

思科三层交换机实现EIGIP路由协议6

#路由协议实现# #任务六三层交换机实现EIGIP路由协议6# #1配置计算机的IP地址、子网掩码和网关 #2配置Switch-A的名称及其接口IP地址 Switch(config)#hostname Switch-A Switch-A(config)#ip routing Switch-A(config)#int g0/1 Switch-A(config-if)#no switchport Switc…

docker pull实现断点续传

问题背景 在使用Docker拉取DockerHub的镜像时&#xff0c;经常会出现网络不稳定的问题&#xff0c;这就导致拉取到一半的镜像会重新拉取&#xff0c;浪费时间。例如下面这种情况&#xff1a; 第二次拉取 这是一个网络中断的场景&#xff0c;第二次重新拉取的时候&#xff0c;同…

电子元件-潮湿敏感度MSL等级

目录&#xff1a; 1、什么是MSL 2、MSL测定的流程 3、MSL的分类★ 4、其他 1、什么是MSL MSL&#xff1a;MSL 是 Moisture Sensitivity Level 的缩写&#xff0c;是湿气敏感性等级的意思。 MSL 的提出就是为了给湿度敏感性 SMD 元件的封装提供一种分类标准&#xff0c;从而…

UE虚幻引擎可以云渲染吗?应用趋势与挑战了解

虚幻云渲染技术是基于虚幻引擎的云端渲染技术&#xff0c;将虚幻引擎的渲染计算任务通过云计算的方式进行处理和渲染、并将渲染结果传输到终端设备上进行展示。虚幻引擎云渲染技术在近年来得到了迅猛的发展&#xff0c;并在各个领域得到了广泛的应用&#xff0c;包括游戏、电影…

使用CompletableFuture遇到的一个小坑

在使用CompletableFuture时&#xff0c;发现获取数据时&#xff0c;有时候数据获取不到(值为null)。 代码如下&#xff1a; package com.example.mavendemo.completablefuture;import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j;import java.util.A…

STM32第十二节(中级篇):串口通信(第一节)——功能框图讲解

前言 我们在51单片机中就已经学习过了串口通信的相关知识点&#xff0c;那么我们现在在32单片机上进一步学习通信的原理。我们主要讲解串口功能框图以及串口初始化结构体以及固件库讲解。 STM32第十二节&#xff08;中级篇&#xff09;&#xff1a;串口通信&#xff08;第一节…

免费的泛域名SSL证书如何申请

申请免费泛域名SSL证书的新指南 1. 选择合适的证书颁发机构 首先&#xff0c;寻找一个提供免费泛域名SSL证书的证书颁发机构&#xff08;CA&#xff09;。JoySSL是目前最知名的免费证书提供商之一&#xff0c;它支持泛域名证书&#xff0c;允许您为单个域名及其所有子域名提供…

【图像特效系列】图像的各种特效处理 | 图像素描特效的实践

目录 一 图像素描特效 实践① 实践② 图像特效系列主要是对输入的图像进行处理,生成指定特效效果的图片。图像素描特效会将图像的边界都凸显出来;图像怀旧特效是指图像经历岁月的昏暗效果;图像光照特效是指图像存在一个类似于灯光的光晕特效,图像像素值围绕光照中心点呈…

mac要装虚拟机吗

在Mac上安装虚拟机可以带来多种好处&#xff0c;‌但同时也存在一些潜在的影响。‌ 首先&#xff0c;‌虚拟机技术允许在同一设备上运行多个操作系统&#xff0c;‌这对于需要测试不同操作系统兼容性的开发者和IT专业人员来说非常有用。‌此外&#xff0c;‌虚拟机还能解决软件…