分类目录:《深入理解深度学习》总目录

相关文章:
·注意力机制(AttentionMechanism):基础知识
·注意力机制(AttentionMechanism):注意力汇聚与Nadaraya-Watson核回归
·注意力机制(AttentionMechanism):注意力评分函数(AttentionScoringFunction)
·注意力机制(AttentionMechanism):Bahdanau注意力
·注意力机制(AttentionMechanism):多头注意力(MultiheadAttention)
·注意力机制(AttentionMechanism):自注意力(Self-attention)
·注意力机制(AttentionMechanism):位置编码(PositionalEncoding)


《深入理解深度学习——注意力机制(Attention Mechanism):注意力汇聚与Nadaraya-Watson 核回归》中使用了高斯核来对查询和键之间的关系建模。式中的高斯核指数部分可以视为注意力评分函数(Attention Scoring Function), 简称评分函数(Scoring Function), 然后把这个函数的输出结果输入到Softmax函数中进行运算。 通过上述步骤,将得到与键对应的值的概率分布(即注意力权重)。最后,注意力汇聚的输出就是基于这些注意力权重的值的加权和。

从宏观来看,上述算法可以用来实现注意力机制框架。下图说明了如何将注意力汇聚的输出计算成为值的加权和,其中 a a a表示注意力评分函数。由于注意力权重是概率分布,因此加权和其本质上是加权平均值。


用数学语言描述,假设有一个查询 q ∈ R q q\in R^q q∈Rq和 m m m个“键—值”对 ( k 1 , v 1 ) , ( k 2 , v 2 ) , ⋯ , ( k m , v m ) (k_1, v_1), (k_2, v_2), \cdots, (k_m, v_m) (k1​,v1​),(k2​,v2​),⋯,(km​,vm​), 其中 k i ∈ R k , v i ∈ R v k_i\in R^k, v_i\in R^v ki​∈Rk,vi​∈Rv。 注意力汇聚函数就被表示成值的加权和:
f ( q , ( k 1 , v 1 ) , ( k 2 , v 2 ) , ⋯ , ( k m , v m ) ) = ∑ i = 1 m α ( q , k i ) v i ∈ R v f(q, (k_1, v_1), (k_2, v_2), \cdots, (k_m, v_m)) = \sum_{i=1}^m\alpha(q, k_i)v_i\in R^v f(q,(k1​,v1​),(k2​,v2​),⋯,(km​,vm​))=i=1∑m​α(q,ki​)vi​∈Rv

其中查询 q q q和键 k i k_i ki​的注意力权重(标量) 是通过注意力评分函数 a a a将两个向量映射成标量, 再经过Softmax运算得到的:
α ( q , k i ) = Softmax ( a ( q , k i ) ) = exp ⁡ ( a ( q , k i ) ) ∑ j = 1 m exp ⁡ ( a ( q , k i ) ) ∈ R \alpha(q, k_i) = \text{Softmax}(a(q, k_i))=\frac{\exp(a(q, k_i))}{\sum_{j=1}^m\exp(a(q, k_i))} \in R α(q,ki​)=Softmax(a(q,ki​))=∑j=1m​exp(a(q,ki​))exp(a(q,ki​))​∈R

正如上图所示,选择不同的注意力评分函数会导致不同的注意力汇聚操作。 本文将介绍两个流行的评分函数,稍后将用他们来实现更复杂的注意力机制。

加性注意力

一般来说,当查询和键是不同长度的矢量时,可以使用加性注意力作为评分函数。 给定查询 q ∈ R q q\in R^q q∈Rq和键 k ∈ R k k\in R^k k∈Rk,加性注意力(Additive Attention)的评分函数为
a ( q , k ) = w v T tanh ⁡ ( W q q + W k k ) ∈ R a(q, k)=w^T_v\tanh(W_qq+W_kk)\in R a(q,k)=wvT​tanh(Wq​q+Wk​k)∈R

其中可学习的参数是 W q ∈ R h × q W_q\in R^{h\times q} Wq​∈Rh×q、 W k ∈ R h × k W_k\in R^{h\times k} Wk​∈Rh×k和 W v ∈ R h W_v\in R^h Wv​∈Rh 。 如上式所示, 将查询和键连结起来后输入到一个多层感知机(MLP)中, 感知机包含一个隐藏层,其隐藏单元数是一个超参数 h h h。 通过使用 tanh ⁡ \tanh tanh作为激活函数,并且禁用偏置项。

缩放点积注意力

