计算机视觉 self attention机制

机器翻译中的 self attention机制

直观例子

先来看一个翻译的例子“I arrived at the bank after crossing the river” 这里面的bank指的是银行还是河岸呢,这就需要我们联系上下文,当我们看到river之后就应该知道这里bank很大概率指的是河岸。在RNN中我们就需要一步步的顺序处理从bank到river的所有词语,而当它们相距较远时RNN的效果常常较差,且由于其顺序性处理效率也较低。Self-Attention则利用了Attention机制,计算每个单词与其他所有单词之间的关联,在这句话里,当翻译bank一词时,river一词就有较高的Attention score。

self attention 详解

其基本结构如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
显然,当前单词与其自身的attention score一般最大,其他单词根据与当前单词重要程度有相应的score。然后我们在用这些attention score与value vector相乘,得到加权的向量。
在这里插入图片描述
如果将输入的所有向量合并为矩阵形式,则所有query, key, value向量也可以合并为矩阵形式表示
在这里插入图片描述
在这里插入图片描述

以上是机器翻译中所使用的self attention 机制,计算机视觉所使用的self attention 机制思想与之类似,是为了捕捉远距离的像素之间的关系。

计算机视觉中的self attention 的应用

先来看一个例子,将attention 加权在原图上
图1 Spatial Attention和Appearance Attention
图1 Spatial Attention和Appearance Attention
《Hierarchical Attentive Recurrent Tracking》结合Attention机制和LSTM循环结构提出了一个目标跟踪的方法HART。图1展示了Attention应用的效果,HART主要定义了两个Attention概念,Spatial attention和Appearance attention。输入一张图片如图1上半部分,Spatial attention用于获取图片中物体的位置,获取结果如图1(a), 然后应用Appearance attention进一步分析物体外观特征从而去除图1(a)中的少量背景信息,从而获得了图1©,这样可以更精确地学习到物体的位置和外观特征。

我们可以发现卷积本身就有Attention的效果,比如,在分类网络中高层的feature map所激活的pixel恰好集中在与分类任务相关的区域。
然而CNN中的 convolution单元每次只关注邻域 kernel size 的区域,就算后期感受野越来越大,终究还是局部区域的运算,这样就忽略了全局其他片区(比如很远的像素)对当前区域的贡献。

由此在cv领域,一篇关于Attention研究非常重要的文章《Non-local Neural Networks》在捕捉长距离特征之间依赖关系的基础上提出了一种非局部信息统计的注意力机制——Self Attention。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考:
https://zhuanlan.zhihu.com/p/44031466
https://zhuanlan.zhihu.com/p/53155423

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值