文章目录

  • 注意力提示
    • 1 - 生物学中的注意力提示
    • 2 - 查询、键和值
    • 3 - 注意力的可视化
    • 4 - 小结

注意力提示

⾃经济学研究稀缺资源分配以来,我们正处在“注意⼒经济”时代,即⼈类的注意⼒被视为可以交换的、有限的、有价值的且稀缺的商品。许多商业模式也被开发出来去利⽤这⼀点:在⾳乐或视频流媒体服务上,我们要么消耗注意⼒在⼴告上,要么付钱来隐藏⼴告;为了在⽹络游戏世界的成⻓,我们要么消耗注意⼒在游戏战⽃中,从⽽帮助吸引新的玩家,要么付钱⽴即变得强⼤。总之,注意⼒不是免费的

注意⼒是稀缺的,⽽环境中的⼲扰注意⼒的信息却并不少。⽐如我们的视觉神经系统⼤约每秒收到108位的信息,这远远超过了⼤脑能够完全处理的⽔平。幸运的是,我们的祖先已经从经验(也称为数据)中认识到“并⾮感官的所有输⼊都是⼀样的”。在整个⼈类历史中,这种只将注意⼒引向感兴趣的⼀⼩部分信息的能⼒,使我们的⼤脑能够更明智地分配资源来⽣存、成⻓和社交,例如发现天敌、找寻⻝物和伴侣

1 - 生物学中的注意力提示

注意⼒是如何应⽤于视觉世界中的呢?我们从当今⼗分普及的双组件(two-component)的框架开始讲起:这个框架的出现可以追溯到19世纪90年代的威廉·詹姆斯,他被认为是“美国⼼理学之⽗”[James, 2007]。在这个框架中,受试者基于⾮⾃主性提⽰和⾃主性提⽰有选择地引导注意⼒的焦点

⾮⾃主性提⽰是基于环境中物体的突出性和易⻅性。想象⼀下,假如你⾯前有五个物品:⼀份报纸、⼀篇研究论⽂、⼀杯咖啡、⼀本笔记本和⼀本书,就像 图10.1.1。所有纸制品都是⿊⽩印刷的,但咖啡杯是红⾊的。换句话说,这个咖啡杯在这种视觉环境中是突出和显眼的,不由⾃主地引起⼈们的注意。所以你把视⼒最敏锐的地⽅放到咖啡上,如 图10.1.1所⽰


喝咖啡后,你会变得兴奋并想读书。所以你转过头,重新聚焦你的眼睛,然后看看书,就像 图10.1.2中描述那样。与 图10.1.1中由于突出性导致的选择不同,此时选择书是受到了认知和意识的控制,因此注意⼒在基于⾃主性提⽰去辅助选择时将更为谨慎。受试者的主观意愿推动,选择的⼒量也就更强⼤

2 - 查询、键和值

⾃主性的与⾮⾃主性的注意⼒提⽰解释了⼈类的注意⼒的⽅式,下⾯我们看看如何通过这两种注意⼒提⽰,⽤神经⽹络来设计注意⼒机制的框架

首先,考虑一个相对简单的状况,即只使用非自主性提示。要想将选择偏向于感官输入,我们可以简单地使用参数化的全连接层,甚至是非参数化的最大汇聚层或平均汇聚层

因此,“是否包含⾃主性提⽰”将注意⼒机制与全连接层或汇聚层区别开来。在注意力机制的背景下,我们将自主性提示称为查询(query)。给定任何查询,注意力机制通过注意力汇聚(attention pooling)将选择引导至感官输入(sensory inputs,例如中间特征表示)。在注意力机制中,这些感官输入被称为值(value)。更通俗的解释,每个值都与一个键(key)配对,这可以想象为感官输入的非自主提示。

如图10.1.3所示,我们可以设计注意力汇聚,以便给定的查询(自主性提示)可以与键(非自主性提示)进行匹配,将引导得出最匹配的值(感官输入)

3 - 注意力的可视化

平均汇聚层可以被视为输入的加权平均值,其中各输入的权重是一样的。实际上,注意力汇聚得到的是加权平均的总会值,其中权重是在给定的查询和不同的键之间计算得出的

import torch
from d2l import torch as d2l

为了可视化注意力权重,我们定义了show_heatmaps函数。其输入matrices的形状是(要显示的行数,要显示的列数,查询的数目,键的数目)

def show_heatmaps(matrices,xlabel,ylabel,titles=None,figsize=(2.5,2.5),cmap='Reds'):"""显示矩阵热图"""d2l.use_svg_display()num_rows,num_cols = matrices.shape[0],matrices.shape[1]fig,axes = d2l.plt.subplots(num_rows,num_cols,figsize=figsize,sharex=True,sharey=True,squeeze=False)for i,(row_axes,row_matrices) in enumerate(zip(axes,matrices)):for j,(ax,matrix) in enumerate(zip(row_axes,row_matrices)):pcm = ax.imshow(matrix.detach().numpy(),cmap=cmap)if i == num_rows - 1:ax.set_xlabel(xlabel)if j == 0:ax.set_ylabel(ylabel)if titles:ax.set_title(titles[j])fig.colorbar(pcm,ax=axes,shrink=0.6);

下面我们使用一个简单的例子进行演示,在本例中,仅当查询和键相同时,注意力权重为1,否则为0

