注意力机制Attention Mechanism的数学原理
2021/12/17 23:26:11
本文主要是介绍注意力机制Attention Mechanism的数学原理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
最近在写一东西,有在看注意力机制,将其数学原理总结一下。
神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案。即是在注意给定任务中更加关键的信息,而可以适当的忽略不重要信息,从而提高任务处理的效率。
注意力机制可分为下面展示一些 软注意力(Soft-Attention)
和 硬注意力(Hard-Attention)
。可理解为对于N个输入信息 X=[x1,x2,...,xN]
,硬注意力机制往往在这N个输入信息种选取某一个(随机选择或选取概率最高的);而软注意力是考虑了N个输入,计算N个输入信息的加权平均。故在很多深度学习任务中采用软注意力机制,下文都是针对软注意力机制展开的。
1 注意力机制的数学原理
注意力机制的计算步骤
- 对所有输入信息计算其
注意力分布
- 根据注意力分布计算
Attention值
接下来分别解释一下注意力分布
和Attention值
1.1 基本形式(X Q)
对于N个输入信息 X=[x1,x2,...,xN]
,q
为查询向量,定义注意力变量z∈[1,N]
表示被选择信息的索引位置即x的下标。
① 对所有输入信息计算其注意力分布
αi
表示在给定查询q时,输入信息向量X中第i个信息与查询q的相关程度
由此有:
其中σi构成的概率向量就称为注意力分布
s(xi,q)
是注意力打分函数,有以下几种形式:
看的文章中缩放点积形式用的比较多,d是维度,W、U、v是网络学习出来的参数
② 根据注意力分布计算Attention值
1.2 键值对 形式(K V Q)
键值对形式是将基本形式中的输入信息向量X由(K,V)表示,那么N个输入信息就可以表示为(K, V)= [(k1,v1),(k2,v2),...,(kN,vN)]
,其中“键”K用来计算注意分布σi,“值”V用来计算聚合信息。
① 根据Query和Key计算二者的相似度
这里就是通过打分模型,计算出注意力得分
si = F(Q,ki)
② 用softmax函数对注意力得分进行数值转换
③ 根据权重系数对Value进行加权求和:
整个过程如下图所示:
这篇关于注意力机制Attention Mechanism的数学原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享