关于注意力机制,谷歌的一篇论文给出了注意力机制的定义:给定一个Query和一系列的Key-Val对一起映射出一个输出。它包含下面三个关键性步骤:
- 将Query与Key进行相似性度量
- 将求得的相似性度量进行缩放标准化
- 将权重与value进行加权
用公式描述:
上述定义源自谷歌2017年发表的《Attention is all you need》。它是基于序列到序列应用出发的而提出的定义。但是上述定义对于CV应用而言过于抽象,难以理解。
视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需关注目标的细节信息,而抑制其他无用信息。
这是人类利用有点的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大的提高了视觉信息处理的效率与准确性。Fig Att-2形象的展示了人类在看到一幅图像时是如何高效分配有限的注意力资源的,其中红色区域表明视觉系统更关注的目标,很明显对于Fig Att-2所示的场景,人们会更多注意力投入到人的脸部、文本标题以及文章首句等位置。
那么,是不是可以这样理解:Attention是为了对特征进行权重重分配?在无Attention机制下,我们可以认为输入的每个特征对于输出的每个特征作用是相同的,而Attention则是为了进一步区分特征的不同重要性,为其赋予不同的注意力权值强调不同特征的重要性。
比有一个一维向量
,常规的特征映射可以描述为
。但是,我们可能认为
的作用更大,希望为其赋予更多的权重,希望通过
的值对齐进行“弥补”,即需要求得一组权值
对输入进行加权平均来得到