注意力机制attention图解

十一、注意力机制(Attention Mechanism) 注意力机制是一种模仿人类视觉和认知系统的方法,允许神经网络在处理输入数据时集中注意力于相关的部分。核心目标也是从众多信息中选出对当前任务目标更加关键的信息。通过引入注意力机制,神经网络能够自动地学习并选择性地关注输入中的重要信息,提高模型的性能和泛化能力。注意力机制最主要包括和。不同的注意力机制模型对输入序列的不同位置分配不同的权重,以便在处理每个序列元素时专注于最相关的部分。 阅读详情
AI摘要

该文深入探讨了序列到序列模型(Seq2Seq)在神经机器翻译中的工作原理,特别是注意力机制如何增强模型性能。注意力机制允许解码器在生成输出时聚焦于输入序列的相关部分,解决了长句子处理时的信息瓶颈问题。通过对比没有注意力的Seq2Seq模型,文章展示了注意力模型如何通过动态关注输入来提高翻译质量。此外,文中还介绍了词嵌入的概念,以及编码器和解码器在处理序列时的角色。附带的可视化资源进一步解释了这一过程。

来自对https://jalammar.github.io/visualizing-neural-machine-translation-mechanics-of-seq2seq-models-with-attention/的笔记
注意力机制核心观点就是让RNN每一步都监视一个更大的信息集合并从中挑选信息。例如:如果你使用RNN去为一个图像生成注释,它会从图像中挑选一部分去预测输出的单词。接下来在讲解attention之前,我们会先聊聊Seq2Seq。

序列到序列模型是一种模型,它采用一系列项目(单词、字母、图像特征等)并输出另一个项目序列。在神经机器翻译中,序列是一系列单词,一个接一个地处理。同样,输出是一系列单词。编码器处理输入序列中的每个项目,它将捕获的信息编译成一个向量(称为上下文)。处理完整个输入序列后,编码器将上下文发送 到解码器,解码器开始逐项生成输出序列。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
编码器和解码器 往往都是循环神经网络。
在这里插入图片描述
RNN 在每个时间步都有两个输入:一个输入(在编码器的情况下,输入句子中的一个词)和一个隐藏状态。然而,这个词需要用一个向量来表示。要将单词转换为向量,我们求助于称为“单词嵌入”算法的一类方法。这些将单词转换为向量空间,捕获单词的大量含义/语义信息(例如king - man + woman = queen)。嵌入思想是具有相同含义的词具有相似的表示,常用的方法是Word2Vec 统计方法。
在这里插入图片描述
我们需要在处理输入词之前将它们转换为向量。该转换是使用词嵌入算法完成的。我们可以使用预训练的嵌入或在我们的数据集上训练我们自己的嵌入。嵌入大小为 200 或 300 的向量是典型的,为简单起见,我们显示大小为 4 的向量。
编码器或解码器的每个脉冲 都是 RNN 处理其输入并为该时间步生成输出。由于编码器和解码器 都是 RNN,每一步 RNN 都会进行一些处理,它会 根据其输入和之前看到的输入更新其隐藏状态。
在这里插入图片描述
让我们看看编码器 的隐藏状态,最后一个隐藏状态实际上是 我们传递给解码器的上下文。解码器也保持一个隐藏状态 ,它从一个时间步传递到下一个时间步。我们只是没有在此图中将其可视化,因为我们现在关注模型的主要部分。可以认为h(3)中包含了前面三步的信息。
在这里插入图片描述
现在让我们看看另一种可视化序列到序列模型的方法,称为“展开”视图,我们不显示一个解码器,而是为每个时间步显示它的副本。这样我们就可以查看每个时间步的输入和输出。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
事实证明,上下文向量是这些类型模型的瓶颈,这使得模型处理长句子变得具有挑战性,内存受限。Bahdanau et al., 2014和Luong et al., 2015提出了一个解决方案。这些论文引入并改进了一种称为“注意力”的技术,极大地提高了机器翻译系统的质量。Attention 允许模型根据需要关注输入序列的相关部分。
在这里插入图片描述
在时间步 7,注意力机制使解码器 能够在生成英文翻译之前将注意力集中在单词“étudiant”(法语中的“student”)上。这种从输入序列的相关部分放大信号的能力使得注意力模型比没有注意力的模型产生更好的结果。RNN是一视同仁,而attention是区别对待,重点关注。
注意力模型在两个主要方面不同于经典的序列到序列模型:首先,编码器将更多数据传递给解码器。编码器没有传递编码阶段的最后一个隐藏状态,而是将所有隐藏状态 传递给解码器:
在这里插入图片描述
其次,注意力解码器 在产生其输出之前会执行额外的步骤。为了关注与此解码时间步相关的输入部分,解码器执行以下操作:
查看它接收到的一组编码器隐藏状态 ——每个编码器隐藏状态与输入句子中的某个词最相关;
给每个隐藏状态 打分(暂时先不管打分是怎么做的);
将每个隐藏状态 乘以其 softmaxed 分数,从而放大高分数的隐藏状态 ,并淹没低分数的隐藏状态;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述整体过程动图见视频:https://jalammar.github.io/images/attention_tensor_dance.mp4
这是查看在每个解码步骤中我们关注输入语句的哪一部分的另一种方法:
在这里插入图片描述
该模型不仅仅是将输出的第一个单词与输入的第一个单词对齐。它实际上从训练阶段学习了如何对齐该语言对中的单词(在我们的示例中为法语和英语)。关于这种机制的精确程度的一个例子来自上面列出的注意力论文:
在这里插入图片描述

