SAGAN——Self-Attention Generative Adversarial Networks

原论文下载地址:Self-Attention Generative Adversarial Networks

该文章作者为:Han Zhang

GitHub代码实现:pytorch实现

摘要部分:

本文提出了Self-Attention Generative Adversarial Networks,在注意力机制,远距离依赖(long-range dependency)下来实现了图片生成任务。(1)传统的卷积GAN网络,是通过低分辨率图像中的空间局部点来生成高分辨率细节特征。 而在SAGAN中,可以使用根据所有位置的提示来生成详细信息。(2)因为判别器可以检查图像的远端部分中的高度详细的特征是否彼此一致。而最近的研究表明,对生成器进行有效的调节可以影响GAN网络的性能,所以我们在GAN网络的generator中加入了光谱正则化(spectral normalization)。最终达到了比较好的效果。

提出问题:

convolutional GANs have much more difficulty modeling some image classes than others when trained on multi-class datasets . For example, while the state-of-the-art ImageNet GAN model  excels at synthesizing image classes with few structural constraints (e.g. ocean, sky and landscape classes, which are distinguished more by texture than by geometry), it fails to capture geometric or structural patterns that occur consistently in some classes (for example, dogs are often drawn with realistic fur texture but without clearly defined separate feet)。

在多种类别的数据集上训练时,卷积GAN网络比其他图像类更难以建模,也就是说GAN网络很容易合成具有少量结构约束的图像(像星空,海洋...),

在目前的图像生成模型中,一般很难处理好细节和整体的权衡

可能原因:

对此的一种可能解释是先前的模型严重依赖于卷积来模拟不同图像区域之间的依赖性。由于卷积运算符具有局部感受域,因此只能在经过多个卷积层之后处理长距离依赖性(long-range dependency)。这可能会因各种原因阻止学习长期依赖性:

(1)小型模型可能无法找到他们之间的依赖关系;

(2)优化算法可能无法发现仔细协调多个层以捕获这些依赖性的参数值;

(3)增加卷积核的大小可以增加网络的表示能力,但是又会丧失卷积网络的参数和计算效率。

解决办法-即SAGAN的优点:

self-attention 在模拟远程依赖性的能力、计算效率和统计效率之间展现出更好的平衡。自我关注模块将所有位置处的特征的加权和作为该位置的响应,其中权重 - 或注意向量 - 仅以较小的计算成本来计算。

我们提出了自我注意生成对抗网络(SAGAN),它将self-attention机制引入卷积GAN。

(1)可以很好的处理长范围、多层次的依赖(可以很好的发现图像中的依赖关系)

(2)生成图像时每一个位置的细节和远端的细节协调好

(3)判别器还可以更准确地对全局图像结构实施复杂的几何约束。

