公众号关注 “视学算法”

设为 “星标”,消息即可送达!

来自 | 知乎  作者 | Fisher Yu余梓彤

链接 | https://zhuanlan.zhihu.com/p/44031466

本文仅作学术交流,若侵权,请联系删文处理

Attention注意力,起源于Human visual system(HVS),个人定义的话,应该类似于 外界给一个刺激Stimuli,然后HVS会第一时间产生对应的 saliency map,注意力对应的应该就是这个显著性区域。

这其中就涉及很多 bottom-up 及 top-down 的 physiological 原理~

-------------------------------

总的来说,就是 区域权值学习 问题:

1. Hard-attention,就是0/1问题,哪些区域是被 attentioned,哪些区域不关注

2. Soft-attention,[0,1]间连续分布问题,每个区域被关注的程度高低,用0~1的score表示

Self-attention自注意力,就是 feature map 间的自主学习,分配权重(可以是 spatial,可以是 temporal,也可以是 channel间)


[1] Non-local NN, CVPR2018

FAIR的杰作,主要 inspired by 传统方法用non-local similarity来做图像 denoise

主要思想也很简单,CNN中的 convolution单元每次只关注邻域 kernel size 的区域,就算后期感受野越来越大,终究还是局部区域的运算,这样就忽略了全局其他片区(比如很远的像素)对当前区域的贡献。

所以 non-local blocks 要做的是,捕获这种 long-range 关系:对于2D图像,就是图像中任何像素对当前像素的关系权值;对于3D视频,就是所有帧中的所有像素,对当前帧的像素的关系权值。

网络框架图也是简单粗暴:

Non-local block

文中有谈及多种实现方式,在这里简单说说在DL框架中最好实现的 Matmul 方式:

  1. 首先对输入的 feature map X 进行线性映射(说白了就是 1*1*1 卷积,来压缩通道数),然后得到  特征

  2. 通过reshape操作,强行合并上述的三个特征除通道数外的维度,然后对  进行矩阵点乘操作,得到类似协方差矩阵的东西(这个过程很重要,计算出特征中的自相关性,即得到每帧中每个像素对其他所有帧所有像素的关系)

  3. 然后对自相关特征 以列or以行(具体看矩阵  的形式而定) 进行 Softmax 操作,得到0~1的weights,这里就是我们需要的 Self-attention 系数

  4. 最后将 attention系数,对应乘回特征矩阵  中,然后再上扩 channel 数,与原输入 feature map X 残差一下,完整的 bottleneck

嵌入在 action recognition 框架中的attention map 可视化效果:

attention visulization

图中的箭头表示,previous 若干帧中的某些像素 对最后图(当前帧)的脚关节像素的贡献关系。由于是soft-attention,其实每帧每个像素对对其有贡献关系,图中黄色箭头是把响应最大的关系描述出来。

总结

Pros:non-local blocks很通用的,容易嵌入在任何现有的 2D 和 3D 卷积网络里,来改善或者可视化理解相关的CV任务。比如前不久已有文章把 non-local 用在 Video ReID [2] 的任务里。

Cons:文中的结果建议把non-local 尽量放在靠前的层里,但是实际上做 3D 任务,靠前的层由于 temporal T 相对较大,构造  及点乘操作那步,超多的参数,需要耗费很大的GPU Memory~ 可后续改善


[3] Interaction-aware Attention, ECCV2018

美图也刷文章了。。。

这文章扯了很多 Multi-scale 特征融合,讲了一堆 story,然并卵;直接说重点贡献,就是在 non-local block 的协方差矩阵基础上,设计了基于 PCA 的新loss,更好地进行特征交互。作者认为,这个过程,特征会在channel维度进行更好的 non-local interact,故称为 Interaction-aware attention

那么问题来了,怎么实现 通过PCA来获得 Attention weights呢?

文中不直接使用 协方差矩阵的特征值分解 来实现,而是使用下述等价形式:

