《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 ...
随机推荐
- my goal
I want to get a good command of a programming language at the university, and I have to pass the tes ...
- ffmpeg使用示例
/* 视频格式转换 ffmpeg -i "F:\Test\1.mp4" -y -vcodec copy -acodec copy "F:\Test\11.avi" ...
- springboot整合ueditor 前后端分离
1.下载ueditor,百度搜索ueditor,下载 前端用的是Jsp版,导入文件如下 由于要修改部分源码,所以后端用的源码版,导入文件如下 2.配置路径,用来找到json文件 配置前端ueditor ...
- C# 8.0 抢先看-- Async Stream
异步流? Async Stream 简单说来是一种非同步的迭代器模式,说更白一点就是可以await 的foreach.在过去的C# 中如果要回传一个可迭代的IEnumerable<T> , ...
- python基础 字典练习
练习1:info = [ {'wangming': { 'money':1111, 'car':['bmo','bsj'], 'info':{ 'phone':1511111, 'age':18} } ...
- swiper 父级元素display:none 之bug
问题描述: 同一个页面,点击底部tab按钮切换div的显示与隐藏,点击到第四个页面时 轮播图总是不动,出bug function start(){ var mySwiper = new Swiper( ...
- Jsoup获取全国地区数据(省市县镇村)
最近手头在做一些东西,需要一个全国各地的地域数据,从省市区到县镇乡街道的.各种度娘,各种谷歌,都没找到一个完整的数据.最后功夫不负有心人,总算找到一份相对来说比较完整的数据,但是这里的数据也只是精确到 ...
- 单例模式 | 程序员都想要探索的 Javascript 设计模式
最近打算系统的学习 Javascript 设计模式,以便自己在开发中遇到问题可以按照设计模式提供的思路进行封装,这样可以提高开发效率并且可以预先规避很多未知的问题. 先从最基本的单例模式开始 什么是单 ...
- 使用iframe框架后的页面跳转时目标页面变为iframe的子页面的问题
<frameset rows="4,200,10,*,120" cols="*" framespacing="0" framebord ...
- Linux 下使用umount强行卸载设备
卸载NFS,结果出现无法卸载的情况 [root@localhost /]# umount /udisk/ umount: /udisk: device is busy umount: /udisk: ...