原理解释:
https://blog.youkuaiyun.com/cristiano20/article/details/105734183
https://wenku.baidu.com/view/abed51850329bd64783e0912a216147917117e37.html
先看一个普通seq2seq的翻译句子的实例:
Seq2Seq有一个编码器和一个解码器,编码器一般是LSTM或者其他模型用于提取特征,它的最后一个输出就是从这句话得出的最后的特征,而其他的隐层输出都被丢弃。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后输入是两个字符,起始符和m,下一个字母是a,我们将a做one-hot编码作为y标签,将它与我们输出的概率分布做一个CrossEntropy来作为损失函数,一直进行这个循环,应该就很好理解了。
在这里插入图片描述
最后一轮将整句德语作为输入,将停止符做标签y,再进行CrossEntropy,拿所有的英语和德语来训练我们的编码器和解码器,这就是我们的训练过程了。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意力机制
我们知道Seq2Seq模型有一个缺点就是句子太长的话encoder会遗忘,那么decoder接受到的句子特征也就不完全,我们看一下下面这个图,纵轴BLUE是机器翻译的指标,横轴是句子的单词量,我们可以看出用了attention之后模型的性能大大提升。
在这里插入图片描述
用了注意力机制,Decoder每次更新状态的时候都会再看一遍encoder所有状态,还会告诉decoder要更关注哪部分,这也是attention名字的由来。但是缺点就是计算量很大。
在这里插入图片描述
在这里插入图片描述
第一种方法:
在这里插入图片描述
在这里插入图片描述
第二种方法:
在这里插入图片描述
上面笔误:L其实是m
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
比如下面,法语中的zone就是英语的Area,所以两者的线就很粗。
在这里插入图片描述

注意力图Attention map可视化【亲测完美】     看了网上好多说这个注意力图可视化的代码,但是我都没整出来我想要的结果。然后参考着自己整了一个。 下面简单附代码,根据个人情况去修改: def resize(img): img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) cur_ratio = img.shape[1] / float(img.shape[0]) target_ratio = 128 / float(32) mask_h = 32 mask_w = 128 阅读详情

相关推荐

图解自注意力机制(Self-Attention)

Attention机制与Self-Attention机制的区别传统的Attention机制发生在Target的元素和Source中的所有元素之间。简单讲就是说Attention机制中的权重的计算需要Target来参与。即在Encoder-Decoder 模型中,Attention权值的计算不仅需要Encoder中的隐状态而且还需要Decoder中的隐状态。不是输入语句和输出语句之间的Attention机制,而是输入语句内部元素之间或者输出语句内部元素之间发生的Attention机制。

u012374012的专栏 2408

深度学习中的注意力机制

作者 | 张俊林 责编 | 何永灿 最近两年,注意力模型(Attention Model)被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,是深度学习技术中最值得关注与深入了解的核心技术之一。 本文以机器翻译为例,深入浅出地介绍了深度学习中注意力机制的原理及关键计算机制,同时也抽象出其本质思想,并介绍了注意力模型在图像及语音等领域的典型应

优快云大数据 13万+

图解Transformer:Self-Attention与多头注意力机制详解

本文通过图解方式详细解析了Transformer架构中的Self-Attention与多头注意力机制,揭示了其在自然语言处理中的核心作用。文章从数学原理到工程实现,逐步拆解了注意力计算、多头设计及优化策略,帮助开发者深入理解这一革命性技术。

weixin_29046611的博客 668

注意力机制综述(图解完整版附代码)

