《Self-Attention Generative Adversarial Networks》里的注意力计算
前天看了 criss-cross 里的注意力模型 仔细理解了 在: https://www.cnblogs.com/yjphhw/p/10750797.html
今天又看了一个注意力模型 《Self-Attention Generative Adversarial Networks》 https://arxiv.org/pdf/1805.08318v1.pdf
里边关键的还是注意力机制,又花了一个小时理解了下,感觉这种方式能够带来另一种视野的扩大,其中cnn是通过不断卷积扩大视野。
而这种注意力模型直接通过内积(矩阵的乘法)和 线性组合来直接获取全局信息,作者们都认为是注意力! 是否有其他含义还需要进一步理解。
这篇文章里关键就是注意力的产生:

这里边的操作 圆圈里的差 就是值得矩阵乘法。 整个这种注意力机制的论文多起来, 经典的style tranfer的论文也是用类似的方法计算风格损失的 格莱姆矩阵
下面就从输入x开始, x是个 c*w*h的 特征图 论文里写 c*n 是因为把w*h 展开了 。
然后三路 1*1卷积,没问题,这个操作可以先不展开。
这里我们用不展开的方式 先描述 f(x)和g(x)做 c`*1*1的卷积, h(x)是 做 c*1*1的卷积
做完后 对f(x),g(x) 在空间维度上拉开 w*h 拉开为 n=w*h
黄色的就是 c`*n 绿色也是 c`*n 大小的矩阵
对黄色的转置 就是 n*c` 然后 和绿色的就能做矩阵乘法
得到一个 n*n的矩阵。下边为了归一化参数,在列的方向上做softmax。得到了一个n*n的注意力矩阵,为什么在列方向上归一化,这是因为为了下一步和h(x)的特征图相乘
h(x)是经过 c*1*1的卷积操作,对输入x进行了一次变换的来的,同样对其拉开就成了一个 c*n的矩阵
刚才得到的注意力矩阵式n*n的,并且在列上归一化了, 所以 h(x)* attention 得到一个 (c*n) *(n*n)= c*n 大小的矩阵。
然后恢复 c*n 到 c*w*h就可以。
这样就可以看到这完全就是对每个位置和所有位置进行加权,一下子具有全局感受视野,而且每个位置的权值不同。
这可以细细体会下,这样的操作到底代表了什么。
卷积是扩大视野的方法,这种操作直接一步到位获取了全局视野。
和criss-cross的方法是在通道上,这个直接是在通道内。不太确定。
之前还有squeeze 和 excitation的注意力方法
如何结合起来,是否可以用在分类上,提升分类精度? 值得思考。
《Self-Attention Generative Adversarial Networks》里的注意力计算的更多相关文章
- AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记
AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks 笔记 这 ...
- SAGAN:Self-Attention Generative Adversarial Networks - 1 - 论文学习
Abstract 在这篇论文中,我们提出了自注意生成对抗网络(SAGAN),它是用于图像生成任务的允许注意力驱动的.长距离依赖的建模.传统的卷积GANs只根据低分辨率图上的空间局部点生成高分辨率细节. ...
- Generative Adversarial Networks overview(2)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...
- Generative Adversarial Networks overview(1)
Libo1575899134@outlook.com Libo (原创文章,转发请注明作者) 本文章会先从Gan的简单应用示例讲起,从三个方面问题以及解决思路覆盖25篇GAN论文,第二个大部分会进一步 ...
- GD-GAN: Generative Adversarial Networks for Trajectory Prediction and Group Detection in Crowds
GD-GAN: Generative Adversarial Networks for Trajectory Prediction and Group Detection in Crowds 2019 ...
- StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记
StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 本文将利 ...
- 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks
Semi-Supervised Learning with Generative Adversarial Networks 引言:本文将产生式对抗网络(GAN)拓展到半监督学习,通过强制判别器来输出类 ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- (转)Introductory guide to Generative Adversarial Networks (GANs) and their promise!
Introductory guide to Generative Adversarial Networks (GANs) and their promise! Introduction Neural ...
随机推荐
- docker学习常用指令---第五章节
前面我们了解了docker的基本概念,和docker镜像,端口相关的内容.在具体的实际操作过程中,我们需要了解一些相关的docker操作指令. 一.Docker save指令 指令功能:将指定镜像保存 ...
- java上传图片
-- jsp 一定要加上enctype="multipart/form-data" method="post" 不加无法辨别是否是上传表单的数据 <fo ...
- oracle 查询年月日连在一起
SELECT B.YEAR || replace(lpad(B.MONTH, 2), ' ', '0') || replace(lpad(B.WEEK, 2), ' ', '0') from TT_U ...
- mac安装破解的Navicat
原文:https://www.jianshu.com/p/f42785e55b6b 原始文档没操作成功,折腾了一下午,后来在如下地址看的简洁版的,突然发现一句重要的话,豁然开朗. 原文链接:https ...
- mysql导出导入数据无权限
问题:The MySQL server is running with the --secure-file-priv option so it cannot execute this statemen ...
- 在Linux系统上安装Oracle数据库
前期准备:我用的是虚拟机上的CentOS 64位系统.所以需要设置网卡,时间,EPEL源,安装一些必备的软件. 1.1在虚拟机上安装好Linux系统后选择虚拟机设置—>网络适配器—>网络连 ...
- Windows MySQL测试数据库employees的导入
一: 首先下载employees测试数据库 https://launchpad.net/test-db/ 二:用文本编辑器打开其中的employees.sql文件,将第38行的set storage_ ...
- Strongly connected components
拓扑排列可以指明除了循环以外的所有指向,当反过来还有路可以走的话,说明有刚刚没算的循环路线,所以反过来能形成的所有树都是循环
- python面试题收集
1.请问如何修改以下Python代码,使得下面的代码调用类A的show方法? class A(object) def show(self): print 'derived show' class B( ...
- npm 镜像源替换为淘宝镜像
1.查询配置的镜像源地址: npm get registry 2.配置为淘宝镜像源 npm config set registry http://registry.npm.taobao.org/ 3. ...