SA-GAN(Self-Attention GAN)学习笔记

在做text2image GAN时候做文献阅读时看到的SAGAN,这里做一个简要得学习笔记,欢迎纠错讨论。

Self-Attention Generative Adversarial Networks (SAGAN)

SAGAN在ImageNet可到达36.8的Inception Score 和 18.65的Frechet Inception Distance。也是BIG-GAN的原型。

传统卷积GAN问题:

受局部感受野限制(Local Receptive Field),无法提取全局信息,只能提取local neighborhood(比如狗的毛色不匹配,人脸位置不协调这些全局结构强的任务中)。

  • 模型太小无法描述
  • 优化算法很难发现参数

SA-GAN采用  self-attention(全局特征) 机制和传统 convolution(局部特征)结合,能对长范围多层次的图像区域建模,提供一种利用全局信息方法。

使每个位置的精细细节与远处进行协调,也能解决复杂的几何约束。

使用Spectral Normalization 在Generator上。

Self-Attention

附上原论文self-attention module图,⊗是矩阵乘法,每一行都进行softmax。

SA-GAN(Self-Attention GAN)学习笔记_第1张图片

结合这张图简单看一下过程:

从上一层卷积层输入进来的x首先进入两个特征空间 f(x) 和 g(x) 去计算attention

这里f(x)=W_{f}xg(x)=W_{g}x

然后计算\beta\beta是合成第j个区域时,模型位于第i个位置的程度(有点绕),就是图里的softmax之后生成的attention map

公式是:\beta_{j,i}=softmax(s_{ij}),where s_{i,j}=f(x_i)^Tg(x_j)

最后生成attention layer:o(v(x)那里)

公式是:o_j=v(\sum_{i=1}^{N}\beta_{j,i}h(x_i)), h(x_i)=W_{h}x_i,v(x_i)=W_vx_i

最后在通过一个y_i=\gamma o_i+x_i, γ是学习参数,初始为0,意义是首先从local特征开始逐渐分配更多权重给non-local特征。(progressively

Attention机制运用在generator和discriminator上,使用hinge adversarial loss function

SA-GAN(Self-Attention GAN)学习笔记_第2张图片

稳定GAN的方法

  • 使用了Spectral Normalization在generator和discriminator上

Spectral Normalization接下来文章会做笔记

  • Generator和Discriminator有不同的学习速率lr(TTUR)

 

想读原文和具体参数实验数据的小伙伴点这里:https://arxiv.org/abs/1805.08318

感谢阅读欢迎纠错探讨!

 

你可能感兴趣的:(GAN,神经网络,深度学习,人工智能)