代码+通俗理解attention机制

13 篇文章 0 订阅
订阅专栏
11 篇文章 0 订阅
订阅专栏

attention机制在机器学习领域人尽皆知,并且逐渐成为了从NLP扩散到各个领域的科研密码,但是一直对attention的理解不是很深入。尤其是看网上各种各样对论文的翻译和截图,看的云里雾里,因此记录一下attention到底是什么以及其计算过程。

1 attention在直观理解上的作用

attention的作用是在一段文本中注意到关键的字词,或者在图片中注意到局部信息,比如:
在这里插入图片描述

在这里插入图片描述
因此,attention是用于特征增强的技术,即突出强调单个样本中部分特征的信息。然而,实现这一点并不是像传统数据增强算法一样对单个样本进行操作得到的,而是在一个batch上对多个样本进行操作得到的。

2 attention在数据层面上的作用

将attention看做一个黑盒模型,其在数据层面上的作用就是将1个batch的样本特征,通过变换后得到另一个batch的样本特征,样本数量不会改变,但是样本的特征数量可能会变多或者变少。因此可以理解为做了和全部样本归一化、全部样本缩放一样的操作,只不过attention机制后的样本有了一些新的变化:即更容易被机器训练或者识别了。
在这里插入图片描述

3 attention的流程

attention的种类随着各种变化有很多,在此只分析最传统的attention机制作为代表,相比于这个图:
在这里插入图片描述
我更喜欢下面这个图代表attention的流程:
在这里插入图片描述
图中绿色的三个权重矩阵是生成Key、Query、Value的关键,需要训练学习出来。
整个流程用一个公式表示为:
A t t e n t i o n ( X ) = s o f t m a x ( Q u e r y T K e y d ( Q u e r y , K e y ) ) V a l u e Attention(X)=softmax(\frac{Query^TKey}{\sqrt{d_{(Query,Key)}}})Value Attention(X)=softmax(d(Query,Key) QueryTKey)Value
其中 d ( Q u e r y , K e y ) d_{(Query,Key)} d(Query,Key)代表的就是Query和Key的维度,二者是一样的, 1 d ( Q u e r y , K e y ) \frac{1}{\sqrt{d_{(Query,Key)}}} d(Query,Key) 1的意思类似对方针归一化,以方便softmax。

使用代码表示上述流程,可以表示为:

import torch
# 本质上Attention是对一个batch样本中元素的Value值进行加权求和,而Query和Key用来计算对应Value的权重系数
# 三个样本x1 x2 x3
x1 = torch.tensor([1.,2.,3.,4.,5.])
x2 = torch.tensor([2.,3.,4.,5.,6.])
x3 = torch.tensor([0.,0.,0.,0.,0.])

# 堆成一个batch
X = torch.stack([x1,x2,x3], dim=0)  # shape 3*5

# 三个attention的矩阵Wq Wk Wv 5*3
# query:
Wq = torch.tensor([
    [0,1,0],
    [1,0,3],
    [3,6,0],
    [1,4,5],
    [1,3,0]
], dtype=torch.float32)

# key:
Wk = torch.tensor([
    [1,1,0],
    [6,6,3],
    [3,0,0],
    [0,1,0],
    [1,1,1]
], dtype=torch.float32)

# value:
Wv = torch.tensor([
    [0,1,0],
    [0,0,3],
    [0,1,0],
    [0,4,0],
    [0,3,1]
], dtype=torch.float32)

# 条件都具备了,下面开始执行self-attention的计算流程
# 1-根据X计算query key value
query = torch.mm(X, Wq)  # shape 3*5 * 5*3 = 3*3
key = torch.mm(X, Wk)
value = torch.mm(X, Wv)

# 2-计算attentiond的score=key*value
score = torch.mm(query, key)  # shape 3*3 * 3*3 = 3*3
softmax_score = torch.softmax(score, dim=1)  # shape 3*3 -> 3*3
# dim = 1 相当于矩阵的行不变,dim=1,dim指的是张量(列表)的dim

# 3-乘以value,得到最后的attention
attention = torch.mm(softmax_score, value)

print("初始值X:",X, '\n','attention结果:', attention)



4 attention的本质

