在做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。
结合这张图简单看一下过程:
从上一层卷积层输入进来的x首先进入两个特征空间 f(x) 和 g(x) 去计算attention
这里,
然后计算,是合成第j个区域时,模型位于第i个位置的程度(有点绕),就是图里的softmax之后生成的attention map
公式是:
最后生成attention layer:o(v(x)那里)
公式是:
最后在通过一个, γ是学习参数,初始为0,意义是首先从local特征开始逐渐分配更多权重给non-local特征。(progressively)
Attention机制运用在generator和discriminator上,使用hinge adversarial loss function。
稳定GAN的方法
- 使用了Spectral Normalization在generator和discriminator上
Spectral Normalization接下来文章会做笔记
- Generator和Discriminator有不同的学习速率lr(TTUR)
想读原文和具体参数实验数据的小伙伴点这里:https://arxiv.org/abs/1805.08318
感谢阅读欢迎纠错探讨!