深入理解深度学习——注意力机制(Attention Mechanism):注意力评分函数(Attention Scoring Function)
分类目录:《深入理解深度学习》总目录
相关文章:
·注意力机制(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=1mexp(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)=wvTtanh(Wqq+Wkk)∈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)相关推荐
- 深入理解深度学习——注意力机制(Attention Mechanism):带掩码的多头注意力(Masked Multi-head Attention)
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...
- 深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...
- Deepmind讲座:深度学习中的记忆和注意力 注意力机制发展史与详解
DeepMind x UCL | Deep Learning Lectures | 8/12 | Attention and Memory in Deep Learning(机翻讲稿) 图片外链失效, ...
- 深入理解深度学习——Transformer:解码器(Decoder)的多头注意力层(Multi-headAttention)
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...
- 图深度学习入门教程(六)——注意力机制与图注意力
深度学习还没学完,怎么图深度学习又来了?别怕,这里有份系统教程,可以将0基础的你直接送到图深度学习.还会定期更新哦. 主要是基于图深度学习的入门内容.讲述最基本的基础知识,其中包括深度学习.数学.图神 ...
- 深入理解深度学习——Transformer:整合编码器(Encoder)和解码器Decoder)
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...
- 深入理解深度学习——Transformer:解码器(Decoder)部分
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(Attention Mechanism):基础知识 ·注意力机制(Attention Mechanism):注意力汇聚与Na ...
- 深入理解深度学习——Transformer:编码器(Encoder)部分
分类目录:<深入理解深度学习>总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nada ...
- 收藏 | 一文带你深入理解深度学习最新进展
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 本文整合自机器之心.网络资源 AI博士笔记系列推荐 周志华<机 ...
最新文章
- python模块下载过程出错_尝试导入已安装的python模块时收到错误
- C# 读写文件方法总结
- 生成模型和判别模型的区别
- 代金券制作小程序秒代金券_微信小程序制作工具与方法
- 看图工具—IrfanView
- Spring Boot应用的打包和部署
- Integer 数据类型
- python messagebox弹窗退出_python 中messagebox使用 做中断调试不错
- tshark删除pcap文件中与网关通信的数据包
- 2018年全国高校教师“Python编程、应用及华为大数据”培训班
- css框模型、定位、浮动
- aqara (737) -(a俩)_绿米与万科合作?Aqara线下服务商500家,合作有保障
- 贴片铝电容识别及型号_铝电容和钽电容的区别,你们知道吗?
- Unicode与GBK互转
- STM32L051测试 (四、Flash和EEPROM的读写)
- 极简「Oauth2.0」微信网页授权教程
- PHP学习日记0_PHP、静态网页、动态网页、静态网站访问流程、动态网站访问流程
- python笔记(三):if循环语句
- 高数_第6章无穷级数
- python中文朗读_python语音朗读
热门文章
- JS获取浏览器语言 动态加载JS文件
- CSS3圆角圆边 支持IE6-IE8浏览器
- 网络中常用的三种拓扑汇聚技术
- 2023二建各科专项突破
- org.apache.maven.plugin.MojoExecutionException: protoc failure
- eclipse+tomcat开发环境 java白盒测试工具
- 菜尼奥排错之merge6 = merge([drop4,up6], mode = ‘concat‘...)TypeError: ‘module‘ object is not callable
- python 通过文件头获取文件类型mimetype
- 【ROS-3】ROS实现图像目标检测
- css零到一高级教程007:CSS 阴影效果