SENet示例图如上图所示,数据X经过卷积操作后,得到 U , U 的通道数用 C 表示, H×W 表示一个通道上的长和宽;此后,SENet引入了一个Squeeze模块 Fsq(⋅) 和一个Excitation模块 Fex(⋅,W)。Fsq(⋅) 通过全局平均池化操作将每个通道的特征图转化为一个标量值,简单地说,就是用全局平均池化将每个通道上的数据进行压缩,压缩成一个标量值,即得到一个 1×1×C 的矩阵。然后, Fex(⋅,W) 通过激活函数。

生活需要深度 5155

图解Multi-Head Attention:用PyTorch从零实现8头注意力机制

本文详细图解了Multi-Head Attention机制,并通过PyTorch从零实现8头注意力。文章深入解析了自注意力基础、多头并行计算原理,提供完整的代码实现和形状变化分析,帮助开发者掌握Transformer核心组件。特别介绍了计算效率优化技巧和可视化分析方法,适合NLP和深度学习从业者学习。

weixin_33734785的博客 287

手把手带你 YOLO 添加注意力机制

YOLOv5/v7 添加注意力机制教程

Coding... 21万+

翻译: 详细图解Transformer多头自注意力机制 Attention Is All You Need

翻译: 详细图解Transformer多头自注意力机制 Attention Is All You Need-优快云博客。

weixin_44012667的博客 251

attention注意力机制讲解ppt-组会分享

注意力机制是一种信息获取的通用机制,应用于从大量源数据中获取特定关键信息而避免对所有数据进行处理的场景。 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理、语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影。所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要。

【深度学习】图解自注意力机制(Self-Attention)

一、注意力机制和自注意力机制的区别Attention机制与Self-Attention机制的区别传统的Attention机制发生在Target的元素和Source中的所有元素之间。简单讲就是说Attention机制中的权重的计算需要Target来参与。即在Encoder-Decoder 模型中,Attention权值的计算不仅需要Encoder中的隐状态而且还需要Decoder中的隐状态。Self...

fengdu78的博客 2805

《注意力机制》教程(共112页PPT)

注意力是一种在广泛的神经结构中使用的越来越流行的机制。由于这一领域的快速发展,仍然缺乏对注意力的系统概述。在本文中,讨论了以往工作的不同方面,注意力机制的可能用途,并描述了该领域的主要研究工作和公开挑战。

Power Bi数据分析案例:在线零售平台销售数据分析

该数据集为,涵盖2023年1月至2024年3月,包含用户群体特征、购买行为、产品偏好以及参与度指标。用户维度:Customer_ID,Age,Gender,City产品维度:Product_Category,Unit_Price事实表:Order_ID,Quantity,Total_Amount,Discount_Amount,Rating,Delivery_Time在Power Query当中处理销售日期列,并新增年龄段、浏览页面分段列。

2301_79586168的博客 1278

【深度学习】深入浅出,图解自注意力机制(Self-Attention)

以下文章来源于微信公众号:数据派YJU作者:数据派THU链接:https://mp.weixin.qq.com/s/Yke_VpZzkqxJqiqBnZw55A本文仅用于学术分享,如有侵权,请联系后台作删文处理导读自注意力机制作为Transformer的核心模块,其强大的性能使得其被移植到各种任务中。那么自注意力机制为什么如此强大呢,本文通过图文结合的方式给大家做了详细讲解。一、注意力机制和自注意...

fengdu78的博客 4294

Keil 丢失编译器版本5、内核文件core_cm3.c报错

若用的是旧版本的core_cm3.c ,就使用编译器v5编译工程;若想用编译器v6,就更新4个相关的内核文件:(CMSIS:Cortex Microcontroller Software Interface Standard,ARM Cortex™ 微控制器软件接口标准)

qq_52804040的博客 6244

深入剖析Self-Attention自注意力机制【图解】

Self-Attention自注意力机制详细图解,深入剖析计算过程

逐梦苍穹的博客 6488

F280049C Crossbar X-BAR

X-BAR不是一个功能模块,只起内部外设与外设之间,或内部外设与GPIO的连接作用。配置X-BAR的就是在配置信号之间的连接。确实如这一节的开头所言,X-BAR提供了以各种配置连接设备输入、输出和内部资源的灵活性。学完这一节也知道为什么crossbar(X-BAR)的中文翻译是交叉开关。

xht2403267701的博客 3048

Flink CDC 1.18.1 Oracle 数据同步到postgresql

