自注意力机制在图像中的应用

笔者的毕设是做人脸图像的补全,开始使用经典的变分自编码器模型,能达到比较好的补全效果.后来看到BIGGAN的论文,里边他们使用了self attention提高图片生成的效果,查阅了相关资料后也在模型中加入了自注意力层,确实对补全后的图像有了显著的提升.当然了BIGGAN生成的图片能达到以假乱真的地步也不光是靠加入了自注意力层,具体可以看http://www.twistedwg.com/2018/10/02/BigGAN.html这篇博客里对BIGGAN的解读.本文主要分析为何加入自注意力层可以提高生成图片的质量以及如何实现自注意力层.

BIGGAN将自注意力层加入到模型中主要是参考的Self Attention Gan(SAGAN),它将self attention layer 加入到GAN中,使得编码器和解码器能够更好地对图像不同区域的关系进行建模.

经典的DCGAN(Deep Convolutional GAN)采用多层卷积网络构建编码器和解码器,但是这种网络的表征能力受限于邻域的 kernel size,就算后期感受野越来越大,终究还是局部区域的运算,这样就忽略了全局其他片区(比如很远的像素)对当前区域的贡献。

在图像领域,自注意力机制会学习某一像素点和其他所有位置(包括较远位置)的像素点之间的关系,即捕获long-range的关系.也就是说对于SAGAN,它会利用所有位置的特征来帮助生成图片的某一细节,使生成的图片更加逼真.

                        

对于SAGAN,首先对输入的 feature map x 进行线性映射得到  f ,  g,  h, 其中 f(x) = Wf *x,  g(x) = Wg*x. 这两个特征空间中的值将用来计算attention βj,i  = softmax( f(xi)g(xi))

βj,i 用来表示ith位置对生成jth 区域的关系权重,N是特征位置的数目.将 h 与attention点乘得到注意力层的输出结果o = (o1, o2, ..., oj ,...on)

 

                  

                                             SAGAN中的自注意力机制

其中Wf Wg W都是1×1的卷积, 最后将attention layer的结果乘以一个系数再加上原来的特征图就是最后的结果 yi = xi + γoi. 其中γ是一个可学习的参数,在训练过程中初始化为0,网络在训练初始阶段主要依赖邻域特征,之后慢慢的增大对对较远区域依赖的权重.

reference - "Self-Attention Generative Adversarial Networks"  Han Zhang,  Ian Goodfellow,  Dimitris Metaxas,  Augustus Odena, 2019

"Attention? Attention!"  Lilian Weng

      "综述---图像处理中的注意力机制"  https://blog.csdn.net/xys430381_1/article/details/89323444

原文地址:https://www.cnblogs.com/laozhanghahaha/p/12307274.html

时间: 2024-11-02 21:02:53

自注意力机制在图像中的应用的相关文章

Seq2Seq模型与注意力机制

Seq2Seq模型 基本原理 核心思想:将一个作为输入的序列映射为一个作为输出的序列 编码输入 解码输出 解码第一步,解码器进入编码器的最终状态,生成第一个输出 以后解码器读入上一步的输出,生成当前步输出 组成部件: Encoder Decoder 连接两者的固定大小的State Vector 解码方法 最核心部分,大部分的改进 贪心法 选取一种度量标准后,在当前状态下选择最佳的一个结果,直到结束 计算代价低 局部最优解 集束搜索(Beam Search) 启发式算法 保存beam size个当

[转] 深度学习中的注意力机制

from: https://zhuanlan.zhihu.com/p/37601161 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理.语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影.所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要. 人类的视觉注意力 从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制. 图1 人类的视觉注意力 视觉注意力机制是人类视觉所特有的大

各种attention注意力机制之间的比较

1.Show, Attend and Tell: Neural Image Caption Generation with Visual Attention.Kelvin Xu, Jimmy Ba, Ryan Kiros, Kyunghyun Cho, Aaron Courville, Ruslan Salakhudinov, Rich Zemel, Yoshua Bengio ; Proceedings of the 32nd International Conference on Machi

[NLP/Attention]关于attention机制在nlp中的应用总结

原文链接: https://blog.csdn.net/qq_41058526/article/details/80578932 attention 总结 参考:注意力机制(Attention Mechanism)在自然语言处理中的应用 Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射,如下图. 在计算attention时主要分为三步: 第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等: 第二步

深度学习之注意力机制(Attention Mechanism)

这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1.注意力机制是为了解决什么问题而提出来的? 2.软性注意力机制的数学原理: 3.软性注意力机制与Encoder-Decoder框架: 4.自注意力模型的原理. 一.注意力机制可以解决什么问题? 神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案.在神经网络学习中,一般而言模型的参数越多则

自注意力机制(Self-attention Mechanism)——自然语言处理(NLP)

近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中.随着注意力机制的深入研究,各式各样的attention被研究者们提出.在2017年6月google机器翻译团队在arXiv上放出的<Attention is all you need>论文受到了大家广泛关注,自注意力(self-attention)机制开始成为神经网络attention的研究热点,在各个任务上也取得了不错的效果.对这篇论文中的self-attention以及一些相关工作进行了学习

深度残差收缩网络:(四)注意力机制下的阈值设置

对于基于深度学习的分类算法,其关键不仅在于提取与标签相关的目标信息,剔除无关的信息也是非常重要的,所以要在深度神经网络中引入软阈值化.阈值的自动设置,是深度残差收缩网络的核心贡献.需要注意的是,软阈值化中的阈值,需要满足一定的条件.这篇文章中的阈值设置,事实上,是在注意力机制下进行的.下面分别介绍阈值需要满足的条件.注意力机制以及具体的阈值设置方法. (1)阈值需要满足的条件 在软阈值化中,阈值的取值有一定的要求:首先,阈值必须是正数:其次,阈值不能太大,否则输出会全部为零. 更重要的是,每个样

【CV中的Attention机制】BiSeNet中的FFM模块与ARM模块

前言:之前介绍过一个语义分割中的注意力机制模块-scSE模块,效果很不错.今天讲的也是语义分割中使用到注意力机制的网络BiSeNet,这个网络有两个模块,分别是FFM模块和ARM模块.其实现也很简单,不过作者对注意力机制模块理解比较深入,提出的FFM模块进行的特征融合方式也很新颖. 1. 简介 语义分割需要丰富的空间信息和相关大的感受野,目前很多语义分割方法为了达到实时推理的速度选择牺牲空间分辨率,这可能会导致比较差的模型表现. BiSeNet(Bilateral Segmentation Ne

《转之微信移动团队微信公众号》iOS 事件处理机制与图像渲染过程

致歉声明: Peter在开发公众号功能时触发了一个bug,导致群发错误.对此我们深表歉意,并果断开除了Peter.以下交回给正文时间: iOS 事件处理机制与图像渲染过程 iOS RunLoop都干了什么 iOS 为什么必须在主线程中操作UI 事件响应 CALayer CADisplayLink 和 NSTimer iOS 渲染过程 渲染时机 CPU 和 GPU渲染 Core Animation Facebook Pop介绍 AsyncDisplay介绍 参考文章 iOS RunLoop都干了什