参考:
一文看懂 Attention(本质原理+3大优点+5大类型) - 简书
【论文阅读】深入理解Attention机制_一的千分之一的博客-CSDN博客_attention机制
什么是Attention(注意力机制)?_小ai同学1号的博客-CSDN博客_什么是attention
【深度学习】Attention的理解_littlemichelle的博客-CSDN博客_如何理解attention
概念:
Atention它可以从复杂的信息中找出对当前输出最重要的部分。即学习权重分布:输入数据或特征图上的不同部分对应的专注度不同。
Attention 原理:
给定很多组key和value,以及一个目标向量query,通过计算query与每一组key的相似性,得到每个key的权重系数,然后将权重和 value 进行加权求和,得到最终的attention数值。图和公式如下:
第一步: query 和 key 进行相似度计算,得到权值
第二步:将权值进行归一化,得到直接可用的权重
第三步:将权重和 value 进行加权求和
Attention的计算过程:
1. 根据Query和key计算权重系数;
① 根据Query和Key计算相似性:相似度的计算可用点积、cosine相似性、MLP网络等计算
② 对①的原始分值进行归一化处理:如SoftMax
2.根据权重系数对value就行加权求和
整个计算过程可表示成下图:
Attention进化形式
Attention有许多进化形式,例如self--attention,自注意力机制,它只关注输入序列元素之间的关系,通过将输入序列,直接转化为Q\K\V,再内部进行Attention计算,就能很好的捕捉文本的内在联系,对其做出再表示。
另一种进化形式就是Multi-Head Attention,多头注意力机制,是在自注意力的基础上,使用多种变换,生成Q、k、v进行计算,再将它们对相关性的结论综合起来,进一步增强self--attention的效果,借助transformer、bert等形式,attention在自然语言处理领域大放异彩。
事实上,Attention最开始诞生于机器视觉领域,无论是图片分类、图片描述还是视频描述,它都能在输出结论时指出它所注意到的图像,可解释性好。