attention_weights = torch.eye(10).reshape((1,1,10,10))
show_heatmaps(attention_weights,xlabel='Keys',ylabel='Queries')


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FGAWDOcQ-1662988348423)(https://yingziimage.oss-cn-beijing.aliyuncs.com/img/202209122107898.svg)]

在后面的章节中,我们将经常调用show_heatmaps函数来显示注意力权重

4 - 小结

  • 人类的注意力时有限的、有价值和稀缺的资源
  • 受试者使用非自主性和自主性提示有选择性地引导注意力。前者基于突出性,后者则依赖于意识
  • 注意力机制与全连接层或者汇聚层的区别源于增加的自主提示
  • 由于包含了自主性提示,注意力机制与全连接的层或汇聚层不同
  • 注意力机制通过注意力汇聚使选择偏向于值(感官输入),其中包含查询(自主性提示)和键(非自主性提示)。键和值是成对的
  • 我们可以可视化查询和键之间的注意力权重

注意力机制 - 注意力提示相关推荐

  1. 注意力机制 - 注意力汇聚:Nadaraya-Watson核回归

    文章目录 注意力汇聚:Nadaraya-Watson核回归 1 - 生成数据集 2 - 平均汇聚 3 - 非参数注意力汇聚 4 - 带参数注意力汇聚 批量矩阵乘法 定义模型 训练 5 - 小结 注意力 ...

  2. 注意力机制-深度学习中的注意力机制+注意力机制在自然语言处理中的应用

    1 深度学习中的注意力机制 https://mp.weixin.qq.com/s?__biz=MzA4Mzc0NjkwNA==&mid=2650783542&idx=1&sn= ...

  3. 注意力机制(一):注意力提示、注意力汇聚、Nadaraya-Watson 核回归

    专栏:神经网络复现目录 注意力机制 注意力机制(Attention Mechanism)是一种人工智能技术,它可以让神经网络在处理序列数据时,专注于关键信息的部分,同时忽略不重要的部分.在自然语言处理 ...

  4. 跟李沐学AI之注意力机制+transformer

    注意力机制 注意力提示 注意力的可视化 注意力汇聚 平均汇聚 非参数注意力汇聚 带参数注意力汇聚 注意力评分函数 掩蔽softmax操作 加性注意力 缩放点积注意力 Bahdanau注意力 多头注意力 ...

  5. Transformer:注意力机制(attention)和自注意力机制(self-attention)的学习总结

    目录 前言 1. 注意力机制 1.1非自主提示和自主提示 1.2 查询,键和值 1.3 注意力机制的公式 1.3.1 平均汇聚 1.3.2 非参数的注意力汇聚(Nadaraya-Watson核回归) ...

  6. Pytorch:Transformer(Encoder编码器-Decoder解码器、多头注意力机制、多头自注意力机制、掩码张量、前馈全连接层、规范化层、子层连接结构、pyitcast) part1

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  7. 深度残差收缩网络:借助注意力机制实现特征的软阈值化

    作者 | 哈尔滨工业大学(威海)讲师 赵明航 本文解读了一种新的深度注意力算法,即深度残差收缩网络(Deep Residual Shrinkage Network). 从功能上讲,深度残差收缩网络是一 ...

  8. 【Pytorch神经网络理论篇】 20 神经网络中的注意力机制

    注意力机制可以使神经网络忽略不重要的特征向量,而重点计算有用的特征向量.在抛去无用特征对拟合结果于扰的同时,又提升了运算速度. 1 注意力机制 所谓Attention机制,便是聚焦于局部信息的机制,比 ...

  9. 深度残差网络_注意力机制+软阈值化=深度残差收缩网络

    顾名思义,深度残差收缩网络是由"残差网络"和"收缩"两部分所组成的,是在"残差网络"基础上的一种改进算法. 其中,残差网络在2016年斩获了 ...

最新文章

  1. 用思维导图做的求婚计划,哈哈哈
  2. Mysql中的增删改查操作
  3. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡
  4. java beans_java beans的概念及应用?
  5. 本机Ajax异步通信
  6. java 实现excel样式设置(居中、字体、大小、换行、合并行,列宽、指定特定字符串样式等)
  7. jquery ajax 调用webservice以及跨域问题
  8. 不使用资源文件动态创建对话框的做法
  9. c语言课程设计物业,C语言课程设计报告--物业管理系统.doc
  10. python递归汉诺塔详解_Python实现汉诺塔递归算法
  11. POJ 3764 Trie + 贪心
  12. c语言题 设圆的半径,C语言初学者:编程序:设圆半径r圆柱高h,求圆周长面积圆柱体积圆球表面积...
  13. angular8封装http服务
  14. 使用Unity3D制作Flappy Bird
  15. 念悠文化:微博运营怎么做?微博运营的几个方法
  16. python颜色填充代码_python中如何给图形填充颜色
  17. 用 Python 实现哈希算法检测重复图片
  18. Office办公 如何设置WPS的默认背景大小
  19. SSH机试顺丰搬家预约信息查询参考
  20. 所见即所得的php编辑,常用所见即所得HTML在线编辑器汇总(15个)

热门文章

  1. 新加坡国立大学周大权:从人造卫星系统设计师到AI人,我的科研灵感来源于现实问题
  2. 10进制转换为16进制
  3. 低宽带网络加速平台 企业用途
  4. Python爬虫入门教程32:爬取boss直聘招聘数据并做可视化展示
  5. 2 560.26 php,php rtrim的一个坑,很“二”的问题
  6. 【原创】我所认识的银行业务之旅(结售汇篇)
  7. Java基础学习(12)
  8. 【计算机毕业设计】544音乐翻唱网站与分享平台
  9. 《ONAP技术详解与应用实践》中奖名单来了!
  10. 【redis】闲得无聊,来聊聊当下爆火的 redis集群,顺便搭一个玩玩呗