分析一下attention机制的本质:在一个batch的样本集X中,利用样本 x 1 , x 2 , . . . x n x_1,x_2,...x_n x1,x2,...xn的关系,对各个样本中的特征向量进行重构,使得重构后的向量中特征更加明显,更方便机器进行识别。这个过程就相当于让机器戴了一层滤镜一样。

如何实现上面的过程?主要就是通过将原始样本集X先变换成三个相同尺寸的张量key,query,value,想象一个做数学题的场景:key就是会做的不同题目的完整解法,query就是要做的各个题目,value可以看做会的不同的做题技巧(也就是做题人本身),那么做题的过程就是先计算各个key与各个query的相似度,然后根据这个相似度去在大脑里搜寻应该采用哪些做题技巧的组合更好。

5 总结

1)attention是基于batch进行的每个样本的特征增强,而不是靠每个样本自身直接进行特征增强。

2)attention是一种机制,其有很多变种,如多头注意力等。基于attention系列的机制有很多模型,比如transformer(RNN)、GPT-3等。

【YOLOv10改进-注意力机制】iRMB: 倒置残差移动块 (论文笔记+引入代码)
专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。
06-29 1275
本论文旨在开发现代、高效、轻量的密集预测模型,并在参数、浮点运算次数与性能之间寻求平衡。虽然倒置残差块(IRB)是轻量级卷积神经网络(CNN)的重要基础,但在基于注意力的研究中尚缺类似的构件。本研究从统一视角出发,结合高效IRB和有效的Transformer组件,重新考虑轻量级基础架构。我们将基于CNN的IRB扩展到基于注意力的模型,并提出了一种单残差元移动块(MMB)用于轻量级模型设计。
通俗理解DDPM到Stable Diffusion原理
orangerfun的博客
08-27 1661
Stable diffusion原理详解
Attention机制
zxhohai的博客
09-24 2278
在sequence-to-sequence学习中,输入和输出都是序列,通常采用Encoder-Decoder的框架进行处理。这种结构首先通过编码器(如CNN/RNN/LSTM等)将输入序列编码成一个固定长度的中间向量,然后将该向量作为解码器(如DNN/CNN/RNN/LSTM)的输入进行解码得到最终结果。以机器翻译为例,其Encoder-Decoder结构如下: 上图中,Encoder和De...
关于attention的简单理解
namespace_Pt的博客
10-17 478
理解attention 两个角度, 首先,令f:Rd∗d→Rf: \mathbb{R}^{d*d} \rightarrow \mathbb{R}f:Rd∗d→R 或者 f:Rd→Rf: \mathbb{R}^{d} \rightarrow \mathbb{R}f:Rd→R,fff可以是perceptron,可以是点积、cos相似度等(两个自变量时),vi∈Vv_i \in \mathcal{V}vi​∈V代表item的向量表达 直接把自己映射成权重,αvi=softmax(f(vi))\alpha_{v_
通俗理解---Attention注意力机制
谁怕平生太急
09-07 2207
来源: 我们在看一个句子的时候,会着重看句子的主语(或者其他成分),这个时候注意力是有重点的,如何让计算机处理的时候也有这个“注意力”呢? 注意力分配:在信息处理过程中,对不同的内容分配不同的注意力权重。 1 Attention在哪里 想知道Attention具体的机制,首先得对seq2seq有一些了解。 seq2seq其实就是 编码 + 解码。 编码做的事情: 对输入序列进行编码, 生成 一个中...
通俗易懂理解Attention机制
zenRRan的博客
05-06 555
阅读大概需要5分钟跟随小博主,每天进步一丢丢作者:何之源链接:https://zhuanlan.zhihu.com/p/28054589来源:知乎Attention机制理论在Encode...
浅谈Attention机制的作用
qq_35914625的博客
09-09 2万+
浅谈注意力机制的作用前言什么是注意力机制对于时间步的注意力机制(我感觉cv里面叫通道注意力,不知道我) 前言 Attention机制是很好的一个东西,Attention机制在近几年来在图像,自然语言处理和cv等领域中都取得了重要的突破,被证明有益于提高模型的性能。让我们一起来了解下注意力机制吧。 什么是注意力机制 所谓Attention机制,便是聚焦于局部信息的机制,比如,图像中的某一个图像区域。随着任务的变化,注意力区域往往会发生变化。 面对上面这样的一张图,如果你只是从整体来看,只看到了很多人头,但
自然语言处理中的Attention Model:是什么及为什么
热门推荐
张俊林的博客
01-20 11万+
  /* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/                                                        author: 张俊林                                                  (想更系统地学习深度学习知识?请参考:深度学习枕边书) 要是关注深度学习在自然...
通俗易懂的attention理解代码实现
qq_36281420的博客
07-28 766
1 Ateintion理解 输入句子每个单词对于生成序列的某个单词有多大的影响程度 论文A Neural Attention Model for Sentence Summarization使用注意力机制来生成摘要,可以看下面这个图来帮助理解注意力。 Encoder-Decoder框架的输入句子XXX是:“russiandefenseministerivanovcalledsundayforthecreationofajointfrontforcombatingglobalterrorism”“russia
一种新型的注意力机制——signed-attention
tiantian_96727的博客
05-08 1145
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、signed的motivation二、步骤优点与multi-head attention的区别总结新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导
attention代码
12-10
attention model,主要用在处理文本的seq2seq上,能够根据文中的每个词的重要性去生成权重。生成摘要,生成句子序列都需要
Attention(注意力机制代码)
07-16
Attention.zip文件中总结了几种关于注意力机制代码,有keras和tensorflow,还有PyTorch框架的
读书笔记之16Attention机制说明及代码实现
12-03
AttentionModel的使用,利用Keras框架实现的,具体代码,以后会在GitHub上公布
自然语言处理(NLP):15 seq2seq+attention图解原理+论文剖析(01)
艾文
06-03 1673
从BERT模型横空出世以后,通过预训练模型在NLP 领域的使用得到了快速的发展并且取得了非常好的效果。然而理解BERT 之前我们需要掌握大量知识
通俗易懂理解注意力机制(Attention Mechanism)
最新发布
IT菜鸟
01-31 3万+
通俗易懂理解注意力机制(Attention Mechanism)
ATTENTION的作用
weixin_42401927的博客
11-18 1771
Attention的出现就是为了两个目的:1. 减小处理高维输入数据的计算负担,通过结构化的选取输入的子集,降低数据维度。2. “去伪存真”,让任务处理系统更专注于找到输入数据中显著的与当前输出相关的有用信息,从而提高输出的质量。Attention模型的最终目的是帮助类似编解码器这样的框架,更好的学到多种内容模态之间的相互关系,从而更好的表示这些信息,克服其无法解释从而很难设计的缺陷。从上述的研究问题可以发现,Attention机制非常适合于推理多种不同模态数据之间的相互映射关系,这种关系很难解释,很隐蔽也
Attention机制通俗介绍
weixin_42936560的博客
12-22 3854
好,在讲attention之前,大家有必要了解两个知识点,词向量和RNN。 什么是词向量呢?也就是把语言向量化来作为模型的输入。 什么是RNN呢,也就是循环神经网络,看下面这个示意图,这里的每一个X代表每一步的输入,A代表运算过程,可以看到,每一步的计算输出都被作为下一步的输入,另个需要说明一点,每个A里的参数都是一样的,这就是为什么这种模型叫作循环神经网络。 那现在进入今天的主题,attent...
【简单总结】简单总结attention本质
weixin_44151089的博客
03-12 365
【简单理解】简单理解Attention注意力机制本质 1.简单介绍Attention注意力机制Attention注意力机制其实可以用一句话说穿:它是Seq2Seq中的decoder模块对encoder模块的加权平均。 说的太简洁了不利于理解本质,接下来让我们来细细理解到底什么是Attention注意力机制吧。 2.Encoder-Decoder(Seq2Seq)框架 要了解深度学习中...
浅谈Attention-based Model【源码篇】
木东的博客
05-27 915
转载请标明出处:http://blog.csdn.net/wuzqchom/article/details/77918780源码不可能每一条都详尽解释,主要在一些关键步骤上加了一些注释和少许个人理解,如有不足之处,请予指正。计划分为三个部分: 浅谈Attention-based Model【原理篇】 浅谈Attention-based Model【源码篇】(你在这里) 浅谈Attention-ba...
自注意力机制通俗理解
08-22
自注意力机制通俗理解即为一种机制,它使得输入之间可以相互交互,并找到应该更加关注的输入。换句话说,自注意力机制能够让每个输入都能够在整个输入序列中寻找到与自己相关的信息,并根据这些信息进行聚合和计算注意力分数。它的作用类似于人类的注意力,可以帮助模型更好地理解和处理输入的信息。通过自注意力机制,模型可以更好地捕捉输入之间的关系和重要程度,从而提高模型的表现和效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [图解自注意力机制-通俗易通篇](https://blog.csdn.net/sophicchen/article/details/107920360)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [全网最通俗易懂的 Self-Attention自注意力机制 讲解](https://blog.csdn.net/qq_38890412/article/details/120601834)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
写文章

热门文章

  • Pytorch tensor 判断 nan 与 inf 的方法 28682
  • 使用51单片机实现点阵汉字平滑滚动显示 23507
  • python中文短文本的预处理及聚类分析(NLP) 23161
  • 目标检测:Faster-RCNN与YOLO V3模型的对比分析 19775
  • matplotlib 的rcParams文件、常见的中文字体问题以及图片中全局字体大小控制 19640

分类专栏

  • Python编程 104篇
  • 基础算法与数据结构 102篇
  • 神经网络基础模型关键点 19篇
  • troch陶器 8篇
  • NN技巧 13篇
  • RL-based文献阅读 8篇
  • github 1篇
  • 强化学习导论 10篇
  • GNN 1篇
  • RLlittletips 1篇
  • 建模仿真 5篇
  • 图像处理 2篇
  • LaTex 1篇
  • cpp 3篇
  • NLP 6篇
  • C语言 2篇
  • 算法与数据结构 11篇
  • python语法学习 7篇
  • JS 1篇
  • 学习笔记 4篇
  • python tips 10篇
  • matplotlib 2篇
  • PyQt4

最新评论

  • Leetcode 486. 预测赢家

    CSDN-Ada助手: 不知道 算法 技能树是否可以帮到你:https://edu.csdn.net/skill/algorithm?utm_source=AI_act_algorithm

  • Leetcode 3290. 最高乘法得分

    普通攻击往后拉: 动态规划还是应该尽量思考一两个递推位置的,少在里面用循环去做,尽量用选or不选的角度去做,少用选哪个的思路

大家在看

  • 【数据结构与算法】《布隆过滤器:高效数据筛选的魔法工具》
  • C++学习笔记----9、发现继承的技巧(五)---- 多重继承(1)
  • python画图|图例设置基础教程 752
  • Claude的---电脑控制---功能 113
  • python的上下文管理器

最新文章

  • Leetcode 983. 最低票价
  • Leetcode 486. 预测赢家
  • 深度学习与数学归纳法
2024
10月 2篇
09月 7篇
08月 17篇
06月 1篇
05月 2篇
04月 59篇
03月 30篇
2023年5篇
2022年5篇
2021年25篇
2020年23篇
2019年21篇
2018年2篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

玻璃钢生产厂家西安玻璃钢雕塑加工厂玻璃钢雕塑设计与制作贵不贵雕塑假山玻璃钢河南动物玻璃钢雕塑哪家便宜河北玻璃钢抽象动物雕塑供货商芜湖环保玻璃钢雕塑生产厂家南岸玻璃钢雕塑玻璃钢雕塑加工厂江苏南京拉丝玻璃钢雕塑服务为先玻璃钢雕塑污染济南玻璃钢雕塑加工厂天津商场主题创意商业美陈制作山西玻璃钢雕塑公司三门峡室内玻璃钢彩绘雕塑公司合肥卡通玻璃钢雕塑生产厂山东常见商场美陈厂家供应平凉玻璃钢动物雕塑哪家好深圳欧式玻璃钢雕塑定制嘉峪关仿真人物玻璃钢雕塑公司新密玻璃钢雕塑加工莆田玻璃钢海豚雕塑定制河北通道商场美陈研发公司宝鸡商场至陈仓园家美佳公交新郑水景玻璃钢彩绘雕塑广州商业广场玻璃钢卡通雕塑定制郾城玻璃钢雕塑价格河南季节性商场美陈销售厂家浙江公园玻璃钢雕塑供应商石家庄欧式玻璃钢雕塑价位怀集玻璃钢造型雕塑价格香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化