根据上面公式约束,设计了Interaction-aware loss 来增强channel间的non-local交互:

其中 A 为需要学习的 attention weights,X 为输入的 feature map

------------------------------------------------------

整体的Attention Block框架图和 non-local 基本一致:

~ 有点小区别是,在 X 和 Watten 点乘后,还加了个 b 项,文中说这里可看作 data central processing (subtracting mean) of PCA

动作识别的主网络就与non-local中直接使用 I3D 不同,这里是使用类似 TSN 的采样Segment形式输入,然后使用2D网络提特征,再统一在Attention block进行时空聚合

[4] CBAM: Convolutional Block Attention Module, ECCV2018

这货就是基于 SE-Net [5]中的 Squeeze-and-Excitation module 来进行进一步拓展,

具体来说,文中把 channel-wise attention 看成是教网络 Look 'what’;而spatial attention 看成是教网络 Look 'where',所以它比 SE Module 的主要优势就多了后者

------------------------------------

我们先看看 SE-module:

SE-module

流程:

  1. 将输入特征进行 Global AVE pooling,得到 1*1* Channel

  2. 然后bottleneck特征交互一下,先压缩 channel数,再重构回channel数

  3. 最后接个 sigmoid,生成channel 间0~1的 attention weights,最后 scale 乘回原输入特征

-----------------------------------

再看看 CBAM :

CBAM

Channel Attention Module,基本和 SE-module 是一致的,就额外加入了 Maxpool 的 branch。在 Sigmoid 前,两个 branch 进行 element-wise summation 融合。

Spatial Attention Module, 对输入特征进行 channel 间的 AVE 和 Max pooling,然后 concatenation,再来个7*7大卷积,最后 Sigmoid


[6] DANet, CVPR2019

很早挂在arXiv,最近被CVPR2019接收,把Self-attention的思想用在图像分割,可通过long-range上下文关系更好地做到精准分割。

主要思想也是上述文章 CBAM 和 non-local 的融合变形:

把deep feature map进行spatial-wise self-attention,同时也进行channel-wise self-attetnion,最后将两个结果进行 element-wise sum 融合。

Dual Attention Network[6]

这样做的好处是:

在 CBAM 分别进行空间和通道 self-attention的思想上,直接使用了 non-local 的自相关矩阵 Matmul 的形式进行运算,避免了 CBAM 手工设计 pooling,多层感知器 等复杂操作。


总的来说,上述几个Attention module很容易嵌入到现有的网络框架中,而 CBAM 特别轻量级,也方便在端部署,也可再cascade一下temporal attention,放进 video 任务里用~~

估计后续学术界会有很多基于它们的变形和应用,哈哈~