8、修改Flink的配置文件,主要是各种服务的绑定地址,默认为localhost,统统改为0.0.0.0,如:rest.address: 0.0.0.0 #localhost。将flink-sql-connector-oracle-cdc-3.0.1.jar复制到flink-1.18.1/lib目录中。6、下载 flink-connector-jdbc-3.1.1-1.17.jar,postgresql-42.7.3.jar。7、安装postgresql就不说了,相信你已经有了数据库了。

ynzhangyao的专栏 1800

Self-Attention自注意力机制解读(2):图解版!

上一篇文章Self-Attention自注意力机制:深度学习中的动态焦点 | 手把手实例解析 看不懂你打我以简单的例子引入了Self-Attention,并且以一句话简单的句子:“The cat sat on the mat.”为例做了手把手讲解,我们以每个单词作为一个向量,对这组向量进行一系列操作,最终得到了一个加权求和表格。上篇文章侧重具体的例子,我们使用了一系列实际的向量数值,带大家计算了一遍,但是对于Self-Attention的整个过程的理解展现的还不够,不如图片来的直观。

weixin_73373302的博客 2114

ROS2学习笔记(二)-- 多机通讯原理简介及配置方法

简单介绍ROS2多机通信原理以及配置注意事项

aibingjin的博客 1万+

图解GAT:从Transformer到Graph Attention Network的注意力机制演进

本文通过图解方式,系统阐述了从Transformer的自注意力机制到Graph Attention Network(GAT)的演进过程。GAT将Transformer中动态加权的核心思想成功迁移至图数据,解决了传统图卷积网络(GCN)对邻居节点一视同仁的局限。文章深入剖析了GAT的Masked Attention、多头注意力等核心机制,并与GCN、Transformer进行了对比,最后提供了基于PyTorch Geometric的实战代码。

qq_27496129的博客 796

TIM 2024 | AD-YOLO:一种结合 Swin Transformer 和注意力机制的实时 YOLO 网络用于机场场景检测

实时获取机场场景信息对于保障机场安全和提升机场运营效率至关重要。然而,机场场景图像中的人员和车辆目标尺寸较小,而且公开的机场数据不足,这使得机场物体检测成为一项颇具挑战的任务,难以同时实现高精度和实时检测。本文提出了一种全新的机场物体检测方法——机场检测器YOLO(AD - YOLO),它融合了改进的你只看一次(YOLO)算法、Swin Transformer和注意力机制的优势,以应对这一挑战。

小白学视觉 315

(王道计算机组成原理)第二章数据的表示和运算-第三节:运算方法和运算电路 1(基本运算部件)

本文主要介绍了计算机组成原理中的加法器和算术逻辑单元(ALU)的基本概念与实现原理。首先,文章详细讲解了一位全加器的工作原理,包括其输入输出、逻辑表达式及真值表。接着,介绍了并行加法器的两种类型:串行进位和并行进位的加法器,分析了它们的优缺点。随后,文章探讨了带标志位的加法器,说明了如何通过标志位生成逻辑来判断加法结果的状态。最后,文章阐述了ALU的功能及其实现原理,包括ALU的基本结构、控制信号的作用以及在实际考试中的图示表示。通过这些内容,读者可以全面了解加法器和ALU在计算机中的重要作用及其工作原理。

快乐江湖的博客 3837

从Self-Attention到Criss-Cross:图解注意力机制在CV中的进化史

本文深入解析了计算机视觉中注意力机制从Self-Attention到Criss-Cross Attention的演进历程,重点介绍了CCNet的创新突破及其在语义分割等任务中的卓越表现。通过图解和代码示例,详细阐述了交叉注意力模块的设计原理与计算效率优势,为CV领域研究者提供了宝贵的参考。

n2o3p4的博客 405

HyperLynx仿真(一)LineSim简单介绍

可以选择设置信号线与信号线之间默认的距离和信号线与同平面的平面之间的距离,这些设置根据工程师项目上经常使用的情况而设置,也可以选择不设置,在每次仿真时根据需要再对每一个仿真单独设置。仿真属性的设置对话框包含一般设置、 显示颜色设置、LineSim 设置、BoardSim 设置、 层叠默认设置、焊盘类型设置、仿真示波器默认设置、电路仿真器默认设置、电源完整性设置及高级设置。第一次使用HyperLynx软件时需要设置仿真相关环境,包括仿真软件的基本设置、模型库路径设置、仿真控制器控制、单位等。...

小幽余生不加糖 8953
上一篇: RNN图解
下一篇: transformer框架+self-attention技术+和图的关系
cloudless_sky
博客等级 码龄8年 106粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值