使用点积可以得到计算效率更高的评分函数, 但是点积操作要求查询和键具有相同的长度。 假设查询和键的所有元素都是独立的随机变量, 并且都满足零均值和单位方差, 那么两个向量的点积的均值为0,方差为 d d d。 为确保无论向量长度如何, 点积的方差在不考虑向量长度的情况下仍然是1, 我们再将点积除以 d \sqrt{d} d ​, 则缩放点积注意力(Scaled Dot-product Attention)评分函数为:
a ( q , k ) = q T k d a(q, k)=\frac{q^Tk}{\sqrt{d}} a(q,k)=d ​qTk​

在实践中,我们通常从小批量的角度来考虑提高效率, 例如基于 n n n个查询和 m m m个“键—值”对计算注意力, 其中查询和键的长度为 d d d,值的长度为 v v v。 查询 Q ∈ R n × d Q\in R^{n\times d} Q∈Rn×d、 键 K ∈ R m × d K\in R^{m\times d} K∈Rm×d和值 V ∈ R m × v V\in R^{m\times v} V∈Rm×v的缩放点积注意力是:
Softmax ( Q T K d ) V ∈ R n × v \text{Softmax}(\frac{Q^TK}{\sqrt{d}})V\in R^{n\times v} Softmax(d ​QTK​)V∈Rn×v

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.

深入理解深度学习——注意力机制(Attention Mechanism):注意力评分函数(Attention Scoring Function)相关推荐

  1. 深入理解深度学习——注意力机制(Attention Mechanism):带掩码的多头注意力(Masked Multi-head Attention)

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...

  2. 深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...

  3. Deepmind讲座:深度学习中的记忆和注意力 注意力机制发展史与详解

    DeepMind x UCL | Deep Learning Lectures | 8/12 | Attention and Memory in Deep Learning(机翻讲稿) 图片外链失效, ...

  4. 深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...

  5. 图深度学习入门教程(六)——注意力机制与图注意力

    深度学习还没学完,怎么图深度学习又来了?别怕,这里有份系统教程,可以将0基础的你直接送到图深度学习.还会定期更新哦. 主要是基于图深度学习的入门内容.讲述最基本的基础知识,其中包括深度学习.数学.图神 ...

  6. 深入理解深度学习——Transformer:整合编码器(Encoder)和解码器Decoder)

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...

  7. 深入理解深度学习——Transformer:解码器(Decoder)部分

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...

  8. 深入理解深度学习——Transformer:编码器(Encoder)部分

    分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...

  9. 收藏 | 一文带你深入理解深度学习最新进展

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 本文整合自机器之心.网络资源 AI博士笔记系列推荐 周志华<机 ...

最新文章

  1. python模块下载过程出错_尝试导入已安装的python模块时收到错误
  2. C# 读写文件方法总结
  3. 生成模型和判别模型的区别
  4. 代金券制作小程序秒代金券_微信小程序制作工具与方法
  5. 看图工具—IrfanView
  6. Spring Boot应用的打包和部署
  7. Integer 数据类型
  8. python messagebox弹窗退出_python 中messagebox使用 做中断调试不错
  9. tshark删除pcap文件中与网关通信的数据包
  10. 2018年全国高校教师“Python编程、应用及华为大数据”培训班
  11. css框模型、定位、浮动
  12. aqara (737) -(a俩)_绿米与万科合作?Aqara线下服务商500家,合作有保障
  13. 贴片铝电容识别及型号_铝电容和钽电容的区别,你们知道吗?
  14. Unicode与GBK互转
  15. STM32L051测试 (四、Flash和EEPROM的读写)
  16. 极简「Oauth2.0」微信网页授权教程
  17. PHP学习日记0_PHP、静态网页、动态网页、静态网站访问流程、动态网站访问流程
  18. python笔记(三):if循环语句
  19. 高数_第6章无穷级数
  20. python中文朗读_python语音朗读

热门文章

  1. JS获取浏览器语言 动态加载JS文件
  2. CSS3圆角圆边 支持IE6-IE8浏览器
  3. 网络中常用的三种拓扑汇聚技术
  4. 2023二建各科专项突破
  5. org.apache.maven.plugin.MojoExecutionException: protoc failure
  6. eclipse+tomcat开发环境 java白盒测试工具
  7. 菜尼奥排错之merge6 = merge([drop4,up6], mode = ‘concat‘...)TypeError: ‘module‘ object is not callable
  8. python 通过文件头获取文件类型mimetype
  9. 【ROS-3】ROS实现图像目标检测
  10. css零到一高级教程007:CSS 阴影效果