SAGAN:(参考了 https://blog.csdn.net/mx54039q/article/details/80896054

文中提到大多数GAN用的都是卷积层,而卷积层只能够处理局部的信息,所以本文中采用了一种non-local model,是的生成器和判别器能够有效地构建各个区域之间的关系。

                                             self-attention 机制

(1)f(x),g(x)和h(x)都是普通的1x1卷积,差别只在于输出通道大小不同;

(2)将f(x)的输出转置,并和g(x)的输出相乘,再经过softmax归一化得到一个Attention Map;

(3)将得到的Attention Map和h(x)逐像素点相乘,得到自适应的注意力feature maps.

                                                             参数的含义

(1)f(x)的输出[C/8, W, H], g(x)的输出[C/8, W, H],为了适应矩阵乘法,文中将一个feature map的长和宽flat成一个N维的向量          (N = W x H),即f(x)和g(x)的输出为[C/8, N];

(2)将f(x)的转置和g(x)矩阵乘,得到的输出S为一个矩阵[N, N],S矩阵可以看做一个相关性矩阵,即长H宽W的feature map上          各个像素点之间的相关性;

(3)将S矩阵逐行用Softmax归一化得到\beta矩阵,每一行(长度为N的向量)代表了一种Attention的方式;

(4)将这N种Attention的方式应用到h(x)上,即每一个像素点都与整个feature map相关,相关性来自于\beta矩阵,得到N个新的像素点作为输出O;

最终的输出为:

                                                   

其中\gamma初始化为0,然后逐渐的给 non-local分配更多的权重,

而这样做的原因是因为:我们想一开始学习一些简单的任务,然后再不断地增加复杂的任务。在SAGAN中,我们提出的注意力模型用在了generator模型和discriminator模型中,最后使用交替训练的方式来最小化adversarial loss。

稳定训练GAN的一些技巧:

(1)Spectral normalization for both generator and discriminator
         有效地降低了训练的计算量,使得训练更加稳定。

(2)Imbalanced learning rate for generator and discriminator updates
         two-timescale update rule (TTUR
         在训练过程中,给予G和D不同的学习速率,以平衡两者的训练速度

实验结果:

(1)用来评估所使用的两个tricks

(2)评估 Self-attention 机制

  • 8
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: SAGANSelf-Attention GAN)是PyTorch中的一种生成对抗网络架构,用于生成逼真的图像。它主要利用了自注意力机制来提高生成器和判别器之间的信息交互。下面将对SAGAN做一个简要的介绍。 在传统的GAN中,生成器和判别器之间的信息传递是通过共享梯度来实现的。然而,这种方式很难让生成器和判别器得到足够的全局信息,因此可能导致生成图像的一些问题,如模糊或不清晰。 SAGAN通过引入自注意力机制来解决这个问题。自注意力机制允许网络在不同位置之间获取全局信息,从而更好地理解不同区域之间的关系。具体来说,自注意力机制在计算特征图中每个位置的像素时,将其与其他位置的所有像素进行比较并计算一个权重,用于指示该位置如何与其他位置进行关联。这样,生成器和判别器就可以更好地利用全局信息。 在SAGAN中,生成器和判别器都采用了自注意力机制。生成器使用自注意力机制来生成更具吸引力和详细的图像。判别器使用自注意力机制来从全局角度评估图像的真实性。通过使生成器和判别器都具备自注意力机制SAGAN能够更好地捕捉图像中的全局结构和细节特征。 总结来说,SAGAN是PyTorch中的一种生成对抗网络架构,通过引入自注意力机制来提高生成器和判别器之间的信息交互。它能够更好地理解图像中的全局结构和细节特征,从而生成更逼真的图像。 ### 回答2: SAGAN是指Self-Attention Generative Adversarial Networks,是基于PyTorch开发的一种深度生成对抗网络模型。 SAGAN模型引入了自注意力机制,旨在增强生成模型对全局和局部特征的理解能力。通过自注意力机制,模型能够在生成过程中动态地对输入数据的不同位置进行加权处理,更加准确地捕捉图像中的重要信息。这种机制有助于生成模型解决传统GAN模型在生成高分辨率图像中遇到的困难。 SAGAN使用了一个判别器网络和一个生成器网络。生成器网络接受一个随机噪声向量作为输入,并通过一系列的转置卷积层将其逐渐转化为生成的图像。而判别器网络则通过卷积层和自注意力层来对真实图像和生成的图像进行区分。 在SAGAN中,自注意力层使用一个矩阵乘法运算来计算输入信号之间的相关性,得到特定位置的特征权重。通过将这些权重与输入特征相乘并相加,自注意力层能够将更多的注意力放在重要的图像区域上,从而增强模型的生成效果。 SAGAN的另一个关键特点是采用了谱归一化技术,它能够有效地稳定训练过程。这项技术通过对权重矩阵进行限制,保证了生成器和判别器之间的特征表示的稳定性,从而提高了模型的生成质量。 总的来说,SAGAN是一种基于PyTorch框架开发的深度生成对抗网络模型,通过引入自注意力机制和谱归一化技术,增强了生成模型的学习能力和生成效果。该模型在图像生成任务中具有较好的性能,并有望在图像合成、图像转换等领域发挥重要作用。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值