当前位置:网站首页>【深度学习】attention机制
【深度学习】attention机制
2022-08-09 14:56:00 【Florrie Zhu】
attention机制
注意力机制:忽略无关信息而关注重点信息
软注意力(soft attention): 更关注区域或通道,学习完后直接可以通过网络生成。重要的是可微分的!
强注意力(hard attention): 更关注点,图像中的每个点都可能延伸出注意力,是一个随机的预测过程,强调动态变化,最关键的是不可微分的,训练过程中往往需要通过增强学习来完成。
1.self-attention机制
由于卷积核作用的感受野是局部的,要经过累积很多层之后才能把整个图像不同部分的区域关联起来。所以Hu等人提出SENet,从特征通道层面上统计图像的全局信息。
self- attention上从NLP中借鉴的思想,保留了Query、key和value等名称。下图是基本结构。

self-attention结构自上而下分为三个分支:query、key和value,计算分成三步:
- 将query和每个key进行相似度计算得到权重,相似度函数有点积,拼接,感知机等
- 使用一个softmax函数对这些权重进行归一化
- 将权重和相应的键值value进行加权求和得到最后的attention
2.Non-local Neural network(非局部信息统计的注意力机制)
CNN在统计全局信息时存在的问题:
- 捕获长范围特征依赖很多层网络,导致学习效率低
- 由于网络需要累积很深,则设计模块和梯度时需要谨慎
- 当需要在比较远的位置之间来回传递信息,卷积或时序局部操作很困难
Non-local 是借鉴了滤波中非局部均值滤波的思想,设计一个非局部操作算子。其通用公式如下:
y i = 1 C ( x ) ∑ j f ( x i , x j ) g ( x j ) y_i=\frac{1}{C(x)}\sum_j f(x_i,x_j)g(x_j) yi=C(x)1j∑f(xi,xj)g(xj)
其中,x是输入信号,CV中使用的一般是feature map,i 代表的是输出位置,如空间、时间或者时空的索引,他的响应应该对j进行枚举然后计算得到的,f 函数式计算i和j的相似度,g 函数计算feature map在j位置的表示,最终的y是通过响应因子C(x) 进行标准化处理以后得到的。
上述的思想,可以表示出:i代表当前位置的响应,j代表全局响应,通过加权得到一个非局部的响应值
Non-local block如下图。
- 首先对输入的 feature map X 进行线性映射(用 111 卷积,来压缩通道数),然后得到 θ,φ,g 特征;
- 通过reshape操作,强行合并上述的三个特征除通道数外的维度,然后对θ和φ进行矩阵点乘操作,得到类似协方差矩阵的东西(这个过程很重要,计算出特征中的自相关性,即得到每帧中每个像素对其他所有帧所有像素的关系);
- 然后对自相关特征进行 Softmax 操作,得到0~1的weights,这里就是我们需要的 Self-attention 系数;
- 最后将 attention系数,对应乘回特征矩阵 g 中,然后再上扩展channel数(1*1卷积),与原输入 feature map,X 做残差运算,获得non-local block的输出。
边栏推荐
猜你喜欢
随机推荐
链表翻转 全翻转 部分翻转
AsyncTask 串行还是并行
Inverted order at the beginning of the C language 】 【 string (type I like Beijing. Output Beijing. Like I)
众所周知亚马逊是全球最大的在线电子商务公司。如今,它已成为全球商品种类最多的在线零售商,日活跃买家约为20-25亿。另一方面,也有大大小小的企业,但不是每个人都能赚到刀! 做网店的同学都知道,
微信小程序禁止页面左右滑动
cropperjs裁剪上传头像使用方法
PAT1027 打印沙漏
NLP-阅读理解任务学习总结概述
(13)Filter过滤器
Noun concept summary (not regularly updated ~ ~)
Use tensorboard remotely on the server
NetCore 5.0连接MySql
The difference between show and exec in Qt dialog
分类任务系列学习——总述
Retrofit2 初印象?
A shortcut method for writing menu commands in C
LNK1123: Failed during transition to COFF: invalid or corrupt file
keras使用class weight和sample weight处理不平衡问题
实现一个支持请求失败后重试的JS方法
响应式布局总结