几篇较新的计算机视觉Self-Attention相关推荐

  1. 一种新的计算机视觉技术?将手机的摄像头变成了一个搜索引擎

    https://www.toutiao.com/a6698870195391300099/ 智能手机,安全摄像头和扬声器仅仅是行将运行更加人工智能软件以加快图像和语音处置使命的装备中的一小部分.增添硬 ...

  2. 全球30篇最热门的计算机视觉和深度学习论文

    全球30篇最热门的计算机视觉和深度学习论文 2016-06-23分类:机器学习评论(0) 大数据交流QQ群,汇聚2万大数据爱好者.加入,开启你的数据江湖!! 这是一份被国外专家引用最多的计算机视觉和深 ...

  3. DataFountain新上计算机视觉比赛-20万巨奖数钢筋

    点击我爱计算机视觉标星,更快获取CVML新技术 DataFountain今日新上计算机视觉技术比赛!总奖池20万人民币. 赛题名称 智能盘点-钢筋数量AI识别 赛题背景 在工地现场,对于进场的钢筋车, ...

  4. 全球每天产生100篇机器学习新论文!谷歌大脑负责人Jeff Dean发推引热议,网友:太浪费时间...

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 做机器学习研究,少不了紧跟学界前沿动态,但你知道需要留多长时间才能跟完新研究么? Google AI大牛.谷歌大脑负责人Jeff Dean, ...

  5. 备考计算机国一国二的文章,2020国家电网计算机类第二篇:新大纲如何备考

    原标题:2020国家电网计算机类第二篇:新大纲如何备考 [山西中公国企]今天小编给大家带来2020国家电网计算机类第二篇:新大纲如何备考.山西中公国企(sxgqzp)微信公众号为您持续导航~ 根据对近 ...

  6. HCP Lab 12篇论文入选世界顶级计算机视觉会议 CVPR 2019

    本文由中山大学人机物智能融合实验室(HCP Lab)特约供稿.全球计算机视觉三大顶会之一 CVPR 2019 (IEEE Conference on Computer Visionand Patter ...

  7. FaceBook开源PyTorch3D:基于PyTorch的新3D计算机视觉库

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! PyTorch 进军三维计算机视觉了,现在,你的神经网络可以更轻松地和 3D 数据 ...

  8. 自制app(游戏)Please Go之上传头像篇----萌新成长之路

    自制app(游戏)Please Go之上传头像篇 最近在自己开发一个自己想出来的游戏(大家可以猜猜是一款什么游戏~),想一边学习一边巩固,所以在这里把项目里面用到的功能分模块写在博客里面.希望有些地方 ...

  9. Python3《机器学习实战》学习笔记(五):朴素贝叶斯实战篇之新浪新闻分类

    转载请注明作者和出处:http://blog.csdn.net/c406495762 Github代码获取:https://github.com/Jack-Cherish/Machine-Learni ...

最新文章

  1. R语言ggplot2可视化:通过在element_text函数中设置ifelse判断条件自定义标签文本的显示格式:例如、粗体、斜体等
  2. mysql导入导出数据库
  3. 使用QQ截图取色的方法
  4. 如何使用Autopano Video Pro进行全景视频拼接?
  5. AOP的实现机制--转
  6. Log binomial 回归在队列中的应用
  7. windows系统上openssh client的离线安装
  8. php mailer altbody,PHPMailer发送邮件中文乱码的解决办法
  9. Java实现文件复制
  10. 栈的应用c语言计算器思路,请问,用c语言做一个计算器 包括+-*/()的运算 用栈 该怎么做...
  11. python棋盘放麦粒_从零开始学习PYTHON3讲义(五)while循环和棋盘麦粒问题
  12. What is yield
  13. 【以前的空间】网络流合集
  14. 【我的Android进阶之旅】 解决Android编译出现问题:AAPT: error: resource string/xxx (aka xxx:string/xxx) not found.
  15. 通俗易懂的通用excel导出
  16. 如何在离开计算机后加密锁定,如何对企业电脑硬盘文件进行加密?
  17. mysql 行转列case when_mysql行转列利用casewhen_MySQL
  18. 计算机等级考试培训课件,全国计算机等级考试培训课件.ppt
  19. 从零开始的Nginx详解(3)【Nginx-Https服务配置详解】
  20. 基于JavaEE的大学生公寓管理系统

热门文章

  1. LeetCode实战:整数反转
  2. 什么是自组织特征映射网络?
  3. php upload ctf,强网杯CTF防御赛ez_upload Writeup
  4. Meta 研发触觉手套助力元宇宙,虚拟世界也可以有触觉
  5. 实战:使用 Mask-RCNN 的停车位检测
  6. 张一鸣卸任CEO,立下10年之约,期望突破线性延伸
  7. 中文版开源!这或许是最经典的Python编程教材
  8. 我用Python破解了同事的加密压缩包
  9. 大战三回合:XGBoost、LightGBM和Catboost一决高低 | 程序员硬核算法评测
  10. Facebook频谱图模型生成比尔·盖茨声音,性能完胜WaveNet、MAESTRO