当前位置:网站首页>【深度学习】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的输出。
边栏推荐
猜你喜欢

个人域名备案详细流程(图文并茂)

flex布局总结

九、【Vue-Router】缓存路由组件 keep-alive标签

Analysis of the common methods and scopes of the three servlet containers

Different compilers, different modes, impact on results

抱抱脸(hugging face)教程-中文翻译-预处理

Region实战SVG地图点击
Example of file operations - downloading and merging streaming video files

微信小程序封装api

Arduino 飞鼠 空中鼠标 陀螺仪体感鼠标
随机推荐
LNK1123: Failed during transition to COFF: invalid or corrupt file
More than pytorch from zero to build neural network to realize classification (training data sets)
Welcome to use CSDN - markdown editor
WebGL探索——抉择:实践方向(twgl.js、Filament、Claygl、BabylonJS、ThreeJS、LayaboxJS、SceneJS、ThinkJS、ThingJS)
Analysis of the common methods and scopes of the three servlet containers
从数组到js基础结束
PathMeasure 轨迹动画神器
【研究生工作周报】(第八周)
The recycle bin has been showed no problem to empty the icon
ASP.Net Core实战——初识.NetCore
How to ensure that the data cannot be recovered after the computer hard drive is formatted?
C写菜单指令的快捷方法
YOLOV1详解
【小白必看】初始C语言(下)
Sequelize配置中的timezone测试
pyspark explode时增加序号
Use tensorboard remotely on the server
Inverted order at the beginning of the C language 】 【 string (type I like Beijing. Output Beijing. Like I)
深刻地认识到,编译器会导致编译结果的不同
Simply record offsetof and container_of